-- ============================================ -- COCOX AUTO JOINER v4.0 (W Notifier Style) -- Cyan/Glass Theme | Press E to toggle -- Fixed: feed shows ALL messages, no skip -- ============================================ local Players = game:GetService("Players") local HttpService = game:GetService("HttpService") local UserInputService = game:GetService("UserInputService") local TweenService = game:GetService("TweenService") local CoreGui = game:GetService("CoreGui") local ReplicatedStorage = game:GetService("ReplicatedStorage") local LocalPlayer = Players.LocalPlayer local API_BASE = "https://privatedontleakorelsejejjkeo3333.lovable.app" local KeyGui = nil -- no key/login GUI is created local activeCocoXFrame = nil -- ============================================ -- NOTIFIER PILL - W NOTIFIER STYLE -- ============================================ local NotifierGui = Instance.new("ScreenGui") NotifierGui.Name = "CocoXNotifierStatus" NotifierGui.ResetOnSpawn = false NotifierGui.IgnoreGuiInset = true NotifierGui.DisplayOrder = 10000 NotifierGui.Parent = CoreGui local NotifierPill = Instance.new("TextButton") NotifierPill.Name = "CocoXNotifierPill" NotifierPill.Size = UDim2.new(0, 210, 0, 36) NotifierPill.Position = UDim2.new(0, 8, 0, 8) NotifierPill.BackgroundColor3 = Color3.fromRGB(3, 5, 9) NotifierPill.BackgroundTransparency = 0 NotifierPill.BorderSizePixel = 0 NotifierPill.Text = "" NotifierPill.AutoButtonColor = false NotifierPill.Parent = NotifierGui local PillCorner = Instance.new("UICorner") PillCorner.CornerRadius = UDim.new(0, 18) PillCorner.Parent = NotifierPill local NotifierStroke = Instance.new("UIStroke") NotifierStroke.Color = Color3.fromRGB(25, 30, 40) NotifierStroke.Transparency = 0.35 NotifierStroke.Thickness = 1 NotifierStroke.Parent = NotifierPill local NotifierLogo = Instance.new("Frame") NotifierLogo.Name = "LogoDot" NotifierLogo.Size = UDim2.new(0, 9, 0, 9) NotifierLogo.Position = UDim2.new(0, 13, 0.5, -4.5) NotifierLogo.BackgroundColor3 = Color3.fromRGB(0, 170, 255) NotifierLogo.BorderSizePixel = 0 NotifierLogo.Parent = NotifierPill Instance.new("UICorner", NotifierLogo).CornerRadius = UDim.new(1, 0) local NotifierBrand = Instance.new("TextLabel") NotifierBrand.Name = "Brand" NotifierBrand.Size = UDim2.new(0, 95, 1, 0) NotifierBrand.Position = UDim2.new(0, 27, 0, 0) NotifierBrand.BackgroundTransparency = 1 NotifierBrand.Text = "CocoX Notifier" NotifierBrand.TextColor3 = Color3.fromRGB(235, 235, 240) NotifierBrand.TextSize = 12 NotifierBrand.Font = Enum.Font.GothamMedium NotifierBrand.TextXAlignment = Enum.TextXAlignment.Left NotifierBrand.Parent = NotifierPill local NotifierDomain = Instance.new("TextLabel") NotifierDomain.Name = "Domain" NotifierDomain.Size = UDim2.new(0, 60, 1, 0) NotifierDomain.Position = UDim2.new(0, 122, 0, 0) NotifierDomain.BackgroundTransparency = 1 NotifierDomain.Text = "cocox.wtf" NotifierDomain.TextColor3 = Color3.fromRGB(105, 110, 120) NotifierDomain.TextSize = 10 NotifierDomain.Font = Enum.Font.Gotham NotifierDomain.TextXAlignment = Enum.TextXAlignment.Left NotifierDomain.Parent = NotifierPill local NotifierLight = Instance.new("Frame") NotifierLight.Name = "ConnectionLight" NotifierLight.Size = UDim2.new(0, 9, 0, 9) NotifierLight.Position = UDim2.new(1, -16, 0.5, -4.5) NotifierLight.BackgroundColor3 = Color3.fromRGB(55, 190, 100) NotifierLight.BorderSizePixel = 0 NotifierLight.Parent = NotifierPill Instance.new("UICorner", NotifierLight).CornerRadius = UDim.new(1, 0) local function setNotifierStatus(state) if state == "connected" then NotifierLight.BackgroundColor3 = Color3.fromRGB(55, 190, 100) NotifierStroke.Color = Color3.fromRGB(25, 30, 40) elseif state == "error" then NotifierLight.BackgroundColor3 = Color3.fromRGB(255, 70, 70) NotifierStroke.Color = Color3.fromRGB(40, 25, 25) else NotifierLight.BackgroundColor3 = Color3.fromRGB(0, 170, 255) NotifierStroke.Color = Color3.fromRGB(25, 30, 40) end end setNotifierStatus("checking") task.spawn(function() while NotifierGui.Parent do TweenService:Create(NotifierLight, TweenInfo.new(0.7, Enum.EasingStyle.Sine), {BackgroundTransparency = 0.45}):Play() task.wait(0.7) TweenService:Create(NotifierLight, TweenInfo.new(0.7, Enum.EasingStyle.Sine), {BackgroundTransparency = 0}):Play() task.wait(0.7) end end) -- Pill drag local pillDragging, pillDragStart, pillStartPosition, pillDragInput, suppressPillToggle = false, nil, nil, nil, false NotifierPill.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then pillDragging = true pillDragStart = input.Position pillStartPosition = NotifierPill.Position end end) NotifierPill.InputChanged:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch then pillDragInput = input end end) UserInputService.InputChanged:Connect(function(input) if not pillDragging or input ~= pillDragInput or not pillDragStart or not pillStartPosition then return end local delta = input.Position - pillDragStart if math.abs(delta.X) > 4 or math.abs(delta.Y) > 4 then suppressPillToggle = true end NotifierPill.Position = UDim2.new(pillStartPosition.X.Scale, pillStartPosition.X.Offset + delta.X, pillStartPosition.Y.Scale, pillStartPosition.Y.Offset + delta.Y) end) UserInputService.InputEnded:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then pillDragging = false pillDragInput = nil end end) local function toggleCocoXGui() if activeCocoXFrame and activeCocoXFrame.Parent then activeCocoXFrame.Visible = not activeCocoXFrame.Visible elseif KeyGui and KeyGui.Parent then KeyGui.Enabled = not KeyGui.Enabled end end NotifierPill.Activated:Connect(function() if suppressPillToggle then suppressPillToggle = false return end toggleCocoXGui() end) -- ============================================ -- LOADING SPLASH -- ============================================ do local SplashGui = Instance.new("ScreenGui") SplashGui.Name = "CocoXSplash" SplashGui.ResetOnSpawn = false SplashGui.IgnoreGuiInset = true SplashGui.DisplayOrder = 9999 SplashGui.Parent = CoreGui local Bg = Instance.new("Frame") Bg.Size = UDim2.new(1,0,1,0) Bg.BackgroundColor3 = Color3.fromRGB(0,0,0) Bg.BorderSizePixel = 0 Bg.Parent = SplashGui local BigC = Instance.new("TextLabel") BigC.Size = UDim2.new(0.7,0,0.7,0) BigC.Position = UDim2.new(0.15,0,0.12,0) BigC.BackgroundTransparency = 1 BigC.Text = "C" BigC.Font = Enum.Font.GothamBlack BigC.TextScaled = true BigC.TextColor3 = Color3.fromRGB(0, 180, 255) BigC.TextStrokeTransparency = 0.3 BigC.TextStrokeColor3 = Color3.fromRGB(0,0,0) BigC.Parent = Bg local Sub = Instance.new("TextLabel") Sub.Size = UDim2.new(0,400,0,28) Sub.AnchorPoint = Vector2.new(0.5,1) Sub.Position = UDim2.new(0.5,0,1,-60) Sub.BackgroundTransparency = 1 Sub.Text = "Loading CocoX..." Sub.Font = Enum.Font.Gotham Sub.TextSize = 18 Sub.TextColor3 = Color3.fromRGB(0, 180, 255) Sub.Parent = Bg task.wait(5) pcall(function() local info = TweenInfo.new(0.35, Enum.EasingStyle.Quad, Enum.EasingDirection.Out) TweenService:Create(Bg, info, {BackgroundTransparency = 1}):Play() TweenService:Create(BigC, info, {TextTransparency = 1, TextStrokeTransparency = 1}):Play() TweenService:Create(Sub, info, {TextTransparency = 1}):Play() end) task.wait(0.4) SplashGui:Destroy() end -- ============================================ -- COLORS -- ============================================ local Colors = { Primary = Color3.fromRGB(0, 180, 255), PrimaryDark = Color3.fromRGB(8, 12, 20), PrimaryLight = Color3.fromRGB(100, 210, 255), Background = Color3.fromRGB(6, 8, 14), PanelBg = Color3.fromRGB(16, 20, 30), Text = Color3.fromRGB(255, 255, 255), TextDim = Color3.fromRGB(140, 155, 180), Success = Color3.fromRGB(80, 220, 160), Error = Color3.fromRGB(255, 80, 80), Gold = Color3.fromRGB(255, 215, 0), Rainbow = Color3.fromRGB(200, 130, 255), } -- ============================================ -- HTTP WRAPPER -- ============================================ local function httpGet(url) local reqFn = (syn and syn.request) or request or (http and http.request) if reqFn then local ok, res = pcall(reqFn, {Url=url, Method="GET"}) if ok and res and res.Body and res.Body ~= "" then return res.Body end end local ok2, body = pcall(function() return HttpService:GetAsync(url, true) end) if ok2 and body and body ~= "" then return body end return nil end local function httpPostJson(url, payload) local jsonBody = HttpService:JSONEncode(payload) local reqFn = (syn and syn.request) or request or (http and http.request) if reqFn then local ok, res = pcall(reqFn, {Url=url, Method="POST", Headers={["Content-Type"]="application/json"}, Body=jsonBody}) if ok and res and res.Body and res.Body ~= "" then return res.Body end end local ok2, body = pcall(function() return HttpService:PostAsync(url, jsonBody, Enum.HttpContentType.ApplicationJson, false) end) if ok2 and body and body ~= "" then return body end return nil end -- Send local scan discoveries to the shared Lovable feed, with a per-name cooldown. local lastPetPostAt = {} local function postPetDiscovery(petName, value, iconId) if type(petName) ~= "string" or petName == "" then return end local now = os.time() if lastPetPostAt[petName] and now - lastPetPostAt[petName] < 300 then return end lastPetPostAt[petName] = now task.spawn(function() local response = httpPostJson(API_BASE .. "/api/addPet", { petName = petName, value = tonumber(value) or 0, jobId = tostring(game.JobId or ""), iconId = tostring(iconId or ""), timestamp = now, }) if not response then warn("[CocoX] Could not submit pet discovery to the shared feed") end end) end -- ============================================ -- MAIN GUI -- ============================================ local function showMainGui(validatedUser, keyExpiry) local ConsoleText task.spawn(function() local s = Instance.new("Sound") s.SoundId = "rbxassetid://91252582575204" s.Volume = 0.5 s.Parent = game:GetService("SoundService") pcall(function() s:Play() end) s.Ended:Connect(function() s:Destroy() end) task.delay(30, function() if s and s.Parent then s:Destroy() end end) end) -- SAVE/LOAD local CONFIG_FILE = "CocoX_Filters.json" local hasWriteFile = writefile ~= nil local hasReadFile = readfile ~= nil local hasIsFile = isfile ~= nil local function UniversalWriteFile(path, content) if hasWriteFile then writefile(path, content); return true elseif syn and syn.writefile then syn.writefile(path, content); return true else return false end end local function UniversalReadFile(path) if hasReadFile then return readfile(path) elseif syn and syn.readfile then return syn.readfile(path) else return nil end end local function UniversalFileExists(path) if hasIsFile then return isfile(path) elseif syn and syn.isfile then return syn.isfile(path) else return false end end local Settings = { soundId = "", spamJoin = false, spamAttempts = 3, } local SaveFilters local LoadFilters LoadFilters = function() local ok, data = pcall(function() if not UniversalFileExists(CONFIG_FILE) then return nil end local c = UniversalReadFile(CONFIG_FILE) return (c and c~="") and HttpService:JSONDecode(c) or nil end) if ok and data then local sel={} if data.selected then for _,n in ipairs(data.selected) do sel[n]=true end end if data.settings then Settings.soundId = data.settings.soundId or "" Settings.spamJoin = data.settings.spamJoin or false Settings.spamAttempts = data.settings.spamAttempts or 3 end return {sel=sel, showAll=(data.showAll~=nil) and data.showAll or (#(data.selected or {})==0)} end return {sel={}, showAll=true} end SaveFilters = function(sel, showAll) local list={} for name in pairs(sel) do table.insert(list, name) end pcall(function() UniversalWriteFile(CONFIG_FILE, HttpService:JSONEncode({ selected=list, showAll=showAll, version=2, settings = { soundId = Settings.soundId or "", spamJoin = Settings.spamJoin or false, spamAttempts = Settings.spamAttempts or 3, } })) end) end -- Brainrot Database local BrainrotDatabase = { Common={"Noobini Pizzanini","Lirilì Larilà","Tim Cheese","Fluriflura","Talpa Di Fero","Noobini Santanini","Svinina Bombardino","Raccooni Jandelini","Pipi Kiwi","Tartaragno","Pipi Corni","Holy Arepa"}, Rare={"Trippi Troppi","Tung Tung Tung Sahur","Gangster Footera","Bandito Bobritto","Boneca Ambalabu","Cacto Hipopotamo","Ta Ta Ta Ta Sahur","Tric Trac Baraboom","Frogo Elfo","Pipi Avocado","Pengolino Nuvoletto","Cupcake Koala","Pinealotto Fruttarino"}, Epic={"Cappuccino Assassino","Bandito Axolito","Brr Brr Patapim","Avocadini Antilopini","Trulimero Trulicina","Bambini Crostini","Malame Amarele","Bananita Dolphinita","Perochello Lemonchello","Brri Brri Bicus Dicus Bombicus","Avocadini Guffo","Ti Ti Ti Sahur","Mangolini Parrocini","Frogato Pirato","Salamino Penguino","Gato Celesto","Doi Doi Do","Penguin Tree","Wombo Rollo","Penguino Cocosino","Mummio Rappitto"}, Legendary={"Burbaloni Loliloli","Chimpanzini Bananini","Tirilikalika Tirilikalako","Ballerina Cappuccina","Chef Crabracadabra","Lionel Cactuseli","Glorbo Fruttodrillo","Quivioli Ameleonni","Blueberrinni Octopusini","Clickerino Crabo","Caramello Filtrello","Pipi Potato","Strawberrelli Flamingelli","Cocosini Mama","Pandaccini Bananini","Quackula","Pi Pi Watermelon","Signore Carapace","Sigma Boy","Buho del Cielo","Sigma Girl","Chocco Bunny","Puffaball","Sealo Regalo","Buho de Fuego","Seraphino Gruyero"}, Mythic={"Frigo Camelo","Orangutini Ananassini","Rhino Toasterino","Bombardiro Crocodilo","Brutto Gialutto","Spioniro Golubiro","Bombombini Gusini","Zibra Zubra Zibralini","Tigrilini Watermelini","Avocadorilla","Cavallo Virtuoso","Te Te Te Sahur","Gorillo Watermelondrillo","Stoppo Luminino","Tracoducotulu Delapeladustuz","Tob Tobi Tobi","Lerulerulerule","Ganganzelli Trulala","Rhino Helicopterino","Jingle Jingle Sahur","Los Noobinis","Cachorrito Melonito","Spongini Quackini","Carloooo","Elefanto Frigo","Berenjello Angello","Carrotini Brainini"}, BrainrotGod={"Cocofanto Elefanto","Girafa Celestre","Gattatino Nyanino","Chihuanini Taconini","Matteo","Tralalero Tralala","Espresso Signora","Odin Din Din Dun","Statutino Libertino","Trenostruzzo Turbo 3000","Ballerino Lololo","Los Orcalitos","Dug dug dug","Urubini Flamenguini","Capi Taco","Bombardini Tortinii","Corn Corn Corn Sahur","Ginger Globo","Frio Ninja","Ginger Cisterna","Piccione Macchina","Belula Beluga","Anpali Babel","Mastodontico Telepiedone","Piccionetta Macchina","Los Tipi Tacos","Tartaruga Cisterna"}, Secret={"Las Sis","La Vacca Staturno Saturnita","Sammyni Spyderini","Extinct Tralalero","Extinct Matteo","Los Tralaleritos","La Karkerkar Combinasion","Karker Sahur","Las Tralaleritas","Job Job Job Sahur","Graipuss Medussi","La Grande Combinasion","Tacorita Bicicleta","Nuclearo Dinossauro","Money Money Puggy","Chillin Chili","Los Tacoritas","Tang Tang Kelentang","Dragon Cannelloni","Blackhole Goat","Spaghetti Tualetti","Garama and Madundung","Ketchuru and Musturu","La Supreme Combinasion","Los Bros","Ketupat Kepat","Tralaledon","Los Hotspotsitos","Los Combinasionas","Noo My Hotspot","Dragon Gingerini","Chicleteira Bicicleteira","Esok Sekolah","Pot Hotspot","Sahur Combinasion","Graipussi Medussi","Las Vaquitas Saturnitas","Fragola la la la","Bisonte Giuppitere"}, OG={"Strawberry Elephant","Meowl","Skibidi Toilet","Headless Horseman","Love Love Bear","Griffin","John Pork","Nyan Cat","Smurf Cat"}, Special={"Cerberus","Fragrama and Chocrama","Hydra Bunny","Los Bros","Sammyni Fattini","Fortunu and Cashuru","Signore Carapace","Tictac Sahur","La Jolly Grande","Garama and Madundung","Reinito Sleighito","Dragon Gingerini","Money Money Reindeer","Tang Tang Keletang","Pancake and Syrup","Ventoliero Pavonero","Los Tacoritas","Fishino Clownino","W or L","Eviledon","La Lucky Grande","La Extinct Grande","Dragon Cannelloni","Las Sis","La Casa Boo","La Secret Combinasion","Headless Horseman","Ketchuru and Musturu","Tralaledon","Cash or Card","Burguro And Fryuro","Elefanto Frigo","Spooky and Pumpky","Los Amigos","Tacorita Bicicleta","Hydra Dragon Cannelloni","Los Spaghettis","Cooki and Milki","Nacho Spyder","Los Sekolahs","Dug dug dug","Los Primos","La Easter Grande","Rosey and Teddy","Love Love Bear","Hopilikalika Hopilikalako","La Romantic Grande","La Food Combinasion","Arcadragon","Chipso and Queso","Cloverat Clapat","Celestial Pegasus","Capitano Moby","La Ginger Sekolah","Chillin Chili","Ginger Gerat","Tirilikalika Tirilikalako","Boppin Bunny","Ketupat Bros","Celularcini Viciosini","La Taco Combinasion","Lavadorito Spinito","Skibidi Toilet","Swaggy Bros","Popcuru and Fizzuru","Tuff Toucan","La Supreme Combinasion","Foxini Lanternini","Strawberry Elephant","Ketupat Kepat","Antonio","Rosetti Tualetti","Lovin Rose","Orcaledon","Duggy Bros","Bunny and Eggy","Mi Gatito","Money Money Bros","Noo my Candy","Los Chillis"}, GoldMutations={"Gold Noobini Pizzanini","Gold Trippi Troppi","Gold Cappuccino Assassino","Gold Burbaloni Loliloli","Gold Frigo Camelo","Gold Cocofanto Elefanto","Gold Matteo","Gold Tralalero Tralala","Gold Dragon Cannelloni","Gold Girafa Celestre","Gold Gattatino Nyanino","Gold Chihuanini Taconini","Gold Odin Din Din Dun","Gold Espresso Signora","Gold Ginger Globo","Gold Frio Ninja"}, RainbowMutations={"Rainbow Noobini Pizzanini","Rainbow Trippi Troppi","Rainbow Cappuccino Assassino","Rainbow Burbaloni Loliloli","Rainbow Frigo Camelo","Rainbow Cocofanto Elefanto","Rainbow Matteo","Rainbow Tralalero Tralala","Rainbow Dragon Cannelloni","Rainbow Bambini Crostini","Rainbow Perochello Lemonchello"}, DiamondMutations={"Diamond Noobini Pizzanini","Diamond Trippi Troppi","Diamond Cappuccino Assassino","Diamond Burbaloni Loliloli","Diamond Bombardiro Crocodilo","Diamond Matteo","Diamond Gattito Tacoto"}, ShinyMutations={"Shiny Noobini Pizzanini","Shiny Matteo","Shiny Dragon Cannelloni","Shiny Cocofanto Elefanto","Shiny Tralalero Tralala"}, } -- Add new brainrots local newNames = { "Puffino Builderino", "Gub", "Gattino Hydrantino", "Sir Mangus", "Orchidox", "Motorino Bumbino", "Pop Pop Petalini", "Syrup Samurai", "Honey Honey Narwhal", "Beavo Potto", "Rosatops Triceratino", "Yetimatic", "Bumbatron", "Scorpino Coasterino", "S'more Serat", "Queen Bee", "Bee Lucky Block", "Sammyni Truckini", "Tacoturbo Tacorito", "Burrito Bat", "Nachorilla", "Candini Fluffini", "Honey Honey Bear", "Peschito Machito", "La Fuse Machine", "Pogo Pogo Penguin", "Polaroidini", "Conetto Morsetto", "Gelatina Volatina", "Quackalena", "Cornetto Morsetto", "Tic Tic Ribbit", "La Breakfast Combinasion", "Los Losers", "Noo my Resume", "Yess my Resume", "Los Secret Combinasionas", "Examen Bros", "Noo my Examen", "Chicleteira Champeona", "Toro Españolo", "Yess my Examen", "Pizza and Ranch", "Exam Bros", "Grabatron", "Rubiko and Kubiko", "Cangurato Gelato", "Noodle Noodle Poodle", "Los Admins", "Los Tictacs", "Los Tangcitos", "Los Cornis", "Los Sigmas", "Moby Bros", "VAR", "Capitano Americano", "Bufalino Boomberino", "Esok Goala", "Var Var Var", "4th Bros", "Hippo Golazo", "Ref Ref Ref Sahur", "Chicleteira Surfeiteira", "Aquarino", "Gelato Lumacho", "Flippo Marino", "Lemonita Splashita", "Venuspino", "Sand Sand Sand", "Bearito Cabinito", "Los Fruits", "Frullato Framingo", "Sushi Inu", "Girafini Raftini", "Octoball", "Rocketini Frostini", "Craburger", "Tortuginni Sandcastlini", "Rhino Slido", "Kraken", "Bearo Houso", "Chicleteira Boardeira", "Caylusaurus", "Dragon Caylusini", "Bucketoro", "Steakini Fattini", "Tenini Ballini", "Cola Cat", "Cocoteddy", "Dragon Aquanini", "Coco and Mango", "Sundrilla Sundae", "Capitano Gullini", "Ombrello Topolino", "Bombardiro Vaccariro", "Aqua Dragon", "Digi Narwhal", "Kalika Bros", "Los Hackers", "Quackini Snackini", "Rubrikiko", "Rico Dinero", "Gym Bros", "Abyssaloco", "Los Mariachis", "Globa Steppa", "Churrito Bunnito", "Camera Ramena", "Baskito", "John Doe", "Flipa Sandala", "Los Bunitos", "Futbolini Skatini", "Glaciator", "Buho de Volto", "Easter Easter Easter Sahur", "Bananito", "Strawberrita", "Pretzo Robo", "Berryno", "Bunny Tralala", "Eggdin Egg Egg Dun", "Robo Grafito", "Lazy Ducky", "Lumaca Malefica", "Pineaplino", "Trenotubo Axolotrico 9000", "Vampira Cappucina", "Appelini", "Bee Loco", "Electro Quacko", "Orbi Mochi", "Spyder Elephant", "Jelly Moby", "Sammyni Cakini", "Flancito", "La Anniversary Grande", "Gold Elf", "Leprechaun Lucky Block", "Spooky Lucky Block", "Heart Lucky Block", "Festive Lucky Block", "Ice Dragon", "Taco Lucky Block", "Admin Lucky Block", "Tennis Ball", "Los Lucky Blocks", "Los Taco Blocks", "Los Puggies", "Mieteteira Bicicleteira", "Gobblino Uniciclino", "Los Cupids", "Los Candies", "Bacuru and Egguru", "Los Jolly Combinasionas", "Los Spooky Combinasionas", "Los Mobilis", "Los 67", "Cigno Fulgoro", "Los Planitos", "Spinny Hammy", "Chicleteira Cupideira", "Snailo Clovero", "Los Sweethearts", "Mariachi Corazoni", "Swag Soda", "Los Burritos", "Tacorillo Crocodillo", "Los 25", "Donkeyturbo Express", "Chimnino", "Noo my Gold", "Los Chicleteiras", "Noo my Present", "Los Nooo My Hotspotsitos", "67", "Guest 666", "Los Mi Gatitos", "Serafinna Medusella", "Noo my Eggs", "Rang Ring Bus", "Arcadopus", "Luck Luck Luck Sahur", "Chill Puppy", "Burrito Bandito", "Granny", "Cupid Hotspot", "Brunito Marsito", "Quesadillo Vampiro", "Los Quesadillas", "Eid Eid Eid Sahur", "Pot Pumpkin", "Naughty Naughty", "Quesadilla Crocodila", "Cupid Cupid Sahur", "Bunito Bunito Spinito", "Ho Ho Ho Sahur", "Telemorte", "Horegini Boom", "Santa Hotspot", "List List List Sahur", "Los Jobcitos", "La Sahur Combinasion", "Pirulitoita Bicicleteira", "25", "Nooo My Hotspot", "Bunny Bunny Bunny Sahur", "Bunnyman", "Noo my examine", "Please my Present", "1x1x1x1", "Giftini Spyderini", "La Vacca Lepre Lepreino", "Love Love Love Sahur", "Perrito Burrito", "Cuadramat and Pakrahmatmamat", "Los Cucarachas", "Coffin Tung Tung Tung Sahur", "Paradiso Axolottino", "Los Karkeritos", "Buntteo", "La Vacca Jacko Linterino", "Los Trios", "Santteo", "Triplito Tralaleritos", "Trickolino", "Yess my examine", "Rocco Disco", "Dul Dul Dul", "Reindeer Tralala", "La Vacca Prese Presente", "Pumpkini Spyderini", "Frankentteo", "Zombie Tralala", "Guerriro Digitale", "La Cucaracha", "Vulturino Skeletono", "Los Spyderinis", "Los Tortus", "Boatito Auratito", "Trenostruzzo Turbo 4000", "Karkerkar Kurkur", "Los Matteos", "Jackorilla", "Chachechi", "Agarrini la Palini", "Fishboard", "DJ Panda", "Chicleteirina Bicicleteirina", "Noo La Polizia", "Dumborino Miracello", "Karkerheart Luvkur", "Clovkur Kurkur", "Dolphini Jetskini", "Secret Lucky Block", "Pop Pop Sahur", "Skull Skull Skull", "Patteo", "Brasilini Berimbini", "Tentacolo Tecnico", "Krupuk Pagi Pagi", "Pandanini Frostini", "Cocoa Assassino", "Chrismasmamat", "Astrolero Cervalero", "Cappuccino Clownino", "Luv Luv Luv", "Boba Panda", "Bambu Bambu Sahur", "Los Gattitos", "Yeti Claus", "Crabbo Limonetta", "Snailenzo", "Granchiello Spiritell", "Tootini Shrimpini", "Buho de Noelo", "Orcalita Orcala", "Brr es Teh Patipum", "Mummy Ambalabu", "Ballerina Peppermintina", "Los Bombinitos", "Bulbito Bandito Traktorito", "Los Tungtungtungcitos", "Pakrahmatmatina", "Gattito Tacoto", "Las Capuchinas", "Los Chihuaninis", "Orcalero Orcala", "Divino Platypio", "Jacko Jack Jack", "Vampira Cappuccina", "Tigroligre Frutonni", "Los Crocodillitos", "Money Money Man", "Unclito Samito", "Extinct Ballerina", "Alessio", "Tipi Topi Taco", "Tukanno Bananno", "Trippi Troppi Troppa Trippa", "Cacasito Satalito", "Aquanaut", "Pakrahmatmamat", "Tralalita Tralala", "Tractoro Dinosauro", "Tree Tree Tree Sahur", "Jacko Spaventosa", "Fizzy Soda", "Brainrot God Lucky Block", "Centrucci Nuclucci", "Harpuccino", "Magi Ribbitini", "Toiletto Focaccino", "Gorillo Subwoofero", "Tralalero Tralala" } local existing = {} for _, list in pairs(BrainrotDatabase) do if type(list) == "table" then for _, name in ipairs(list) do existing[name] = true end end end for _, name in ipairs(newNames) do if not existing[name] then table.insert(BrainrotDatabase.Special, name) existing[name] = true end end local RarityColors = { Common = Color3.fromRGB(128,128,128), Rare = Color3.fromRGB(0,112,221), Epic = Color3.fromRGB(163,53,238), Legendary = Color3.fromRGB(255,128,0), Mythic = Color3.fromRGB(255,68,68), BrainrotGod = Color3.fromRGB(0,204,255), Secret = Color3.fromRGB(255,68,170), OG = Color3.fromRGB(255,200,0), Special = Color3.fromRGB(255,100,50), GoldMutations = Color3.fromRGB(255,215,0), RainbowMutations = Color3.fromRGB(255,100,255), DiamondMutations = Color3.fromRGB(100,200,255), ShinyMutations = Color3.fromRGB(200,100,255) } local saved = LoadFilters() local SelectedFilters = saved.sel local ShowAll = saved.showAll local SearchTerm = "" -- ============================================ -- NORMALIZE JOB ID -- ============================================ local function normalizeJobId(raw) return tostring(raw or ""):gsub("__BT__", ""):gsub(string.char(96), ""):gsub("%s+", "") end -- ============================================ -- SYNCHRONIZER -- ============================================ local SyncInt = {_cache={}, _data=nil} local function getInternalTable() local Packages = ReplicatedStorage:FindFirstChild("Packages"); if not Packages then return nil end local SynMod = Packages:FindFirstChild("Synchronizer"); if not SynMod then return nil end local ok, syn = pcall(require, SynMod); if not ok or not syn then return nil end local Get = syn.Get; if type(Get) ~= "function" then return nil end for i=1,5 do local s,u = pcall(getupvalue,Get,i) if s and type(u)=="table" then if u.___private or u.___channels or u.___data then return u end end end return nil end local function stealthGet(n) if not n or type(n)~="string" then return nil end if SyncInt._cache[n]==false then return nil end if SyncInt._data then for _,k in ipairs({n,"Plot_"..n,"Plot"..n,n.."_Channel","Channel_"..n}) do if SyncInt._data[k] then SyncInt._cache[n]=SyncInt._data[k]; return SyncInt._data[k] end end for k,v in pairs(SyncInt._data) do if type(k)=="string" and (k==n or k:find(n,1,true)) and type(v)=="table" then SyncInt._cache[n]=v; return v end end end SyncInt._cache[n]=false; return nil end local function sProp(ch, p) if not ch or type(ch)~="table" then return nil end if ch[p] then return ch[p] end if type(ch.Get)=="function" then local ok,r=pcall(ch.Get,ch,p); if ok then return r end end return nil end local Datas = ReplicatedStorage:FindFirstChild("Datas") local AnimalsData = nil -- ============================================ -- MAIN SCREEN GUI -- ============================================ local ScreenGui = Instance.new("ScreenGui") ScreenGui.Name = "CocoXAutoJoin" ScreenGui.ResetOnSpawn = false ScreenGui.DisplayOrder = 50 ScreenGui.Parent = CoreGui local MainFrame = Instance.new("Frame") MainFrame.Size = UDim2.new(0, 660, 0, 410) MainFrame.Position = UDim2.new(0.5, -330, 0.5, -205) MainFrame.BackgroundColor3 = Color3.fromRGB(8, 10, 18) MainFrame.BackgroundTransparency = 0.2 MainFrame.BorderSizePixel = 0 MainFrame.ClipsDescendants = true MainFrame.Parent = ScreenGui activeCocoXFrame = MainFrame Instance.new("UICorner", MainFrame).CornerRadius = UDim.new(0, 10) local MainStroke = Instance.new("UIStroke") MainStroke.Color = Color3.fromRGB(255, 255, 255) MainStroke.Transparency = 0.15 MainStroke.Thickness = 1 MainStroke.Parent = MainFrame -- Title Bar local TitleBar = Instance.new("Frame") TitleBar.Size = UDim2.new(1, 0, 0, 34) TitleBar.BackgroundColor3 = Color3.fromRGB(10, 12, 20) TitleBar.BackgroundTransparency = 0.8 TitleBar.BorderSizePixel = 0 TitleBar.Parent = MainFrame Instance.new("UICorner", TitleBar).CornerRadius = UDim.new(0, 10) local TitleText = Instance.new("TextLabel") TitleText.Size = UDim2.new(1, -250, 1, 0) TitleText.Position = UDim2.new(0, 18, 0, 0) TitleText.BackgroundTransparency = 1 TitleText.Text = "CocoX Notifier" TitleText.TextColor3 = Color3.fromRGB(255, 255, 255) TitleText.TextSize = 13 TitleText.TextXAlignment = Enum.TextXAlignment.Left TitleText.Font = Enum.Font.GothamMedium TitleText.Parent = TitleBar local StatusDot = Instance.new("Frame") StatusDot.Size = UDim2.new(0, 8, 0, 8) StatusDot.Position = UDim2.new(0, 8, 0.5, -4) StatusDot.BackgroundColor3 = Color3.fromRGB(0, 180, 255) StatusDot.BorderSizePixel = 0 StatusDot.Parent = TitleBar Instance.new("UICorner", StatusDot).CornerRadius = UDim.new(0, 4) local LiveText = Instance.new("TextLabel") LiveText.Size = UDim2.new(0, 42, 1, 0) LiveText.Position = UDim2.new(1, -82, 0, 0) LiveText.BackgroundTransparency = 1 LiveText.Text = "Live" LiveText.TextColor3 = Color3.fromRGB(0, 180, 255) LiveText.TextSize = 10 LiveText.Font = Enum.Font.GothamMedium LiveText.TextXAlignment = Enum.TextXAlignment.Right LiveText.Parent = TitleBar local CloseBtn = Instance.new("TextButton") CloseBtn.Size = UDim2.new(0, 26, 0, 22) CloseBtn.Position = UDim2.new(1, -32, 0, 6) CloseBtn.BackgroundColor3 = Color3.fromRGB(20, 24, 34) CloseBtn.BackgroundTransparency = 0.5 CloseBtn.Text = "X" CloseBtn.TextColor3 = Color3.fromRGB(140, 155, 180) CloseBtn.TextSize = 14 CloseBtn.Font = Enum.Font.GothamBold CloseBtn.BorderSizePixel = 0 CloseBtn.Parent = TitleBar Instance.new("UICorner", CloseBtn).CornerRadius = UDim.new(0, 6) local SaveBtn = Instance.new("TextButton") SaveBtn.Size = UDim2.new(0, 54, 0, 22) SaveBtn.Position = UDim2.new(1, -274, 0, 6) SaveBtn.BackgroundColor3 = Color3.fromRGB(20, 24, 34) SaveBtn.BackgroundTransparency = 0.5 SaveBtn.Text = "[Save]" SaveBtn.TextColor3 = Colors.Text SaveBtn.TextSize = 8 SaveBtn.Font = Enum.Font.GothamBold SaveBtn.BorderSizePixel = 0 SaveBtn.Parent = TitleBar Instance.new("UICorner", SaveBtn).CornerRadius = UDim.new(0, 5) local LoadBtn = Instance.new("TextButton") LoadBtn.Size = UDim2.new(0, 54, 0, 22) LoadBtn.Position = UDim2.new(1, -214, 0, 6) LoadBtn.BackgroundColor3 = Color3.fromRGB(20, 24, 34) LoadBtn.BackgroundTransparency = 0.5 LoadBtn.Text = "[Load]" LoadBtn.TextColor3 = Colors.Text LoadBtn.TextSize = 8 LoadBtn.Font = Enum.Font.GothamBold LoadBtn.BorderSizePixel = 0 LoadBtn.Parent = TitleBar Instance.new("UICorner", LoadBtn).CornerRadius = UDim.new(0, 5) local AutoJoinBtn = Instance.new("TextButton") AutoJoinBtn.Size = UDim2.new(0, 92, 0, 22) AutoJoinBtn.Position = UDim2.new(1, -116, 0, 6) AutoJoinBtn.BackgroundColor3 = Color3.fromRGB(0, 180, 255) AutoJoinBtn.BackgroundTransparency = 0.8 AutoJoinBtn.Text = "Auto-join: OFF" AutoJoinBtn.TextColor3 = Colors.TextDim AutoJoinBtn.TextSize = 8 AutoJoinBtn.Font = Enum.Font.GothamBold AutoJoinBtn.BorderSizePixel = 0 AutoJoinBtn.Parent = TitleBar Instance.new("UICorner", AutoJoinBtn).CornerRadius = UDim.new(0, 5) local AutoJoinEnabled = false local AUTO_JOIN_ATTEMPTS = 1 local autoJoinFired = false local pendingTeleport = nil local failedTeleportJobs = {} -- [jobId] = os.clock() + cooldown local TELEPORT_FAIL_COOLDOWN = 90 local StatusLabel AutoJoinBtn.MouseButton1Click:Connect(function() AutoJoinEnabled = not AutoJoinEnabled autoJoinFired = false if AutoJoinEnabled then AutoJoinBtn.Text = "Auto-join: ON" AutoJoinBtn.BackgroundColor3 = Color3.fromRGB(0, 180, 255) AutoJoinBtn.BackgroundTransparency = 0.2 AutoJoinBtn.TextColor3 = Color3.fromRGB(0, 0, 0) if StatusLabel then StatusLabel.Text = "Auto-join armed (one attempt per server)" end else AutoJoinBtn.Text = "Auto-join: OFF" AutoJoinBtn.BackgroundColor3 = Color3.fromRGB(0, 180, 255) AutoJoinBtn.BackgroundTransparency = 0.8 AutoJoinBtn.TextColor3 = Colors.TextDim if StatusLabel then StatusLabel.Text = "Auto-join disabled" end end end) -- Tabs local TabBar = Instance.new("Frame") TabBar.Size = UDim2.new(0, 108, 1, -34) TabBar.Position = UDim2.new(0, 0, 0, 34) TabBar.BackgroundColor3 = Color3.fromRGB(8, 10, 18) TabBar.BackgroundTransparency = 0.5 TabBar.BorderSizePixel = 0 TabBar.Parent = MainFrame local ScannerTab = Instance.new("TextButton") ScannerTab.Size = UDim2.new(1, -12, 0, 30) ScannerTab.Position = UDim2.new(0, 6, 0, 12) ScannerTab.BackgroundColor3 = Color3.fromRGB(0, 180, 255) ScannerTab.BackgroundTransparency = 0.15 ScannerTab.Text = "Logs" ScannerTab.TextColor3 = Color3.fromRGB(255, 255, 255) ScannerTab.TextSize = 10 ScannerTab.TextXAlignment = Enum.TextXAlignment.Left ScannerTab.Font = Enum.Font.GothamMedium ScannerTab.BorderSizePixel = 0 ScannerTab.Parent = TabBar Instance.new("UICorner", ScannerTab).CornerRadius = UDim.new(0, 6) local FilterTab = Instance.new("TextButton") FilterTab.Size = UDim2.new(1, -12, 0, 30) FilterTab.Position = UDim2.new(0, 6, 0, 48) FilterTab.BackgroundColor3 = Color3.fromRGB(8, 10, 18) FilterTab.BackgroundTransparency = 0.8 FilterTab.Text = "Whitelist" FilterTab.TextColor3 = Colors.TextDim FilterTab.TextSize = 10 FilterTab.TextXAlignment = Enum.TextXAlignment.Left FilterTab.Font = Enum.Font.GothamMedium FilterTab.BorderSizePixel = 0 FilterTab.Parent = TabBar Instance.new("UICorner", FilterTab).CornerRadius = UDim.new(0, 6) local function addNavLabel(text, y) local btn = Instance.new("TextButton") btn.Size = UDim2.new(1, -18, 0, 28) btn.Position = UDim2.new(0, 9, 0, y) btn.BackgroundTransparency = 1 btn.Text = text btn.TextColor3 = Colors.TextDim btn.TextSize = 9 btn.TextXAlignment = Enum.TextXAlignment.Left btn.Font = Enum.Font.Gotham btn.BorderSizePixel = 0 btn.Parent = TabBar return btn end local navOwners = addNavLabel("Owners", 92) local navSettings = addNavLabel("Settings", 126) local navUsers = addNavLabel("Users", 160) -- Pages local ScannerPage = Instance.new("Frame") ScannerPage.Size = UDim2.new(1, -108, 1, -34) ScannerPage.Position = UDim2.new(0, 108, 0, 34) ScannerPage.BackgroundTransparency = 1 ScannerPage.Visible = true ScannerPage.Parent = MainFrame local SettingsPage = Instance.new("Frame") SettingsPage.Size = UDim2.new(1, -108, 1, -34) SettingsPage.Position = UDim2.new(0, 108, 0, 34) SettingsPage.BackgroundTransparency = 1 SettingsPage.Visible = false SettingsPage.Parent = MainFrame -- Build Settings page local function buildSettingsPage() local settingsContainer = Instance.new("Frame") settingsContainer.Size = UDim2.new(1, -20, 1, -20) settingsContainer.Position = UDim2.new(0, 10, 0, 10) settingsContainer.BackgroundColor3 = Color3.fromRGB(16, 20, 30) settingsContainer.BackgroundTransparency = 0.3 settingsContainer.Parent = SettingsPage Instance.new("UICorner", settingsContainer).CornerRadius = UDim.new(0, 8) local yPos = 20 local soundLabel = Instance.new("TextLabel") soundLabel.Size = UDim2.new(1, -20, 0, 22) soundLabel.Position = UDim2.new(0, 10, 0, yPos) soundLabel.BackgroundTransparency = 1 soundLabel.Text = "Roblox Sound ID (play on brainrot):" soundLabel.TextColor3 = Colors.Text soundLabel.TextSize = 11 soundLabel.Font = Enum.Font.Gotham soundLabel.TextXAlignment = Enum.TextXAlignment.Left soundLabel.Parent = settingsContainer yPos = yPos + 26 local soundInput = Instance.new("TextBox") soundInput.Size = UDim2.new(1, -20, 0, 30) soundInput.Position = UDim2.new(0, 10, 0, yPos) soundInput.BackgroundColor3 = Color3.fromRGB(20, 24, 34) soundInput.BackgroundTransparency = 0.5 soundInput.PlaceholderText = "Enter sound ID (e.g., 11433973015889)" soundInput.Text = Settings.soundId or "" soundInput.TextColor3 = Colors.Text soundInput.TextSize = 11 soundInput.Font = Enum.Font.Gotham soundInput.BorderSizePixel = 0 soundInput.Parent = settingsContainer Instance.new("UICorner", soundInput).CornerRadius = UDim.new(0, 6) soundInput:GetPropertyChangedSignal("Text"):Connect(function() Settings.soundId = soundInput.Text SaveFilters(SelectedFilters, ShowAll) end) yPos = yPos + 40 local spamToggleBtn = Instance.new("TextButton") spamToggleBtn.Size = UDim2.new(0, 160, 0, 30) spamToggleBtn.Position = UDim2.new(0, 10, 0, yPos) spamToggleBtn.BackgroundColor3 = Settings.spamJoin and Color3.fromRGB(0, 180, 255) or Color3.fromRGB(20, 24, 34) spamToggleBtn.BackgroundTransparency = Settings.spamJoin and 0.2 or 0.5 spamToggleBtn.Text = Settings.spamJoin and "Spam Join: ON" or "Spam Join: OFF" spamToggleBtn.TextColor3 = Colors.Text spamToggleBtn.TextSize = 11 spamToggleBtn.Font = Enum.Font.GothamBold spamToggleBtn.BorderSizePixel = 0 spamToggleBtn.Parent = settingsContainer Instance.new("UICorner", spamToggleBtn).CornerRadius = UDim.new(0, 6) spamToggleBtn.MouseButton1Click:Connect(function() Settings.spamJoin = not Settings.spamJoin spamToggleBtn.Text = Settings.spamJoin and "Spam Join: ON" or "Spam Join: OFF" spamToggleBtn.BackgroundColor3 = Settings.spamJoin and Color3.fromRGB(0, 180, 255) or Color3.fromRGB(20, 24, 34) spamToggleBtn.BackgroundTransparency = Settings.spamJoin and 0.2 or 0.5 SaveFilters(SelectedFilters, ShowAll) end) yPos = yPos + 40 local attemptsLabel = Instance.new("TextLabel") attemptsLabel.Size = UDim2.new(1, -20, 0, 22) attemptsLabel.Position = UDim2.new(0, 10, 0, yPos) attemptsLabel.BackgroundTransparency = 1 attemptsLabel.Text = "Spam Attempts:" attemptsLabel.TextColor3 = Colors.Text attemptsLabel.TextSize = 11 attemptsLabel.Font = Enum.Font.Gotham attemptsLabel.TextXAlignment = Enum.TextXAlignment.Left attemptsLabel.Parent = settingsContainer yPos = yPos + 26 local attemptsInput = Instance.new("TextBox") attemptsInput.Size = UDim2.new(0, 60, 0, 30) attemptsInput.Position = UDim2.new(0, 10, 0, yPos) attemptsInput.BackgroundColor3 = Color3.fromRGB(20, 24, 34) attemptsInput.BackgroundTransparency = 0.5 attemptsInput.PlaceholderText = "3" attemptsInput.Text = tostring(Settings.spamAttempts) attemptsInput.TextColor3 = Colors.Text attemptsInput.TextSize = 11 attemptsInput.Font = Enum.Font.Gotham attemptsInput.BorderSizePixel = 0 attemptsInput.Parent = settingsContainer Instance.new("UICorner", attemptsInput).CornerRadius = UDim.new(0, 6) attemptsInput:GetPropertyChangedSignal("Text"):Connect(function() local num = tonumber(attemptsInput.Text) if num and num > 0 then Settings.spamAttempts = math.floor(num) SaveFilters(SelectedFilters, ShowAll) end end) local function updateAttemptsState() attemptsInput.TextEditable = Settings.spamJoin attemptsInput.BackgroundTransparency = Settings.spamJoin and 0.5 or 0.8 end updateAttemptsState() local infoLabel = Instance.new("TextLabel") infoLabel.Size = UDim2.new(1, -20, 0, 30) infoLabel.Position = UDim2.new(0, 10, 0, yPos + 40) infoLabel.BackgroundTransparency = 1 infoLabel.Text = "Spam join: when auto-join fires, it will attempt to join the same server multiple times quickly." infoLabel.TextColor3 = Colors.TextDim infoLabel.TextSize = 9 infoLabel.Font = Enum.Font.Gotham infoLabel.TextXAlignment = Enum.TextXAlignment.Left infoLabel.TextWrapped = true infoLabel.Parent = settingsContainer end buildSettingsPage() -- FilterPage local FilterPage = Instance.new("ScrollingFrame") FilterPage.Size = UDim2.new(1, -108, 1, -34) FilterPage.Position = UDim2.new(0, 108, 0, 34) FilterPage.BackgroundTransparency = 1 FilterPage.ScrollBarThickness = 3 FilterPage.CanvasSize = UDim2.new(0,0,0,0) FilterPage.AutomaticCanvasSize = Enum.AutomaticSize.Y FilterPage.Visible = false FilterPage.Parent = MainFrame local SearchFrame = Instance.new("Frame") SearchFrame.Size = UDim2.new(1, -16, 0, 35) SearchFrame.Position = UDim2.new(0, 8, 0, 8) SearchFrame.BackgroundColor3 = Color3.fromRGB(16, 20, 30) SearchFrame.BackgroundTransparency = 0.4 SearchFrame.Parent = FilterPage Instance.new("UICorner", SearchFrame).CornerRadius = UDim.new(0, 8) local SearchIcon = Instance.new("TextLabel") SearchIcon.Size = UDim2.new(0, 30, 1, 0) SearchIcon.Position = UDim2.new(0, 5, 0, 0) SearchIcon.BackgroundTransparency = 1 SearchIcon.Text = "Search" SearchIcon.TextColor3 = Colors.TextDim SearchIcon.TextSize = 10 SearchIcon.Font = Enum.Font.Gotham SearchIcon.Parent = SearchFrame local SearchBox = Instance.new("TextBox") SearchBox.Size = UDim2.new(1, -45, 1, 0) SearchBox.Position = UDim2.new(0, 40, 0, 0) SearchBox.BackgroundTransparency = 1 SearchBox.PlaceholderText = "Search brainrots..." SearchBox.Text = "" SearchBox.TextColor3 = Colors.Text SearchBox.TextSize = 11 SearchBox.Font = Enum.Font.Gotham SearchBox.ClearTextOnFocus = false SearchBox.Parent = SearchFrame local QuickFrame = Instance.new("Frame") QuickFrame.Size = UDim2.new(1, -16, 0, 35) QuickFrame.Position = UDim2.new(0, 8, 0, 50) QuickFrame.BackgroundColor3 = Color3.fromRGB(16, 20, 30) QuickFrame.BackgroundTransparency = 0.4 QuickFrame.Parent = FilterPage Instance.new("UICorner", QuickFrame).CornerRadius = UDim.new(0, 8) local SelectAllBtn = Instance.new("TextButton") SelectAllBtn.Size = UDim2.new(0, 100, 0, 28) SelectAllBtn.Position = UDim2.new(0, 8, 0, 3) SelectAllBtn.BackgroundColor3 = Color3.fromRGB(0, 180, 255) SelectAllBtn.BackgroundTransparency = 0.3 SelectAllBtn.Text = "Select All" SelectAllBtn.TextColor3 = Colors.Text SelectAllBtn.TextSize = 11 SelectAllBtn.Font = Enum.Font.GothamBold SelectAllBtn.BorderSizePixel = 0 SelectAllBtn.Parent = QuickFrame Instance.new("UICorner", SelectAllBtn).CornerRadius = UDim.new(0, 6) local ClearAllBtn = Instance.new("TextButton") ClearAllBtn.Size = UDim2.new(0, 100, 0, 28) ClearAllBtn.Position = UDim2.new(0, 115, 0, 3) ClearAllBtn.BackgroundColor3 = Color3.fromRGB(255, 80, 80) ClearAllBtn.BackgroundTransparency = 0.3 ClearAllBtn.Text = "Clear All" ClearAllBtn.TextColor3 = Colors.Text ClearAllBtn.TextSize = 11 ClearAllBtn.Font = Enum.Font.GothamBold ClearAllBtn.BorderSizePixel = 0 ClearAllBtn.Parent = QuickFrame Instance.new("UICorner", ClearAllBtn).CornerRadius = UDim.new(0, 6) local FilterContent = Instance.new("Frame") FilterContent.Size = UDim2.new(1, 0, 0, 0) FilterContent.BackgroundTransparency = 1 FilterContent.Parent = FilterPage local FilterContentLayout = Instance.new("UIListLayout") FilterContentLayout.Padding = UDim.new(0, 6) FilterContentLayout.SortOrder = Enum.SortOrder.LayoutOrder FilterContentLayout.Parent = FilterContent local CategoryFrames = {} local CategoryHeaders = {} local CheckboxReferences = {} for rarity, brainrots in pairs(BrainrotDatabase) do if brainrots and #brainrots > 0 then local sf = Instance.new("Frame") sf.Size = UDim2.new(1, -16, 0, 35 + (#brainrots * 28)) sf.BackgroundColor3 = Color3.fromRGB(16, 20, 30) sf.BackgroundTransparency = 0.2 sf.Parent = FilterContent Instance.new("UICorner", sf).CornerRadius = UDim.new(0, 8) local hdr = Instance.new("TextLabel") hdr.Size = UDim2.new(1, 0, 0, 32) hdr.BackgroundColor3 = RarityColors[rarity] or Colors.PrimaryDark hdr.BackgroundTransparency = 0.7 hdr.Text = rarity:upper() .. " (" .. #brainrots .. ")" hdr.TextColor3 = Colors.Text hdr.TextSize = 11 hdr.Font = Enum.Font.GothamBold hdr.TextXAlignment = Enum.TextXAlignment.Center hdr.Parent = sf Instance.new("UICorner", hdr).CornerRadius = UDim.new(0, 8) CategoryHeaders[rarity] = hdr local content = Instance.new("Frame") content.Size = UDim2.new(1, 0, 0, #brainrots * 28) content.Position = UDim2.new(0, 0, 0, 32) content.BackgroundTransparency = 1 content.Parent = sf CategoryFrames[rarity] = {frame = content, items = {}} local yPos = 0 for _, brainrot in ipairs(brainrots) do local itemFrame = Instance.new("Frame") itemFrame.Size = UDim2.new(1, 0, 0, 26) itemFrame.Position = UDim2.new(0, 0, 0, yPos) itemFrame.BackgroundColor3 = Color3.fromRGB(255, 255, 255) itemFrame.BackgroundTransparency = 0.95 itemFrame.Parent = content Instance.new("UICorner", itemFrame).CornerRadius = UDim.new(0, 4) local cb = Instance.new("TextButton") cb.Size = UDim2.new(0, 26, 0, 22) cb.Position = UDim2.new(0, 5, 0, 2) cb.BackgroundColor3 = SelectedFilters[brainrot] and Color3.fromRGB(0, 180, 255) or Color3.fromRGB(16, 20, 30) cb.BackgroundTransparency = SelectedFilters[brainrot] and 0.2 or 0.6 cb.Text = SelectedFilters[brainrot] and "X" or " " cb.TextColor3 = SelectedFilters[brainrot] and Color3.fromRGB(0, 180, 255) or Colors.TextDim cb.TextSize = 14 cb.Font = Enum.Font.GothamBold cb.BorderSizePixel = 0 cb.Parent = itemFrame Instance.new("UICorner", cb).CornerRadius = UDim.new(0, 4) local nl = Instance.new("TextLabel") nl.Size = UDim2.new(1, -42, 1, 0) nl.Position = UDim2.new(0, 38, 0, 0) nl.BackgroundTransparency = 1 nl.Text = brainrot nl.TextColor3 = SelectedFilters[brainrot] and Color3.fromRGB(0, 180, 255) or Colors.Text nl.TextSize = 10 nl.Font = Enum.Font.Gotham nl.TextXAlignment = Enum.TextXAlignment.Left nl.Parent = itemFrame CheckboxReferences[brainrot] = {checkbox = cb, label = nl} table.insert(CategoryFrames[rarity].items, {checkbox = cb, label = nl, name = brainrot}) cb.MouseButton1Click:Connect(function() if SelectedFilters[brainrot] then SelectedFilters[brainrot] = nil cb.Text = " " cb.BackgroundColor3 = Color3.fromRGB(16, 20, 30) cb.BackgroundTransparency = 0.6 cb.TextColor3 = Colors.TextDim nl.TextColor3 = Colors.Text else SelectedFilters[brainrot] = true cb.Text = "X" cb.BackgroundColor3 = Color3.fromRGB(0, 180, 255) cb.BackgroundTransparency = 0.2 cb.TextColor3 = Color3.fromRGB(0, 180, 255) nl.TextColor3 = Color3.fromRGB(0, 180, 255) end local c = countFilters() if c == 0 then ShowAll = true; FilterIndicator.Text = "Whitelist: ALL"; FilterIndicator.TextColor3 = Colors.TextDim else ShowAll = false; FilterIndicator.Text = "Whitelist: " .. c .. " selected"; FilterIndicator.TextColor3 = Color3.fromRGB(0, 180, 255) end end) yPos = yPos + 28 end end end SearchBox:GetPropertyChangedSignal("Text"):Connect(function() SearchTerm = SearchBox.Text:lower() for rarity, data in pairs(CategoryFrames) do local vis = 0 for _, item in ipairs(data.items) do local show = SearchTerm == "" or item.name:lower():find(SearchTerm) item.checkbox.Parent.Visible = show if show then vis = vis + 1 end end data.frame.Size = UDim2.new(1, 0, 0, vis * 28) if CategoryHeaders[rarity] then CategoryHeaders[rarity].Text = rarity:upper() .. " (" .. (SearchTerm == "" and #data.items or vis) .. " shown)" end end end) SelectAllBtn.MouseButton1Click:Connect(function() for _, data in pairs(CategoryFrames) do for _, item in ipairs(data.items) do SelectedFilters[item.name] = true item.checkbox.Text = "X" item.checkbox.BackgroundColor3 = Color3.fromRGB(0, 180, 255) item.checkbox.BackgroundTransparency = 0.2 item.checkbox.TextColor3 = Color3.fromRGB(0, 180, 255) item.label.TextColor3 = Color3.fromRGB(0, 180, 255) end end ShowAll = false FilterIndicator.Text = "Whitelist: ALL selected" FilterIndicator.TextColor3 = Color3.fromRGB(0, 180, 255) end) ClearAllBtn.MouseButton1Click:Connect(function() SelectedFilters = {} for _, data in pairs(CategoryFrames) do for _, item in ipairs(data.items) do item.checkbox.Text = " " item.checkbox.BackgroundColor3 = Color3.fromRGB(16, 20, 30) item.checkbox.BackgroundTransparency = 0.6 item.checkbox.TextColor3 = Colors.TextDim item.label.TextColor3 = Colors.Text end end ShowAll = true FilterIndicator.Text = "Whitelist: ALL" FilterIndicator.TextColor3 = Colors.TextDim end) SaveBtn.MouseButton1Click:Connect(function() SaveFilters(SelectedFilters, ShowAll) StatusLabel.Text = "Filters saved!" task.wait(1) StatusLabel.Text = "Live" end) LoadBtn.MouseButton1Click:Connect(function() local d = LoadFilters() SelectedFilters = d.sel ShowAll = d.showAll for name, ref in pairs(CheckboxReferences) do if SelectedFilters[name] then ref.checkbox.Text = "X" ref.checkbox.BackgroundColor3 = Color3.fromRGB(0, 180, 255) ref.checkbox.BackgroundTransparency = 0.2 ref.checkbox.TextColor3 = Color3.fromRGB(0, 180, 255) ref.label.TextColor3 = Color3.fromRGB(0, 180, 255) else ref.checkbox.Text = " " ref.checkbox.BackgroundColor3 = Color3.fromRGB(16, 20, 30) ref.checkbox.BackgroundTransparency = 0.6 ref.checkbox.TextColor3 = Colors.TextDim ref.label.TextColor3 = Colors.Text end end local c = countFilters() if c == 0 then ShowAll = true; FilterIndicator.Text = "Whitelist: ALL"; FilterIndicator.TextColor3 = Colors.TextDim else ShowAll = false; FilterIndicator.Text = "Whitelist: " .. c .. " selected"; FilterIndicator.TextColor3 = Color3.fromRGB(0, 180, 255) end StatusLabel.Text = "Filters loaded!" task.wait(1) StatusLabel.Text = "Live" end) FilterContent.Position = UDim2.new(0, 8, 0, 92) FilterContent.Size = UDim2.new(1, -16, 0, 0) local function updateFH() local h = 0 for _, ch in ipairs(FilterContent:GetChildren()) do if ch:IsA("Frame") then h = h + ch.Size.Y.Offset + 6 end end FilterContent.Size = UDim2.new(1, -16, 0, h) FilterPage.CanvasSize = UDim2.new(0, 0, 0, h + 100) end task.spawn(function() task.wait(0.5); updateFH() end) FilterContentLayout:GetPropertyChangedSignal("AbsoluteContentSize"):Connect(updateFH) local function SwitchTab(tab) if tab == "logs" then ScannerPage.Visible = true FilterPage.Visible = false SettingsPage.Visible = false ScannerTab.BackgroundColor3 = Color3.fromRGB(0, 180, 255) ScannerTab.BackgroundTransparency = 0.15 ScannerTab.TextColor3 = Color3.fromRGB(255, 255, 255) FilterTab.BackgroundColor3 = Color3.fromRGB(8, 10, 18) FilterTab.BackgroundTransparency = 0.8 FilterTab.TextColor3 = Colors.TextDim navSettings.TextColor3 = Colors.TextDim navOwners.TextColor3 = Colors.TextDim navUsers.TextColor3 = Colors.TextDim elseif tab == "whitelist" then ScannerPage.Visible = false FilterPage.Visible = true SettingsPage.Visible = false FilterTab.BackgroundColor3 = Color3.fromRGB(0, 180, 255) FilterTab.BackgroundTransparency = 0.15 FilterTab.TextColor3 = Color3.fromRGB(255, 255, 255) ScannerTab.BackgroundColor3 = Color3.fromRGB(8, 10, 18) ScannerTab.BackgroundTransparency = 0.8 ScannerTab.TextColor3 = Colors.TextDim navSettings.TextColor3 = Colors.TextDim navOwners.TextColor3 = Colors.TextDim navUsers.TextColor3 = Colors.TextDim elseif tab == "settings" then ScannerPage.Visible = false FilterPage.Visible = false SettingsPage.Visible = true navSettings.TextColor3 = Color3.fromRGB(0, 180, 255) ScannerTab.BackgroundColor3 = Color3.fromRGB(8, 10, 18) ScannerTab.BackgroundTransparency = 0.8 ScannerTab.TextColor3 = Colors.TextDim FilterTab.BackgroundColor3 = Color3.fromRGB(8, 10, 18) FilterTab.BackgroundTransparency = 0.8 FilterTab.TextColor3 = Colors.TextDim navOwners.TextColor3 = Colors.TextDim navUsers.TextColor3 = Colors.TextDim else ScannerPage.Visible = false FilterPage.Visible = false SettingsPage.Visible = false ScannerTab.BackgroundColor3 = Color3.fromRGB(8, 10, 18) ScannerTab.BackgroundTransparency = 0.8 ScannerTab.TextColor3 = Colors.TextDim FilterTab.BackgroundColor3 = Color3.fromRGB(8, 10, 18) FilterTab.BackgroundTransparency = 0.8 FilterTab.TextColor3 = Colors.TextDim navSettings.TextColor3 = Colors.TextDim navOwners.TextColor3 = Colors.TextDim navUsers.TextColor3 = Colors.TextDim StatusLabel.Text = "Page not implemented yet" end end ScannerTab.MouseButton1Click:Connect(function() SwitchTab("logs") end) FilterTab.MouseButton1Click:Connect(function() SwitchTab("whitelist") end) navSettings.MouseButton1Click:Connect(function() SwitchTab("settings") end) navOwners.MouseButton1Click:Connect(function() SwitchTab("owners") end) navUsers.MouseButton1Click:Connect(function() SwitchTab("users") end) -- Stats and Header (on ScannerPage) local StatsFrame = Instance.new("Frame") StatsFrame.Size = UDim2.new(1, -16, 0, 42) StatsFrame.Position = UDim2.new(0, 8, 0, 6) StatsFrame.BackgroundColor3 = Color3.fromRGB(16, 20, 30) StatsFrame.BackgroundTransparency = 0.4 StatsFrame.Parent = ScannerPage Instance.new("UICorner", StatsFrame).CornerRadius = UDim.new(0, 8) local CountLabel = Instance.new("TextLabel") CountLabel.Size = UDim2.new(0.45, 0, 0, 18) CountLabel.Position = UDim2.new(0, 8, 0, 4) CountLabel.BackgroundTransparency = 1 CountLabel.Text = "Brainrots: 0" CountLabel.TextColor3 = Color3.fromRGB(0, 180, 255) CountLabel.TextSize = 10 CountLabel.Font = Enum.Font.GothamBold CountLabel.TextXAlignment = Enum.TextXAlignment.Left CountLabel.Parent = StatsFrame StatusLabel = Instance.new("TextLabel") StatusLabel.Size = UDim2.new(0.55, -8, 0, 18) StatusLabel.Position = UDim2.new(0, 8, 0, 22) StatusLabel.BackgroundTransparency = 1 StatusLabel.Text = "READY - connecting to live feed" StatusLabel.TextColor3 = Colors.TextDim StatusLabel.TextSize = 9 StatusLabel.Font = Enum.Font.Gotham StatusLabel.TextXAlignment = Enum.TextXAlignment.Left StatusLabel.Parent = StatsFrame pcall(function() local TeleportService = game:GetService("TeleportService") if TeleportService and TeleportService.TeleportInitFailed then TeleportService.TeleportInitFailed:Connect(function(player, result, errorMessage) if player ~= LocalPlayer then return end local failed = pendingTeleport pendingTeleport = nil if failed and failed.jobId then failedTeleportJobs[failed.jobId] = os.clock() + TELEPORT_FAIL_COOLDOWN end StatusLabel.Text = "Teleport failed (" .. tostring(result) .. "): " .. tostring(errorMessage or "server unavailable") if failed and failed.button and failed.button.Parent then failed.button.Text = "UNAVAILABLE" failed.button.BackgroundColor3 = Colors.Error end -- Let Auto-join consider a different feed entry, but never this -- failed jobId during the cooldown window. autoJoinFired = false end) end end) local function countFilters() local n=0 for _ in pairs(SelectedFilters) do n=n+1 end return n end local FilterIndicator = Instance.new("TextLabel") FilterIndicator.Size = UDim2.new(0, 150, 0, 20) FilterIndicator.Position = UDim2.new(1, -158, 0, 11) FilterIndicator.BackgroundColor3 = Color3.fromRGB(0, 180, 255) FilterIndicator.BackgroundTransparency = 0.85 FilterIndicator.Text = ShowAll and "Whitelist: ALL" or "Whitelist: "..countFilters() FilterIndicator.TextColor3 = Colors.TextDim FilterIndicator.TextSize = 8 FilterIndicator.Font = Enum.Font.Gotham FilterIndicator.Parent = StatsFrame Instance.new("UICorner", FilterIndicator).CornerRadius = UDim.new(0, 5) -- Header local HeaderFrame = Instance.new("Frame") HeaderFrame.Size = UDim2.new(1, -16, 0, 28) HeaderFrame.Position = UDim2.new(0, 8, 0, 54) HeaderFrame.BackgroundColor3 = Color3.fromRGB(0, 180, 255) HeaderFrame.BackgroundTransparency = 0.85 HeaderFrame.Parent = ScannerPage Instance.new("UICorner", HeaderFrame).CornerRadius = UDim.new(0, 6) local function hLabel(p,s,pos,t) local l = Instance.new("TextLabel") l.Size = s; l.Position = pos l.BackgroundTransparency = 1 l.Text = t l.TextColor3 = Colors.TextDim l.TextSize = 9 l.Font = Enum.Font.GothamBold l.TextXAlignment = Enum.TextXAlignment.Left l.Parent = p end hLabel(HeaderFrame, UDim2.new(0.45,0,1,0), UDim2.new(0,8,0,0), "Brainrot") hLabel(HeaderFrame, UDim2.new(0.2,0,1,0), UDim2.new(0.45,0,0,0), "Value") hLabel(HeaderFrame, UDim2.new(0.25,0,1,0), UDim2.new(0.65,0,0,0), "Owner") -- List Frame local ListFrame = Instance.new("Frame") ListFrame.Size = UDim2.new(1, -16, 1, -156) ListFrame.Position = UDim2.new(0, 8, 0, 88) ListFrame.BackgroundColor3 = Color3.fromRGB(16, 20, 30) ListFrame.BackgroundTransparency = 0.3 ListFrame.Parent = ScannerPage Instance.new("UICorner", ListFrame).CornerRadius = UDim.new(0, 8) local ListScroll = Instance.new("ScrollingFrame") ListScroll.Size = UDim2.new(1, -8, 1, -8) ListScroll.Position = UDim2.new(0, 4, 0, 4) ListScroll.BackgroundTransparency = 1 ListScroll.ScrollBarThickness = 3 ListScroll.CanvasSize = UDim2.new(0,0,0,0) ListScroll.AutomaticCanvasSize = Enum.AutomaticSize.Y ListScroll.Parent = ListFrame local ListLayout = Instance.new("UIListLayout") ListLayout.Padding = UDim.new(0, 3) ListLayout.SortOrder = Enum.SortOrder.LayoutOrder ListLayout.Parent = ListScroll -- Console local ConsoleFrame = Instance.new("Frame") ConsoleFrame.Size = UDim2.new(1, -16, 0, 58) ConsoleFrame.Position = UDim2.new(0, 8, 1, -64) ConsoleFrame.BackgroundColor3 = Color3.fromRGB(8, 10, 18) ConsoleFrame.BackgroundTransparency = 0.5 ConsoleFrame.BorderSizePixel = 0 ConsoleFrame.Parent = ScannerPage Instance.new("UICorner", ConsoleFrame).CornerRadius = UDim.new(0, 6) ConsoleText = Instance.new("TextLabel") ConsoleText.Size = UDim2.new(1, -12, 1, -8) ConsoleText.Position = UDim2.new(0, 6, 0, 4) ConsoleText.BackgroundTransparency = 1 ConsoleText.Text = "READY - CocoXNotifier online\n[ CocoX ] Waiting for brainrot detections..." ConsoleText.TextColor3 = Colors.TextDim ConsoleText.TextSize = 9 ConsoleText.Font = Enum.Font.Code ConsoleText.TextXAlignment = Enum.TextXAlignment.Left ConsoleText.TextYAlignment = Enum.TextYAlignment.Top ConsoleText.Parent = ConsoleFrame -- ============================================ -- SOUND PLAYER -- ============================================ local function playNotificationSound(soundId) if not soundId or soundId == "" then return end local sound = Instance.new("Sound") sound.SoundId = "rbxassetid://" .. tostring(soundId) sound.Volume = 0.8 sound.Parent = workspace pcall(function() sound:Play() end) sound.Ended:Connect(function() sound:Destroy() end) task.delay(10, function() if sound and sound.Parent then sound:Destroy() end end) end -- ============================================ -- JOIN FUNCTION -- ============================================ local function joinServer(name, jobId, button, rapidAutoJoin) local targetJobId = normalizeJobId(jobId) if not targetJobId or targetJobId == "" then StatusLabel.Text = "Invalid server ID for: " .. name return false end local failedUntil = failedTeleportJobs[targetJobId] if failedUntil and os.clock() < failedUntil then StatusLabel.Text = "Skipping unavailable server (cooldown)" if button then button.Text = "UNAVAILABLE" button.BackgroundColor3 = Colors.Error end return false elseif failedUntil then failedTeleportJobs[targetJobId] = nil end -- Do not repeatedly spam a jobId: Roblox may have already shut it down. local attempts = rapidAutoJoin and AUTO_JOIN_ATTEMPTS or (Settings.spamJoin and Settings.spamAttempts or 1) local delayBetween = rapidAutoJoin and 0 or 0.3 local anySuccess = false local TeleportService = game:GetService("TeleportService") if not TeleportService or not TeleportService.TeleportToPlaceInstance then StatusLabel.Text = "Teleport not supported in this game" return false end for attempt = 1, attempts do if attempt > 1 then StatusLabel.Text = "Spam attempt " .. attempt .. "/" .. attempts .. " for " .. name else StatusLabel.Text = "Joining: " .. name end if button then button.Text = attempt .. "/" .. attempts button.BackgroundColor3 = Colors.PrimaryLight end pendingTeleport = {name = name, button = button, jobId = targetJobId} local ok, err = pcall(function() TeleportService:TeleportToPlaceInstance(game.PlaceId, targetJobId, LocalPlayer) end) if ok then anySuccess = true -- Teleport requests complete asynchronously. Do not spam retries; -- TeleportInitFailed below will mark unavailable servers. if not rapidAutoJoin then return true end else pendingTeleport = nil StatusLabel.Text = "Join attempt " .. attempt .. " failed: " .. tostring(err) if button then button.Text = "FAIL" button.BackgroundColor3 = Colors.Error end if attempt < attempts then task.wait(delayBetween) end end end if anySuccess then StatusLabel.Text = "Teleport requested: " .. name if button then button.Text = "SENT" button.BackgroundColor3 = Colors.PrimaryLight end return true end StatusLabel.Text = "All " .. attempts .. " join attempts failed for " .. name if button then button.Text = "JOIN" button.BackgroundColor3 = Colors.Success end return false end -- ============================================ -- ADD ROW -- ============================================ local totalCount = 0 local function getColor(name) if name:find("Gold") then return Colors.Gold end if name:find("Rainbow") then return Colors.Rainbow end return Color3.fromRGB(0, 180, 255) end local PopupSound = Instance.new("Sound") PopupSound.Name = "CocoXPopupSound" PopupSound.SoundId = "rbxassetid://11433973015889" PopupSound.Volume = 0.8 PopupSound.Parent = workspace -- Detection mode: show every discovered name, including names not in the -- built-in database. Filters remain available in the UI but do not hide logs. local function ShouldDisplay(name) return true end local function addRow(name, value, owner, jobId) print("[CocoX] addRow called for: " .. name .. " (owner: " .. owner .. ")") print("[CocoX] ShowAll: " .. tostring(ShowAll) .. ", SelectedFilters count: " .. countFilters()) if not ShouldDisplay(name) then print("[CocoX] SKIPPED: " .. name .. " - not in filter") return end totalCount = totalCount + 1 print("[CocoX] ADDING row #" .. totalCount .. ": " .. name) pcall(function() PopupSound:Play() end) if Settings.soundId and Settings.soundId ~= "" then task.spawn(function() playNotificationSound(Settings.soundId) end) end local color = getColor(name) local row = Instance.new("Frame") row.Size = UDim2.new(1, 0, 0, 36) row.BackgroundColor3 = Color3.fromRGB(255, 255, 255) row.BackgroundTransparency = 0.93 row.LayoutOrder = totalCount row.Parent = ListScroll Instance.new("UICorner", row).CornerRadius = UDim.new(0, 6) local bar = Instance.new("Frame") bar.Size = UDim2.new(0, 3, 1, 0) bar.BackgroundColor3 = color bar.BorderSizePixel = 0 bar.Parent = row local lN = Instance.new("TextLabel") lN.Size = UDim2.new(0.45, -15, 1, 0) lN.Position = UDim2.new(0, 12, 0, 0) lN.BackgroundTransparency = 1 lN.Text = name lN.TextColor3 = color lN.TextSize = 11 lN.Font = Enum.Font.GothamBold lN.TextXAlignment = Enum.TextXAlignment.Left lN.TextTruncate = Enum.TextTruncate.AtEnd lN.Parent = row local lV = Instance.new("TextLabel") lV.Size = UDim2.new(0.2, 0, 1, 0) lV.Position = UDim2.new(0.45, 0, 0, 0) lV.BackgroundTransparency = 1 lV.Text = value lV.TextColor3 = Colors.PrimaryLight lV.TextSize = 10 lV.Font = Enum.Font.GothamBold lV.TextXAlignment = Enum.TextXAlignment.Left lV.Parent = row local lO = Instance.new("TextLabel") lO.Size = UDim2.new(0.2, 0, 1, 0) lO.Position = UDim2.new(0.65, 0, 0, 0) lO.BackgroundTransparency = 1 lO.Text = owner lO.TextColor3 = Colors.TextDim lO.TextSize = 9 lO.Font = Enum.Font.Gotham lO.TextXAlignment = Enum.TextXAlignment.Left lO.TextTruncate = Enum.TextTruncate.AtEnd lO.Parent = row local jBtn = Instance.new("TextButton") jBtn.Size = UDim2.new(0, 62, 0, 28) jBtn.Position = UDim2.new(1, -70, 0.5, -14) jBtn.BackgroundColor3 = Color3.fromRGB(0, 180, 255) jBtn.BackgroundTransparency = 0.3 jBtn.Text = "JOIN" jBtn.TextColor3 = Color3.fromRGB(255, 255, 255) jBtn.TextSize = 10 jBtn.Font = Enum.Font.GothamBold jBtn.BorderSizePixel = 0 jBtn.Parent = row Instance.new("UICorner", jBtn).CornerRadius = UDim.new(0, 5) jBtn.MouseButton1Click:Connect(function() if not jobId or jobId == "" then StatusLabel.Text = "No server ID for: " .. name return end task.spawn(function() joinServer(name, jobId, jBtn) end) end) CountLabel.Text = "Brainrots: " .. totalCount -- Auto-join if AutoJoinEnabled and not autoJoinFired and jobId and jobId ~= "" then local normalizedJob = normalizeJobId(jobId) local failedUntil = normalizedJob and failedTeleportJobs[normalizedJob] if not failedUntil or os.clock() >= failedUntil then autoJoinFired = true task.spawn(function() StatusLabel.Text = "AUTO-JOINING: " .. name joinServer(name, jobId, jBtn, true) end) end end -- Force canvas update task.spawn(function() local h = ListLayout.AbsoluteContentSize.Y + 20 ListScroll.CanvasSize = UDim2.new(0, 0, 0, h) end) end -- ============================================ -- SCAN FUNCTIONS -- ============================================ local function GetAnimalInfo(animalId, mutation) local name = animalId or "Unknown" if AnimalsData and AnimalsData[animalId] then name = AnimalsData[animalId].DisplayName or animalId end if mutation and mutation ~= "None" and mutation ~= "Normal" then name = mutation .. " " .. name end return name, 0 end local function FormatValue(v) if v >= 1e9 then return "$" .. string.format("%.1f", v / 1e9) .. "B" elseif v >= 1e6 then return "$" .. string.format("%.1f", v / 1e6) .. "M" elseif v >= 1e3 then return "$" .. string.format("%.1f", v / 1e3) .. "K" else return "$" .. tostring(math.floor(v)) end end local seenLocalDetections = {} local function ScanCurrentServer() if not SyncInt._data then StatusLabel.Text = "Waiting for Synchronizer..." return end local plots = workspace:FindFirstChild("Plots") if not plots then StatusLabel.Text = "No plots found" return end StatusLabel.Text = "Scanning..." local found, shown = 0, 0 for _, plot in ipairs(plots:GetChildren()) do local ch = stealthGet(plot.Name) if ch then local animalList = sProp(ch, "AnimalList") local owner = sProp(ch, "Owner") if animalList and owner and owner.UserId ~= LocalPlayer.UserId then for _, ad in pairs(animalList) do if type(ad) == "table" then local name, value = GetAnimalInfo(ad.Index, ad.Mutation or "None") found = found + 1 local ownerName = tostring(owner.Name or "Unknown") local detectionKey = tostring(owner.UserId or ownerName) .. ":" .. tostring(ad.Index) .. ":" .. tostring(ad.Mutation or "None") if not seenLocalDetections[detectionKey] then seenLocalDetections[detectionKey] = true print("[CocoX][SCAN] Detected: " .. tostring(name) .. " | owner=" .. ownerName .. " | server=" .. tostring(game.JobId)) postPetDiscovery(name, value, "") addRow(name, FormatValue(value), ownerName, game.JobId) shown = shown + 1 end task.wait() end end end end end if found == 0 then StatusLabel.Text = "No brainrots found" elseif shown == 0 then StatusLabel.Text = "Found " .. found .. " but none match filter" else StatusLabel.Text = "Found " .. shown .. " brainrots" end end local autoScanActive = false local function StartAutoScan() autoScanActive = true StatusLabel.Text = "Auto-scan active" while autoScanActive do ScanCurrentServer() if autoScanActive then task.wait(1) end end end local function StopAutoScan() autoScanActive = false end -- ============================================ -- LIVE FEED – PROCESSES ALL MESSAGES -- ============================================ local seenFeedIds = {} local feedActive = true task.spawn(function() task.wait(2) while feedActive do local body = httpGet(API_BASE .. "/api/getPets?t=" .. tostring(math.floor(os.clock() * 1000))) if body then print("[CocoX] Feed response received (length: " .. #body .. ")") local ok, list = pcall(HttpService.JSONDecode, HttpService, body) if ok and type(list) == "table" then if type(list.pets) == "table" then list = list.pets elseif type(list.data) == "table" then list = list.data elseif type(list.logs) == "table" then list = list.logs end local newCount = 0 for i = #list, 1, -1 do local m = list[i] if type(m) == "table" then local feedId = tostring(m.id or (tostring(m.petName or m.name or "Unknown") .. ":" .. tostring(m.jobId or "") .. ":" .. tostring(m.timestamp or i))) if not seenFeedIds[feedId] then seenFeedIds[feedId] = true local name = tostring(m.petName or m.name or "Unknown") local value = tostring(m.value or "") local owner = tostring(m.owner or m.username or "shared feed") local jobId = tostring(m.jobId or "") print("[CocoX] New feed item: " .. name .. " (owner: " .. owner .. ")") pcall(function() addRow(name, value, owner, jobId) end) newCount = newCount + 1 end end end if newCount > 0 then StatusLabel.Text = "Feed: +" .. newCount .. " from alt scanners" elseif #list > 0 then StatusLabel.Text = "Feed armed - " .. #list .. " messages loaded" end else print("[CocoX] Failed to decode feed response: " .. tostring(body)) end else print("[CocoX] No feed response (empty)") end task.wait(1) end end) -- Dragging local dragging, dragStart, startPos = false, nil, nil TitleBar.InputBegan:Connect(function(i) if i.UserInputType == Enum.UserInputType.MouseButton1 then dragging = true; dragStart = i.Position; startPos = MainFrame.Position end end) UserInputService.InputChanged:Connect(function(i) if dragging and i.UserInputType == Enum.UserInputType.MouseMovement then local d = i.Position - dragStart MainFrame.Position = UDim2.new(startPos.X.Scale, startPos.X.Offset + d.X, startPos.Y.Scale, startPos.Y.Offset + d.Y) end end) UserInputService.InputEnded:Connect(function(i) if i.UserInputType == Enum.UserInputType.MouseButton1 then dragging = false end end) local guiVisible = true UserInputService.InputBegan:Connect(function(i, gp) if gp then return end if i.KeyCode == Enum.KeyCode.E then guiVisible = not guiVisible MainFrame.Visible = guiVisible end end) CloseBtn.MouseButton1Click:Connect(function() StopAutoScan() MainFrame.Visible = false end) StatusLabel.Text = "Ready! Select filters, then scan" task.spawn(function() for i = 1, 10 do SyncInt._data = getInternalTable() if SyncInt._data then print("[CocoX] Synchronizer loaded") break end task.wait(1) end if Datas then for i = 1, 10 do local ok, d = pcall(require, Datas:FindFirstChild("Animals")) if ok and d then AnimalsData = d; print("[CocoX] Game modules loaded") break end task.wait(0.5) end end if AnimalsData then StatusLabel.Text = "Ready! Select filters and scan" end end) print("[CocoX v4.0] Loaded for " .. tostring(validatedUser or "User") .. " | Access: no key required") -- Overhead Tags local OWNER_NAME = "GusXaviere" local overheadByUserId = {} local function makeOverhead(plr, label) if not plr or not plr.Character then return nil end local head = plr.Character:FindFirstChild("Head") if not head then return nil end local bb = Instance.new("BillboardGui") bb.Name = "CocoXTag" bb.Adornee = head bb.Size = UDim2.new(0, 200, 0, 28) bb.StudsOffset = Vector3.new(0, 2.6, 0) bb.AlwaysOnTop = true bb.MaxDistance = 200 bb.Parent = head local txt = Instance.new("TextLabel") txt.BackgroundTransparency = 1 txt.Size = UDim2.new(1, 0, 1, 0) txt.Font = Enum.Font.GothamBold txt.TextSize = 16 txt.TextColor3 = Color3.fromRGB(0, 180, 255) txt.TextStrokeTransparency = 0.35 txt.TextStrokeColor3 = Color3.fromRGB(0, 0, 0) txt.Text = label txt.Parent = bb return bb end local function ensureTagFor(userId, username) if overheadByUserId[userId] and overheadByUserId[userId].Parent then return end local plr = Players:GetPlayerByUserId(userId) if not plr then return end local label = (string.lower(plr.Name) == string.lower(OWNER_NAME) or string.lower(username or "") == string.lower(OWNER_NAME)) and "Owner Of CocoX" or "CocoX User" local bb = makeOverhead(plr, label) if bb then overheadByUserId[userId] = bb plr.CharacterAdded:Connect(function() task.wait(0.5) if overheadByUserId[userId] then pcall(function() overheadByUserId[userId]:Destroy() end) end overheadByUserId[userId] = makeOverhead(plr, label) end) end end local function removeTagFor(userId) local bb = overheadByUserId[userId] if bb then pcall(function() bb:Destroy() end) end overheadByUserId[userId] = nil end Players.PlayerRemoving:Connect(function(plr) removeTagFor(plr.UserId) end) end -- ============================================ -- START COCOX DIRECTLY (NO ACCESS KEY OR DISCORD GATE) -- ============================================ setNotifierStatus("connected") showMainGui(LocalPlayer and LocalPlayer.Name or "User", "No key required")