
Key Required VerifiedUniversal

local VERSION = "1.0.0"
local Players = game:GetService("Players")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local RunService = game:GetService("RunService")
local UserInputService = game:GetService("UserInputService")
local TweenService = game:GetService("TweenService")
local Workspace = game:GetService("Workspace")
local LocalPlayer = Players.LocalPlayer
local IsMobile = UserInputService.TouchEnabled and not UserInputService.KeyboardEnabled
local Config = {
KillAura = false,
KillAuraRange = 50,
KillAuraSpeed = 0.02,
MultiTarget = true,
AutoEquipBest = false,
AutoBuyHatch = false,
SelectedEgg = "City Egg",
HatchDelay = 1.5,
AutoDeletePets = false,
DeleteBelowRarity = "Rare",
DeleteDelay = 2,
AutoRebirth = false,
AutoCollect = false,
AutoSpin = false,
AutoQuest = false,
SpeedHack = false,
WalkSpeed = 50,
NoClip = false,
Fly = false,
FlySpeed = 50
}
local EggList = {
"Basic Egg", "City Egg", "Chef Egg", "Cake Egg", "Toilet Egg", "Sink Egg",
"Sahure Egg", "Adventure Egg", "Lab Egg", "Mecha Egg", "Xenon Egg",
"Thanatos Egg", "Angelico Egg", "Hydriant Egg", "Capy Egg", "Ghoulix Egg",
"Hydrocore Egg", "God Egg", "Alien Egg", "Ice Egg", "Golem Egg",
"Corn Egg", "Flower Egg", "Void Egg", "Mythic Egg", "Legendary Egg"
}
local RarityList = {"Common", "Uncommon", "Rare", "Epic", "Legendary", "Mythic", "Secret"}
local RarityOrder = {Common = 1, Uncommon = 2, Rare = 3, Epic = 4, Legendary = 5, Mythic = 6, Secret = 7}
local PetsInfo = nil
pcall(function()
PetsInfo = require(ReplicatedStorage:WaitForChild("GameInfo"):WaitForChild("PetsInfo"))
end)
local State = {
Unloaded = false,
LastAttack = 0,
LastHatch = 0,
LastRebirth = 0,
LastCollect = 0,
LastSpin = 0,
LastQuest = 0,
LastDelete = 0,
LastEquip = 0,
Connections = {},
Flying = false,
FlyBV = nil,
FlyBG = nil,
Gui = nil,
MobileBtn = nil
}
local function GetKnitRemote(serviceName, folder, remoteName)
local success, result = pcall(function()
return ReplicatedStorage.Packages.Knit.Services[serviceName][folder][remoteName]
end)
return success and result or nil
end
local Remotes = {
RequestAttack = GetKnitRemote("MonsterService", "RF", "RequestAttack"),
CanAttack = GetKnitRemote("MonsterService", "RF", "CanAttack"),
EquipBest = GetKnitRemote("MonsterService", "RF", "EquipBest"),
OpenEgg = GetKnitRemote("EggService", "RF", "OpenEgg"),
RequestRebirth = GetKnitRemote("RebirthService", "RF", "RequestRebirth"),
PetEquipBest = GetKnitRemote("PetsService", "RF", "EquipBest"),
PetDelete = GetKnitRemote("PetsService", "RF", "Delete"),
SpinAll = GetKnitRemote("SpinWheelService", "RF", "SpinAll"),
SpinWheel = GetKnitRemote("SpinWheelService", "RF", "SpinWheel"),
CollectDailyReward = GetKnitRemote("DailyService", "RF", "CollectDailyReward"),
ClaimDailyStreak = GetKnitRemote("DailyService", "RF", "ClaimDailyStreak"),
CollectAll = GetKnitRemote("IndexService", "RF", "CollectAll"),
ClaimQuestReward = GetKnitRemote("QuestService", "RF", "ClaimQuestReward"),
RequestLevelUp = GetKnitRemote("LevelService", "RF", "RequestLevelUp")
}
local Knit, KnitPetsService, KnitRebirthService, KnitSeasonPassService, KnitGiftService
local KnitDailyService, KnitIndexService, KnitQuestService, KnitShopService
pcall(function()
Knit = require(ReplicatedStorage.Packages.Knit)
KnitPetsService = Knit.GetService("PetsService")
KnitRebirthService = Knit.GetService("RebirthService")
KnitSeasonPassService = Knit.GetService("SeasonPassService")
KnitGiftService = Knit.GetService("GiftService")
KnitDailyService = Knit.GetService("DailyService")
KnitIndexService = Knit.GetService("IndexService")
KnitQuestService = Knit.GetService("QuestService")
KnitShopService = Knit.GetService("ShopService")
end)
local function GetChar() return LocalPlayer.Character end
local function GetRoot() local c = GetChar() return c and c:FindFirstChild("HumanoidRootPart") end
local function GetHum() local c = GetChar() return c and c:FindFirstChildOfClass("Humanoid") end
local function SafeInvoke(remote, ...)
if not remote then return nil end
local args = {...}
local success, result = pcall(function() return remote:InvokeServer(unpack(args)) end)
return success and result or nil
end
local function GetMobs(range)
local mobs = {}
local root = GetRoot()
if not root then return mobs end
local myPos = root.Position
local char = GetChar()
for _, obj in ipairs(Workspace:GetDescendants()) do
if obj:IsA("Model") and obj ~= char then
local hum = obj:FindFirstChildOfClass("Humanoid")
if hum and hum.Health > 0 then
local mobRoot = obj:FindFirstChild("HumanoidRootPart") or obj:FindFirstChild("Torso") or obj:FindFirstChild("Head")
if mobRoot then
local dist = (myPos - mobRoot.Position).Magnitude
if dist <= range then
table.insert(mobs, {pos = mobRoot.Position, dist = dist})
end
end
end
end
end
table.sort(mobs, function(a, b) return a.dist < b.dist end)
return mobs
end
local currentTargetIndex = 1
local cachedMobs = {}
local lastMobCache = 0
local function DoKillAura()
if not Config.KillAura or not Remotes.RequestAttack then return end
local root = GetRoot()
if not root then return end
local now = tick()
if now - lastMobCache > 0.5 then
cachedMobs = GetMobs(Config.KillAuraRange)
lastMobCache = now
currentTargetIndex = 1
end
if #cachedMobs == 0 then return end
local maxTargets = Config.MultiTarget and 5 or 1
local attackRange = 5
local targetCount = math.min(#cachedMobs, maxTargets)
if currentTargetIndex > targetCount then currentTargetIndex = 1 end
local mobPos = cachedMobs[currentTargetIndex].pos
local fakePlayerPos = mobPos + Vector3.new(0, 0, attackRange)
local fakeCFrame = CFrame.new(fakePlayerPos, mobPos)
local spoofedAttackCFrame = fakeCFrame * CFrame.new(0, 0, -attackRange)
task.spawn(function()
pcall(function() Remotes.RequestAttack:InvokeServer(spoofedAttackCFrame) end)
end)
currentTargetIndex = currentTargetIndex + 1
end
local function DoEquipBest()
pcall(function()
if KnitPetsService and KnitPetsService.EquipBest then
KnitPetsService:EquipBest()
elseif Remotes.EquipBest then
Remotes.EquipBest:InvokeServer()
elseif Remotes.PetEquipBest then
Remotes.PetEquipBest:InvokeServer()
end
end)
end
local function DoHatch()
local eggName = Config.SelectedEgg
SafeInvoke(Remotes.OpenEgg, eggName)
SafeInvoke(Remotes.OpenEgg, eggName, 1)
SafeInvoke(Remotes.OpenEgg, eggName, true)
end
local RebirthLevelRequirements = {[2] = 25, [3] = 39, [4] = 60, [5] = 67, [6] = 81, [7] = 95}
local function GetCurrentLevel()
local level = 0
pcall(function()
local leaderstats = LocalPlayer:FindFirstChild("leaderstats")
if leaderstats then
local lvl = leaderstats:FindFirstChild("Level")
if lvl then level = tonumber(lvl.Value) or 0 end
end
end)
return level
end
local function GetCurrentRebirths()
local rebirths = 0
pcall(function()
local leaderstats = LocalPlayer:FindFirstChild("leaderstats")
if leaderstats then
local rb = leaderstats:FindFirstChild("Rebirths")
if rb then rebirths = tonumber(rb.Value) or 0 end
end
end)
return rebirths
end
local function DoRebirth()
local currentRebirths = GetCurrentRebirths()
local currentLevel = GetCurrentLevel()
local nextRebirth = currentRebirths + 1
if nextRebirth > 7 then return end
local levelRequired = RebirthLevelRequirements[nextRebirth] or 999
if currentLevel < levelRequired then return end
pcall(function()
if KnitRebirthService and KnitRebirthService.RequestRebirth then
KnitRebirthService:RequestRebirth(nextRebirth)
elseif Remotes.RequestRebirth then
Remotes.RequestRebirth:InvokeServer(nextRebirth)
end
end)
end
local function DoCollect()
pcall(function()
if KnitDailyService then
KnitDailyService:CollectDailyReward()
task.wait(0.2)
KnitDailyService:ClaimDailyStreak()
end
end)
pcall(function()
if KnitIndexService and KnitIndexService.CollectAll then
KnitIndexService:CollectAll()
end
end)
pcall(function()
if KnitGiftService then
for i = 1, 30 do
pcall(function() KnitGiftService:CollectGift(i) end)
end
end
end)
pcall(function()
if KnitSeasonPassService then
for tier = 1, 50 do
pcall(function() KnitSeasonPassService:ClaimPass("Free", tier) end)
end
end
end)
end
local function DoSpin()
SafeInvoke(Remotes.SpinAll)
SafeInvoke(Remotes.SpinWheel)
end
local function GetReplicaData()
local data = nil
pcall(function()
local ReplicaListener = Knit.GetController("ReplicaListener")
if ReplicaListener then
local replica = ReplicaListener:GetReplica()
if replica then data = replica.Data end
end
end)
return data
end
local function DoQuest()
if not KnitQuestService then return end
local replicaData = GetReplicaData()
if not replicaData or not replicaData.QuestService then return end
local questData = replicaData.QuestService
if questData.DailyQuests then
for questName, status in pairs(questData.DailyQuests) do
if status == "Completed" then
pcall(function() KnitQuestService:ClaimQuestReward("DailyQuests", questName) end)
task.wait(0.3)
end
end
end
local achievements = {"EggsAchievement", "AttacksAchievement", "MonstersAchievement", "FoodAchievement"}
for _, achieveName in ipairs(achievements) do
pcall(function() KnitQuestService:ClaimAchievement(achieveName) end)
task.wait(0.2)
end
pcall(function() KnitQuestService:ClaimCompletionReward() end)
end
local function RedeemCode()
pcall(function()
if KnitShopService and KnitShopService.SubmitCode then
KnitShopService:SubmitCode("release")
end
end)
end
local function GetPetRarity(petName)
if not PetsInfo then return "Common" end
local info = PetsInfo[petName]
if info and info.Design then return info.Design end
return "Common"
end
local function ShouldDeletePet(petRarity)
local threshold = RarityOrder[Config.DeleteBelowRarity] or 3
local petRank = RarityOrder[petRarity] or 1
return petRank < threshold
end
local function GetBestPetIds()
local bestPets = {}
local replicaData = GetReplicaData()
if not replicaData or not replicaData.PetsService then return bestPets end
local petsData = replicaData.PetsService.Pets or {}
local petList = {}
for petId, petData in pairs(petsData) do
local petName = petData.Name
local multiplier = 1
if PetsInfo and PetsInfo[petName] then
multiplier = PetsInfo[petName].Multiplier or 1
end
table.insert(petList, {id = petId, name = petName, mult = multiplier})
end
table.sort(petList, function(a, b) return a.mult > b.mult end)
local maxEquip = replicaData.PetsService.MaxEquip or 3
for i = 1, math.min(maxEquip, #petList) do
bestPets[petList[i].id] = true
end
return bestPets
end
local function DoDeletePets()
if not Config.AutoDeletePets then return end
if Config.AutoEquipBest then
pcall(function()
if KnitPetsService and KnitPetsService.EquipBest then
KnitPetsService:EquipBest()
end
end)
task.wait(0.5)
end
local replicaData = GetReplicaData()
if not replicaData then return end
local petsData = replicaData.PetsService and replicaData.PetsService.Pets
if not petsData then return end
local equippedPets = replicaData.PetsService and replicaData.PetsService.EquippedPets or {}
local equippedSet = {}
for _, petId in pairs(equippedPets) do equippedSet[petId] = true end
local bestPetIds = GetBestPetIds()
local petsToDelete = {}
for petId, petData in pairs(petsData) do
local petName = petData.Name
local rarity = GetPetRarity(petName)
local isEquipped = equippedSet[petId]
local isBestPet = bestPetIds[petId]
local shouldDelete = ShouldDeletePet(rarity)
if not isEquipped and not isBestPet and shouldDelete then
table.insert(petsToDelete, petId)
end
end
for i, petId in ipairs(petsToDelete) do
if i > 5 then break end
local freshData = GetReplicaData()
if freshData and freshData.PetsService and freshData.PetsService.EquippedPets then
local stillSafe = true
for _, eqId in pairs(freshData.PetsService.EquippedPets) do
if eqId == petId then stillSafe = false break end
end
if not stillSafe then continue end
end
pcall(function()
if KnitPetsService and KnitPetsService.Delete then
KnitPetsService:Delete({petId})
end
end)
task.wait(0.5)
end
end
local function ToggleFly(on)
local root = GetRoot()
if not root then return end
if on then
State.Flying = true
if State.FlyBV then State.FlyBV:Destroy() end
if State.FlyBG then State.FlyBG:Destroy() end
State.FlyBV = Instance.new("BodyVelocity")
State.FlyBV.MaxForce = Vector3.new(1e6, 1e6, 1e6)
State.FlyBV.Velocity = Vector3.zero
State.FlyBV.Parent = root
State.FlyBG = Instance.new("BodyGyro")
State.FlyBG.MaxTorque = Vector3.new(1e6, 1e6, 1e6)
State.FlyBG.P = 9e4
State.FlyBG.Parent = root
else
State.Flying = false
if State.FlyBV then State.FlyBV:Destroy() State.FlyBV = nil end
if State.FlyBG then State.FlyBG:Destroy() State.FlyBG = nil end
end
end
local function UpdateFly()
if not State.Flying or not State.FlyBV then return end
local root = GetRoot()
local cam = Workspace.CurrentCamera
if not root or not cam then return end
local dir = Vector3.zero
if UserInputService:IsKeyDown(Enum.KeyCode.W) then dir = dir + cam.CFrame.LookVector end
if UserInputService:IsKeyDown(Enum.KeyCode.S) then dir = dir - cam.CFrame.LookVector end
if UserInputService:IsKeyDown(Enum.KeyCode.A) then dir = dir - cam.CFrame.RightVector end
if UserInputService:IsKeyDown(Enum.KeyCode.D) then dir = dir + cam.CFrame.RightVector end
if UserInputService:IsKeyDown(Enum.KeyCode.Space) then dir = dir + Vector3.yAxis end
if UserInputService:IsKeyDown(Enum.KeyCode.LeftControl) then dir = dir - Vector3.yAxis end
State.FlyBV.Velocity = dir.Magnitude > 0 and dir.Unit * Config.FlySpeed or Vector3.zero
State.FlyBG.CFrame = cam.CFrame
end
local function CreateUI()
if State.Gui then State.Gui:Destroy() end
local screenSize = Workspace.CurrentCamera.ViewportSize
local width = IsMobile and math.min(310, screenSize.X - 24) or 320
local height = IsMobile and math.min(540, screenSize.Y - 100) or 520
local btnH = IsMobile and 46 or 44
local pad = 12
local fontSize = IsMobile and 14 or 13
local openDropdowns = {}
local C = {
bg = Color3.fromRGB(250, 250, 252),
card = Color3.fromRGB(255, 255, 255),
cardHover = Color3.fromRGB(245, 247, 250),
accent = Color3.fromRGB(0, 122, 255),
accentLight = Color3.fromRGB(230, 242, 255),
text = Color3.fromRGB(28, 28, 30),
textSec = Color3.fromRGB(110, 110, 115),
border = Color3.fromRGB(225, 225, 230),
toggleOff = Color3.fromRGB(200, 200, 205),
success = Color3.fromRGB(52, 199, 89),
section = Color3.fromRGB(142, 142, 147)
}
local gui = Instance.new("ScreenGui")
gui.Name = "BrainrotHub"
gui.ResetOnSpawn = false
gui.ZIndexBehavior = Enum.ZIndexBehavior.Sibling
local main = Instance.new("Frame")
main.Name = "Main"
main.Size = UDim2.new(0, width, 0, height)
main.Position = UDim2.new(0.5, -width/2, 0.5, -height/2)
main.BackgroundColor3 = C.bg
main.BorderSizePixel = 0
main.ClipsDescendants = true
main.Parent = gui
Instance.new("UICorner", main).CornerRadius = UDim.new(0, 16)
local shadow = Instance.new("ImageLabel")
shadow.Size = UDim2.new(1, 30, 1, 30)
shadow.Position = UDim2.new(0, -15, 0, -15)
shadow.BackgroundTransparency = 1
shadow.Image = "rbxassetid://5554236805"
shadow.ImageColor3 = Color3.new(0, 0, 0)
shadow.ImageTransparency = 0.7
shadow.ScaleType = Enum.ScaleType.Slice
shadow.SliceCenter = Rect.new(23, 23, 277, 277)
shadow.ZIndex = 0
shadow.Parent = main
local header = Instance.new("Frame")
header.Size = UDim2.new(1, 0, 0, 52)
header.BackgroundTransparency = 1
header.Parent = main
local titleLabel = Instance.new("TextLabel")
titleLabel.Size = UDim2.new(1, -60, 0, 20)
titleLabel.Position = UDim2.new(0, pad, 0, 12)
titleLabel.BackgroundTransparency = 1
titleLabel.Text = "Brainrot Evolution"
titleLabel.TextColor3 = C.text
titleLabel.Font = Enum.Font.GothamBold
titleLabel.TextSize = 18
titleLabel.TextXAlignment = Enum.TextXAlignment.Left
titleLabel.Parent = header
local subtitle = Instance.new("TextLabel")
subtitle.Size = UDim2.new(1, -60, 0, 14)
subtitle.Position = UDim2.new(0, pad, 0, 33)
subtitle.BackgroundTransparency = 1
subtitle.Text = "Open Source v" .. VERSION
subtitle.TextColor3 = C.textSec
subtitle.Font = Enum.Font.Gotham
subtitle.TextSize = 11
subtitle.TextXAlignment = Enum.TextXAlignment.Left
subtitle.Parent = header
local closeBtn = Instance.new("TextButton")
closeBtn.Size = UDim2.new(0, 32, 0, 32)
closeBtn.Position = UDim2.new(1, -pad - 32, 0, 10)
closeBtn.BackgroundColor3 = C.cardHover
closeBtn.Text = "—"
closeBtn.TextColor3 = C.textSec
closeBtn.Font = Enum.Font.GothamBold
closeBtn.TextSize = 16
closeBtn.Parent = header
Instance.new("UICorner", closeBtn).CornerRadius = UDim.new(0, 10)
local minimized = false
local fullSize = main.Size
closeBtn.MouseButton1Click:Connect(function()
minimized = not minimized
local targetSize = minimized and UDim2.new(0, width, 0, 52) or fullSize
TweenService:Create(main, TweenInfo.new(0.25, Enum.EasingStyle.Quint), {Size = targetSize}):Play()
closeBtn.Text = minimized and "+" or "—"
end)
local divider = Instance.new("Frame")
divider.Size = UDim2.new(1, -pad*2, 0, 1)
divider.Position = UDim2.new(0, pad, 0, 51)
divider.BackgroundColor3 = C.border
divider.BorderSizePixel = 0
divider.Parent = main
local scroll = Instance.new("ScrollingFrame")
scroll.Size = UDim2.new(1, 0, 1, -56)
scroll.Position = UDim2.new(0, 0, 0, 54)
scroll.BackgroundTransparency = 1
scroll.ScrollBarThickness = 2
scroll.ScrollBarImageColor3 = C.border
scroll.CanvasSize = UDim2.new(0, 0, 0, 0)
scroll.AutomaticCanvasSize = Enum.AutomaticSize.Y
scroll.Parent = main
local function closeAllDropdowns()
for _, dropdown in pairs(openDropdowns) do
if dropdown and dropdown.Visible then
dropdown.Visible = false
end
end
end
scroll:GetPropertyChangedSignal("CanvasPosition"):Connect(closeAllDropdowns)
local scrollPad = Instance.new("UIPadding")
scrollPad.PaddingLeft = UDim.new(0, pad)
scrollPad.PaddingRight = UDim.new(0, pad)
scrollPad.PaddingTop = UDim.new(0, 6)
scrollPad.PaddingBottom = UDim.new(0, pad)
scrollPad.Parent = scroll
local layout = Instance.new("UIListLayout")
layout.Padding = UDim.new(0, 6)
layout.SortOrder = Enum.SortOrder.LayoutOrder
layout.Parent = scroll
local order = 0
local function nextOrder() order = order + 1 return order end
local function Section(name)
local sec = Instance.new("TextLabel")
sec.Size = UDim2.new(1, 0, 0, 24)
sec.BackgroundTransparency = 1
sec.Text = string.upper(name)
sec.TextColor3 = C.section
sec.Font = Enum.Font.GothamBold
sec.TextSize = 10
sec.TextXAlignment = Enum.TextXAlignment.Left
sec.LayoutOrder = nextOrder()
sec.Parent = scroll
end
local function Toggle(name, configKey, callback)
local card = Instance.new("Frame")
card.Size = UDim2.new(1, 0, 0, btnH)
card.BackgroundColor3 = C.card
card.LayoutOrder = nextOrder()
card.Parent = scroll
Instance.new("UICorner", card).CornerRadius = UDim.new(0, 12)
Instance.new("UIStroke", card).Color = C.border
local lbl = Instance.new("TextLabel")
lbl.Size = UDim2.new(1, -70, 1, 0)
lbl.Position = UDim2.new(0, 14, 0, 0)
lbl.BackgroundTransparency = 1
lbl.Text = name
lbl.TextColor3 = C.text
lbl.Font = Enum.Font.GothamMedium
lbl.TextSize = fontSize
lbl.TextXAlignment = Enum.TextXAlignment.Left
lbl.Parent = card
local toggleBg = Instance.new("Frame")
toggleBg.Size = UDim2.new(0, 46, 0, 28)
toggleBg.Position = UDim2.new(1, -58, 0.5, -14)
toggleBg.BackgroundColor3 = Config[configKey] and C.success or C.toggleOff
toggleBg.Parent = card
Instance.new("UICorner", toggleBg).CornerRadius = UDim.new(1, 0)
local toggleCircle = Instance.new("Frame")
toggleCircle.Size = UDim2.new(0, 24, 0, 24)
toggleCircle.Position = Config[configKey] and UDim2.new(1, -26, 0.5, -12) or UDim2.new(0, 2, 0.5, -12)
toggleCircle.BackgroundColor3 = Color3.new(1, 1, 1)
toggleCircle.Parent = toggleBg
Instance.new("UICorner", toggleCircle).CornerRadius = UDim.new(1, 0)
local btn = Instance.new("TextButton")
btn.Size = UDim2.new(1, 0, 1, 0)
btn.BackgroundTransparency = 1
btn.Text = ""
btn.Parent = card
btn.MouseButton1Click:Connect(function()
Config[configKey] = not Config[configKey]
local on = Config[configKey]
TweenService:Create(toggleBg, TweenInfo.new(0.2, Enum.EasingStyle.Quint), {BackgroundColor3 = on and C.success or C.toggleOff}):Play()
TweenService:Create(toggleCircle, TweenInfo.new(0.2, Enum.EasingStyle.Quint), {Position = on and UDim2.new(1, -26, 0.5, -12) or UDim2.new(0, 2, 0.5, -12)}):Play()
if callback then callback(on) end
end)
end
local function Button(name, callback)
local btn = Instance.new("TextButton")
btn.Size = UDim2.new(1, 0, 0, btnH)
btn.BackgroundColor3 = C.card
btn.Text = name
btn.TextColor3 = C.accent
btn.Font = Enum.Font.GothamMedium
btn.TextSize = fontSize
btn.LayoutOrder = nextOrder()
btn.Parent = scroll
Instance.new("UICorner", btn).CornerRadius = UDim.new(0, 12)
Instance.new("UIStroke", btn).Color = C.border
btn.MouseEnter:Connect(function()
TweenService:Create(btn, TweenInfo.new(0.15), {BackgroundColor3 = C.accentLight}):Play()
end)
btn.MouseLeave:Connect(function()
TweenService:Create(btn, TweenInfo.new(0.15), {BackgroundColor3 = C.card}):Play()
end)
btn.MouseButton1Click:Connect(callback)
end
local function Slider(name, configKey, min, max)
local card = Instance.new("Frame")
card.Size = UDim2.new(1, 0, 0, btnH + 12)
card.BackgroundColor3 = C.card
card.LayoutOrder = nextOrder()
card.Parent = scroll
Instance.new("UICorner", card).CornerRadius = UDim.new(0, 12)
Instance.new("UIStroke", card).Color = C.border
local lbl = Instance.new("TextLabel")
lbl.Size = UDim2.new(0.6, 0, 0, 18)
lbl.Position = UDim2.new(0, 14, 0, 8)
lbl.BackgroundTransparency = 1
lbl.Text = name
lbl.TextColor3 = C.text
lbl.Font = Enum.Font.GothamMedium
lbl.TextSize = fontSize - 1
lbl.TextXAlignment = Enum.TextXAlignment.Left
lbl.Parent = card
local valLbl = Instance.new("TextLabel")
valLbl.Size = UDim2.new(0.35, 0, 0, 18)
valLbl.Position = UDim2.new(0.65, -14, 0, 8)
valLbl.BackgroundTransparency = 1
valLbl.Text = tostring(Config[configKey])
valLbl.TextColor3 = C.accent
valLbl.Font = Enum.Font.GothamBold
valLbl.TextSize = fontSize
valLbl.TextXAlignment = Enum.TextXAlignment.Right
valLbl.Parent = card
local track = Instance.new("Frame")
track.Size = UDim2.new(1, -28, 0, 4)
track.Position = UDim2.new(0, 14, 0, 36)
track.BackgroundColor3 = C.border
track.Parent = card
Instance.new("UICorner", track).CornerRadius = UDim.new(1, 0)
local fill = Instance.new("Frame")
fill.Size = UDim2.new((Config[configKey] - min) / (max - min), 0, 1, 0)
fill.BackgroundColor3 = C.accent
fill.Parent = track
Instance.new("UICorner", fill).CornerRadius = UDim.new(1, 0)
local knob = Instance.new("Frame")
knob.Size = UDim2.new(0, 20, 0, 20)
knob.Position = UDim2.new((Config[configKey] - min) / (max - min), -10, 0.5, -10)
knob.BackgroundColor3 = C.accent
knob.ZIndex = 2
knob.Parent = track
Instance.new("UICorner", knob).CornerRadius = UDim.new(1, 0)
local knobInner = Instance.new("Frame")
knobInner.Size = UDim2.new(0, 8, 0, 8)
knobInner.Position = UDim2.new(0.5, -4, 0.5, -4)
knobInner.BackgroundColor3 = Color3.new(1, 1, 1)
knobInner.ZIndex = 3
knobInner.Parent = knob
Instance.new("UICorner", knobInner).CornerRadius = UDim.new(1, 0)
local dragging = false
local function update(input)
local rel = math.clamp((input.Position.X - track.AbsolutePosition.X) / track.AbsoluteSize.X, 0, 1)
local val = min + rel * (max - min)
Config[configKey] = max <= 10 and math.floor(val * 10) / 10 or math.floor(val)
fill.Size = UDim2.new(rel, 0, 1, 0)
knob.Position = UDim2.new(rel, -10, 0.5, -10)
valLbl.Text = tostring(Config[configKey])
end
track.InputBegan:Connect(function(i)
if i.UserInputType == Enum.UserInputType.MouseButton1 or i.UserInputType == Enum.UserInputType.Touch then
dragging = true
update(i)
end
end)
State.Connections["slider_" .. configKey] = UserInputService.InputChanged:Connect(function(i)
if dragging and (i.UserInputType == Enum.UserInputType.MouseMovement or i.UserInputType == Enum.UserInputType.Touch) then
update(i)
end
end)
State.Connections["slider_end_" .. configKey] = UserInputService.InputEnded:Connect(function(i)
if i.UserInputType == Enum.UserInputType.MouseButton1 or i.UserInputType == Enum.UserInputType.Touch then
dragging = false
end
end)
end
local function Dropdown(name, options, configKey)
local card = Instance.new("Frame")
card.Size = UDim2.new(1, 0, 0, btnH)
card.BackgroundColor3 = C.card
card.ClipsDescendants = false
card.LayoutOrder = nextOrder()
card.Parent = scroll
Instance.new("UICorner", card).CornerRadius = UDim.new(0, 12)
Instance.new("UIStroke", card).Color = C.border
local lbl = Instance.new("TextLabel")
lbl.Size = UDim2.new(0.4, 0, 1, 0)
lbl.Position = UDim2.new(0, 14, 0, 0)
lbl.BackgroundTransparency = 1
lbl.Text = name
lbl.TextColor3 = C.text
lbl.Font = Enum.Font.GothamMedium
lbl.TextSize = fontSize - 1
lbl.TextXAlignment = Enum.TextXAlignment.Left
lbl.Parent = card
local dropBtn = Instance.new("TextButton")
dropBtn.Size = UDim2.new(0.55, -14, 0, 32)
dropBtn.Position = UDim2.new(0.45, 0, 0.5, -16)
dropBtn.BackgroundColor3 = C.cardHover
dropBtn.Text = tostring(Config[configKey]) .. " ▼"
dropBtn.TextColor3 = C.text
dropBtn.Font = Enum.Font.Gotham
dropBtn.TextSize = fontSize - 1
dropBtn.TextTruncate = Enum.TextTruncate.AtEnd
dropBtn.Parent = card
Instance.new("UICorner", dropBtn).CornerRadius = UDim.new(0, 8)
local dropList = Instance.new("Frame")
dropList.Name = "DropList"
dropList.Size = UDim2.new(0, 0, 0, 0)
dropList.BackgroundColor3 = C.card
dropList.Visible = false
dropList.ZIndex = 999
dropList.ClipsDescendants = true
dropList.Parent = main
Instance.new("UICorner", dropList).CornerRadius = UDim.new(0, 8)
local dropStroke = Instance.new("UIStroke", dropList)
dropStroke.Color = C.accent
table.insert(openDropdowns, dropList)
local dropScroll = Instance.new("ScrollingFrame")
dropScroll.Size = UDim2.new(1, 0, 1, 0)
dropScroll.BackgroundTransparency = 1
dropScroll.ScrollBarThickness = 2
dropScroll.ScrollBarImageColor3 = C.border
dropScroll.CanvasSize = UDim2.new(0, 0, 0, #options * 36)
dropScroll.ZIndex = 1000
dropScroll.Parent = dropList
Instance.new("UIListLayout", dropScroll)
for _, opt in ipairs(options) do
local optBtn = Instance.new("TextButton")
optBtn.Size = UDim2.new(1, 0, 0, 36)
optBtn.BackgroundColor3 = C.card
optBtn.Text = tostring(opt)
optBtn.TextColor3 = C.text
optBtn.Font = Enum.Font.Gotham
optBtn.TextSize = fontSize - 1
optBtn.ZIndex = 1001
optBtn.Parent = dropScroll
optBtn.MouseEnter:Connect(function() optBtn.BackgroundColor3 = C.accentLight end)
optBtn.MouseLeave:Connect(function() optBtn.BackgroundColor3 = C.card end)
optBtn.MouseButton1Click:Connect(function()
Config[configKey] = opt
dropBtn.Text = tostring(opt) .. " ▼"
dropList.Visible = false
end)
end
dropBtn.MouseButton1Click:Connect(function()
local wasVisible = dropList.Visible
closeAllDropdowns()
if not wasVisible then
local btnPos = dropBtn.AbsolutePosition
local btnSize = dropBtn.AbsoluteSize
local mainPos = main.AbsolutePosition
local targetH = math.min(#options * 36, 180)
dropList.Position = UDim2.new(0, btnPos.X - mainPos.X, 0, btnPos.Y - mainPos.Y + btnSize.Y + 4)
dropList.Size = UDim2.new(0, btnSize.X, 0, targetH)
dropList.Visible = true
end
end)
end
Section("Combat")
Toggle("Kill Aura", "KillAura")
Toggle("Multi-Target", "MultiTarget")
Slider("Range", "KillAuraRange", 10, 100)
Section("Pets")
Toggle("Auto Equip", "AutoEquipBest")
Toggle("Auto Delete", "AutoDeletePets")
Dropdown("Keep Above", RarityList, "DeleteBelowRarity")
Section("Eggs")
Dropdown("Type", EggList, "SelectedEgg")
Toggle("Auto Hatch", "AutoBuyHatch")
Slider("Delay", "HatchDelay", 1, 5)
Section("Rewards")
Toggle("Auto Rebirth", "AutoRebirth")
Toggle("Auto Collect", "AutoCollect")
Toggle("Auto Spin", "AutoSpin")
Toggle("Auto Quest", "AutoQuest")
Section("Movement")
Toggle("Speed", "SpeedHack")
Slider("Speed", "WalkSpeed", 16, 200)
Toggle("No Clip", "NoClip")
Toggle("Fly", "Fly", ToggleFly)
Section("Actions")
Button("Collect All", DoCollect)
Button("Rebirth Now", DoRebirth)
Button("Redeem Code", RedeemCode)
Button("Exit", function()
State.Unloaded = true
for _, c in pairs(State.Connections) do pcall(function() c:Disconnect() end) end
ToggleFly(false)
if State.Gui then State.Gui:Destroy() end
if State.MobileBtn then State.MobileBtn:Destroy() end
end)
local dragStart, startPos
header.InputBegan:Connect(function(i)
if i.UserInputType == Enum.UserInputType.MouseButton1 or i.UserInputType == Enum.UserInputType.Touch then
dragStart = i.Position
startPos = main.Position
end
end)
header.InputEnded:Connect(function(i)
if i.UserInputType == Enum.UserInputType.MouseButton1 or i.UserInputType == Enum.UserInputType.Touch then
dragStart = nil
end
end)
State.Connections.Drag = UserInputService.InputChanged:Connect(function(i)
if dragStart and (i.UserInputType == Enum.UserInputType.MouseMovement or i.UserInputType == Enum.UserInputType.Touch) then
local delta = i.Position - dragStart
main.Position = UDim2.new(startPos.X.Scale, startPos.X.Offset + delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y)
end
end)
pcall(function() gui.Parent = game:GetService("CoreGui") end)
if not gui.Parent then gui.Parent = LocalPlayer:WaitForChild("PlayerGui") end
State.Gui = gui
local mobileBtn = Instance.new("Frame")
mobileBtn.Size = UDim2.new(0, 48, 0, 48)
mobileBtn.Position = UDim2.new(1, -62, 0, 14)
mobileBtn.BackgroundColor3 = C.accent
mobileBtn.Visible = IsMobile
mobileBtn.Parent = gui
Instance.new("UICorner", mobileBtn).CornerRadius = UDim.new(1, 0)
local mobileIcon = Instance.new("ImageLabel")
mobileIcon.Size = UDim2.new(0, 24, 0, 24)
mobileIcon.Position = UDim2.new(0.5, -12, 0.5, -12)
mobileIcon.BackgroundTransparency = 1
mobileIcon.Image = "rbxassetid://7733960981"
mobileIcon.ImageColor3 = Color3.new(1, 1, 1)
mobileIcon.Parent = mobileBtn
local mobileTap = Instance.new("TextButton")
mobileTap.Size = UDim2.new(1, 0, 1, 0)
mobileTap.BackgroundTransparency = 1
mobileTap.Text = ""
mobileTap.Parent = mobileBtn
if IsMobile then main.Visible = false end
mobileTap.MouseButton1Click:Connect(function()
main.Visible = not main.Visible
mobileIcon.Image = main.Visible and "rbxassetid://7743878857" or "rbxassetid://7733960981"
end)
State.MobileBtn = mobileBtn
end
local function MainLoop()
if State.Unloaded then return end
local now = tick()
if Config.KillAura and now - State.LastAttack >= Config.KillAuraSpeed then
State.LastAttack = now
task.spawn(DoKillAura)
end
if Config.AutoBuyHatch and now - State.LastHatch >= Config.HatchDelay then
State.LastHatch = now
task.spawn(DoHatch)
end
if Config.AutoRebirth and now - State.LastRebirth >= 1 then
State.LastRebirth = now
task.spawn(DoRebirth)
end
if Config.AutoCollect and now - State.LastCollect >= 8 then
State.LastCollect = now
task.spawn(DoCollect)
end
if Config.AutoSpin and now - State.LastSpin >= 2 then
State.LastSpin = now
task.spawn(DoSpin)
end
if Config.AutoQuest and now - State.LastQuest >= 5 then
State.LastQuest = now
task.spawn(DoQuest)
end
if Config.AutoEquipBest and now - State.LastEquip >= 3 then
State.LastEquip = now
task.spawn(DoEquipBest)
end
if Config.AutoDeletePets and now - State.LastDelete >= math.max(Config.DeleteDelay, 5) then
State.LastDelete = now
task.spawn(DoDeletePets)
end
local h = GetHum()
if h then
if Config.SpeedHack then
h.WalkSpeed = Config.WalkSpeed
elseif h.WalkSpeed ~= 16 and h.WalkSpeed == Config.WalkSpeed then
h.WalkSpeed = 16
end
end
if Config.NoClip then
local c = GetChar()
if c then
for _, p in ipairs(c:GetDescendants()) do
if p:IsA("BasePart") then p.CanCollide = false end
end
end
end
UpdateFly()
end
State.Connections.Main = RunService.Heartbeat:Connect(MainLoop)
State.Connections.Char = LocalPlayer.CharacterAdded:Connect(function()
task.wait(1)
if Config.AutoEquipBest then DoEquipBest() end
if Config.Fly then ToggleFly(true) end
end)
State.Connections.KeyToggle = UserInputService.InputBegan:Connect(function(input, gpe)
if gpe then return end
if input.KeyCode == Enum.KeyCode.Insert or input.KeyCode == Enum.KeyCode.RightShift then
if State.Gui then
local main = State.Gui:FindFirstChild("Main")
if main then main.Visible = not main.Visible end
end
end
end)
CreateUI()
task.spawn(function()
task.wait(0.5)
if Config.AutoEquipBest then DoEquipBest() end
end)



This script was bugged it is now visible.
@leet anyway to increase the”AUTO ATTACK” hitting rate?
Awesome!!🤩
not working