--[[ .____ ________ ___. _____ __ | | __ _______ \_____ \\_ |___/ ____\_ __ ______ ____ _____ _/ |_ ___________ | | | | \__ \ / | \| __ \ __\ | \/ ___// ___\\__ \\ __\/ _ \_ __ \ | |___| | // __ \_/ | \ \_\ \ | | | /\___ \\ \___ / __ \| | ( <_> ) | \/ |_______ \____/(____ /\_______ /___ /__| |____//____ >\___ >____ /__| \____/|__| \/ \/ \/ \/ \/ \/ \/ \_Welcome to LuaObfuscator.com (Alpha 0.10.9) ~ Much Love, Ferib ]]-- local Players = game:GetService("Players"); local RunService = game:GetService("RunService"); local Workspace = game:GetService("Workspace"); local UIS = game:GetService("UserInputService"); local player = Players.LocalPlayer; local camera = Workspace.CurrentCamera; local herbs = {["Sorrowful Poison Drip"]=true,["Soothing Soul Root"]=true,Ginseng=true,["Extreme Yang Grass"]=true,["Heart Lotus"]=true}; local herbsScreenGui = Instance.new("ScreenGui"); herbsScreenGui.Name = "HerbsESP"; herbsScreenGui.Parent = player:WaitForChild("PlayerGui"); local herbsControlGui = Instance.new("ScreenGui"); herbsControlGui.Name = "HerbsESP_Control"; herbsControlGui.Enabled = true; local herbsControlFrame = Instance.new("Frame"); herbsControlFrame.Name = "ControlFrame"; herbsControlFrame.Size = UDim2.new(0, 250, 0, 300); herbsControlFrame.Position = UDim2.new(0, 10, 0, 10); herbsControlFrame.BackgroundColor3 = Color3.fromRGB(20, 20, 20); herbsControlFrame.BorderSizePixel = 2; herbsControlFrame.BorderColor3 = Color3.fromRGB(50, 50, 50); local herbsTitle = Instance.new("TextLabel"); herbsTitle.Name = "Title"; herbsTitle.Size = UDim2.new(1, 0, 0, 30); herbsTitle.Position = UDim2.new(0, 0, 0, 0); herbsTitle.BackgroundColor3 = Color3.fromRGB(30, 30, 30); herbsTitle.Text = "HERBS ESP CONTROL"; herbsTitle.TextColor3 = Color3.fromRGB(255, 255, 255); herbsTitle.Font = Enum.Font.GothamBold; herbsTitle.TextSize = 16; herbsTitle.Parent = herbsControlFrame; local herbsCreditLabel = Instance.new("TextLabel"); herbsCreditLabel.Name = "CreditLabel"; herbsCreditLabel.Size = UDim2.new(1, 0, 0, 20); herbsCreditLabel.Position = UDim2.new(0, 0, 0, 30); herbsCreditLabel.BackgroundTransparency = 1; herbsCreditLabel.Text = "by: secretimmortal"; herbsCreditLabel.TextColor3 = Color3.fromRGB(200, 200, 200); herbsCreditLabel.Font = Enum.Font.Gotham; herbsCreditLabel.TextSize = 12; herbsCreditLabel.Parent = herbsControlFrame; local herbsCloseButton = Instance.new("TextButton"); herbsCloseButton.Name = "CloseButton"; herbsCloseButton.Size = UDim2.new(0, 30, 0, 30); herbsCloseButton.Position = UDim2.new(1, -30, 0, 0); herbsCloseButton.BackgroundColor3 = Color3.fromRGB(255, 50, 50); herbsCloseButton.Text = "X"; herbsCloseButton.TextColor3 = Color3.fromRGB(255, 255, 255); herbsCloseButton.Font = Enum.Font.GothamBold; herbsCloseButton.TextSize = 14; herbsCloseButton.Parent = herbsControlFrame; local herbsToggleAllButton = Instance.new("TextButton"); herbsToggleAllButton.Name = "ToggleAll"; herbsToggleAllButton.Size = UDim2.new(0.9, 0, 0, 30); herbsToggleAllButton.Position = UDim2.new(0.05, 0, 0, 55); herbsToggleAllButton.BackgroundColor3 = Color3.fromRGB(60, 60, 60); herbsToggleAllButton.Text = "TOGGLE ALL ON/OFF"; herbsToggleAllButton.TextColor3 = Color3.fromRGB(255, 255, 255); herbsToggleAllButton.Font = Enum.Font.GothamBold; herbsToggleAllButton.TextSize = 14; herbsToggleAllButton.Parent = herbsControlFrame; local herbsContainer = Instance.new("ScrollingFrame"); herbsContainer.Name = "HerbsContainer"; herbsContainer.Size = UDim2.new(0.9, 0, 0, 160); herbsContainer.Position = UDim2.new(0.05, 0, 0, 95); herbsContainer.BackgroundColor3 = Color3.fromRGB(25, 25, 25); herbsContainer.BorderSizePixel = 0; herbsContainer.ScrollBarThickness = 6; herbsContainer.ScrollBarImageColor3 = Color3.fromRGB(100, 100, 100); herbsContainer.CanvasSize = UDim2.new(0, 0, 0, 0); herbsContainer.Parent = herbsControlFrame; local herbsStatusText = Instance.new("TextLabel"); herbsStatusText.Name = "Status"; herbsStatusText.Size = UDim2.new(0.9, 0, 0, 25); herbsStatusText.Position = UDim2.new(0.05, 0, 1, -30); herbsStatusText.BackgroundTransparency = 1; herbsStatusText.Text = "Press F1 to hide/show"; herbsStatusText.TextColor3 = Color3.fromRGB(200, 200, 200); herbsStatusText.Font = Enum.Font.Gotham; herbsStatusText.TextSize = 12; herbsStatusText.Parent = herbsControlFrame; herbsControlFrame.Parent = herbsControlGui; herbsControlGui.Parent = player:WaitForChild("PlayerGui"); local itemColors = {["Copper Body Formula"]=Color3.fromRGB(255, 100, 0),BeastSoul=Color3.fromRGB(0, 200, 255),["Book of Life and Death"]=Color3.fromRGB(0, 200, 255),["Earth Flame Manual"]=Color3.fromRGB(0, 200, 255),["Journey to the West"]=Color3.fromRGB(0, 200, 255),["Star Reaving Scripture"]=Color3.fromRGB(0, 200, 255),LotusSutra=Color3.fromRGB(0, 200, 255),["Rising Dragon"]=Color3.fromRGB(0, 200, 255),["Steel Body Formula"]=Color3.fromRGB(0, 200, 255),["Verdant Wind Manual"]=Color3.fromRGB(0, 200, 255),["Verdant Wind Scripture"]=Color3.fromRGB(0, 200, 255),["Soul Shedding"]=Color3.fromRGB(0, 200, 255),["Qi Condensation Sutra"]=Color3.fromRGB(0, 200, 255),["Maniac's Cultivation Tips"]=Color3.fromRGB(0, 200, 255),["Nine Yang Scripture"]=Color3.fromRGB(255, 100, 0),["Six Yin Scripture"]=Color3.fromRGB(150, 50, 200),["Mother Earth Technique"]=Color3.fromRGB(0, 180, 80)}; local exactItemNames = {["Copper Body Formula"]=true,BeastSoul=true,["Book of Life and Death"]=true,["Earth Flame Manual"]=true,["Journey to the West"]=true,["Star Reaving Scripture"]=true,LotusSutra=true,["Rising Dragon"]=true,["Steel Body Formula"]=true,["Verdant Wind Manual"]=true,["Verdant Wind Scripture"]=true,["Soul Shedding"]=true,["Qi Condensation Sutra"]=true,["Maniac's Cultivation Tips"]=true,["Nine Yang Scripture"]=true,["Six Yin Scripture"]=true,["Mother Earth Technique"]=true}; local manualsScreenGui = Instance.new("ScreenGui"); manualsScreenGui.Name = "CultivationItemsESP"; manualsScreenGui.Parent = player:WaitForChild("PlayerGui"); local manualsControlGui = Instance.new("ScreenGui"); manualsControlGui.Name = "ManualsESP_Control"; manualsControlGui.Enabled = true; local manualsControlFrame = Instance.new("Frame"); manualsControlFrame.Name = "ControlFrame"; manualsControlFrame.Size = UDim2.new(0, 250, 0, 340); manualsControlFrame.Position = UDim2.new(0, 270, 0, 10); manualsControlFrame.BackgroundColor3 = Color3.fromRGB(20, 20, 20); manualsControlFrame.BorderSizePixel = 2; manualsControlFrame.BorderColor3 = Color3.fromRGB(50, 50, 50); local manualsTitle = Instance.new("TextLabel"); manualsTitle.Name = "Title"; manualsTitle.Size = UDim2.new(1, 0, 0, 30); manualsTitle.Position = UDim2.new(0, 0, 0, 0); manualsTitle.BackgroundColor3 = Color3.fromRGB(30, 30, 30); manualsTitle.Text = "MANUALS ESP CONTROL"; manualsTitle.TextColor3 = Color3.fromRGB(255, 255, 255); manualsTitle.Font = Enum.Font.GothamBold; manualsTitle.TextSize = 16; manualsTitle.Parent = manualsControlFrame; local manualsCreditLabel = Instance.new("TextLabel"); manualsCreditLabel.Name = "CreditLabel"; manualsCreditLabel.Size = UDim2.new(1, 0, 0, 20); manualsCreditLabel.Position = UDim2.new(0, 0, 0, 30); manualsCreditLabel.BackgroundTransparency = 1; manualsCreditLabel.Text = "by: secretimmortal"; manualsCreditLabel.TextColor3 = Color3.fromRGB(200, 200, 200); manualsCreditLabel.Font = Enum.Font.Gotham; manualsCreditLabel.TextSize = 12; manualsCreditLabel.Parent = manualsControlFrame; local manualsCloseButton = Instance.new("TextButton"); manualsCloseButton.Name = "CloseButton"; manualsCloseButton.Size = UDim2.new(0, 30, 0, 30); manualsCloseButton.Position = UDim2.new(1, -30, 0, 0); manualsCloseButton.BackgroundColor3 = Color3.fromRGB(255, 50, 50); manualsCloseButton.Text = "X"; manualsCloseButton.TextColor3 = Color3.fromRGB(255, 255, 255); manualsCloseButton.Font = Enum.Font.GothamBold; manualsCloseButton.TextSize = 14; manualsCloseButton.Parent = manualsControlFrame; local manualsToggleAllButton = Instance.new("TextButton"); manualsToggleAllButton.Name = "ToggleAll"; manualsToggleAllButton.Size = UDim2.new(0.9, 0, 0, 30); manualsToggleAllButton.Position = UDim2.new(0.05, 0, 0, 55); manualsToggleAllButton.BackgroundColor3 = Color3.fromRGB(60, 60, 60); manualsToggleAllButton.Text = "TOGGLE ALL ON/OFF"; manualsToggleAllButton.TextColor3 = Color3.fromRGB(255, 255, 255); manualsToggleAllButton.Font = Enum.Font.GothamBold; manualsToggleAllButton.TextSize = 14; manualsToggleAllButton.Parent = manualsControlFrame; local manualsContainer = Instance.new("ScrollingFrame"); manualsContainer.Name = "ManualsContainer"; manualsContainer.Size = UDim2.new(0.9, 0, 0, 200); manualsContainer.Position = UDim2.new(0.05, 0, 0, 95); manualsContainer.BackgroundColor3 = Color3.fromRGB(25, 25, 25); manualsContainer.BorderSizePixel = 0; manualsContainer.ScrollBarThickness = 6; manualsContainer.ScrollBarImageColor3 = Color3.fromRGB(100, 100, 100); manualsContainer.CanvasSize = UDim2.new(0, 0, 0, 0); manualsContainer.Parent = manualsControlFrame; local manualsStatusText = Instance.new("TextLabel"); manualsStatusText.Name = "Status"; manualsStatusText.Size = UDim2.new(0.9, 0, 0, 25); manualsStatusText.Position = UDim2.new(0.05, 0, 1, -30); manualsStatusText.BackgroundTransparency = 1; manualsStatusText.Text = "F4: Hide/Show | F5: Refresh"; manualsStatusText.TextColor3 = Color3.fromRGB(200, 200, 200); manualsStatusText.Font = Enum.Font.Gotham; manualsStatusText.TextSize = 12; manualsStatusText.Parent = manualsControlFrame; manualsControlFrame.Parent = manualsControlGui; manualsControlGui.Parent = player:WaitForChild("PlayerGui"); local herbButtons = {}; local herbEspLabels = {}; local manualsButtons = {}; local manualsEspLabels = {}; local function createHerbToggleButtons() herbsContainer:ClearAllChildren(); herbButtons = {}; local yOffset = 0; local buttonHeight = 30; for herbName, isEnabled in pairs(herbs) do local buttonFrame = Instance.new("Frame"); buttonFrame.Name = herbName .. "_Frame"; buttonFrame.Size = UDim2.new(1, 0, 0, buttonHeight); buttonFrame.Position = UDim2.new(0, 0, 0, yOffset); buttonFrame.BackgroundColor3 = Color3.fromRGB(35, 35, 35); buttonFrame.BorderSizePixel = 0; local herbLabel = Instance.new("TextLabel"); herbLabel.Name = herbName .. "_Label"; herbLabel.Size = UDim2.new(0.7, 0, 1, 0); herbLabel.Position = UDim2.new(0, 0, 0, 0); herbLabel.BackgroundTransparency = 1; herbLabel.Text = herbName; herbLabel.TextColor3 = Color3.fromRGB(255, 255, 255); herbLabel.Font = Enum.Font.Gotham; herbLabel.TextSize = 12; herbLabel.TextXAlignment = Enum.TextXAlignment.Left; herbLabel.Parent = buttonFrame; local toggleButton = Instance.new("TextButton"); toggleButton.Name = herbName .. "_Toggle"; toggleButton.Size = UDim2.new(0.25, 0, 0.7, 0); toggleButton.Position = UDim2.new(0.73, 0, 0.15, 0); toggleButton.BackgroundColor3 = (isEnabled and Color3.fromRGB(50, 200, 50)) or Color3.fromRGB(200, 50, 50); toggleButton.Text = (isEnabled and "ON") or "OFF"; toggleButton.TextColor3 = Color3.fromRGB(255, 255, 255); toggleButton.Font = Enum.Font.GothamBold; toggleButton.TextSize = 12; toggleButton.Parent = buttonFrame; herbButtons[herbName] = {Frame=buttonFrame,Button=toggleButton,Enabled=isEnabled}; toggleButton.MouseButton1Click:Connect(function() herbs[herbName] = not herbs[herbName]; herbButtons[herbName].Enabled = herbs[herbName]; herbButtons[herbName].Button.BackgroundColor3 = (herbs[herbName] and Color3.fromRGB(50, 200, 50)) or Color3.fromRGB(200, 50, 50); herbButtons[herbName].Button.Text = (herbs[herbName] and "ON") or "OFF"; for object, data in pairs(herbEspLabels) do if (data.Name == herbName) then data.Label.Visible = herbs[herbName]; end end print("[Herbs ESP] " .. herbName .. " " .. ((herbs[herbName] and "ENABLED") or "DISABLED")); end); buttonFrame.Parent = herbsContainer; yOffset = yOffset + buttonHeight + 2; end herbsContainer.CanvasSize = UDim2.new(0, 0, 0, yOffset); end local function createHerbLabel(herbName, distance) local label = Instance.new("TextLabel"); label.Name = "HERB_" .. herbName; label.BackgroundTransparency = 0.8; label.BackgroundColor3 = Color3.fromRGB(0, 0, 0); label.TextColor3 = Color3.fromRGB(255, 0, 0); label.TextStrokeTransparency = 0.3; label.TextStrokeColor3 = Color3.new(0, 0, 0); label.Font = Enum.Font.GothamBold; label.TextSize = 14; label.Text = herbName .. " (" .. tostring(math.floor(distance)) .. ")"; label.Visible = herbs[herbName]; label.ZIndex = 10; label.Size = UDim2.new(0, 180, 0, 30); label.Parent = herbsScreenGui; return label; end local function findHerbInDescendants(object) if not object then return nil; end for herbName, _ in pairs(herbs) do if object.Name:lower():find(herbName:lower(), 1, true) then return herbName; end end if object:IsA("Model") then for _, child in ipairs(object:GetChildren()) do for herbName, _ in pairs(herbs) do if child.Name:lower():find(herbName:lower(), 1, true) then return herbName; end end end end return nil; end local function getHerbWorldPosition(object) if object:IsA("BasePart") then return object.Position; elseif object:IsA("Model") then local primary = object.PrimaryPart or object:FindFirstChildWhichIsA("BasePart"); if primary then return primary.Position; end return object:GetPivot().Position; end return Vector3.new(0, 0, 0); end local function updateHerbsESP() for object, data in pairs(herbEspLabels) do if data.Label then data.Label:Destroy(); end end herbEspLabels = {}; local foundCount = 0; local function scanFolder(folder) for _, item in ipairs(folder:GetDescendants()) do if (item:IsA("Model") or item:IsA("BasePart")) then local herbName = findHerbInDescendants(item); if (herbName and herbs[herbName] and not herbEspLabels[item]) then local worldPos = getHerbWorldPosition(item); local distance = (camera.CFrame.Position - worldPos).Magnitude; local label = createHerbLabel(herbName, distance); herbEspLabels[item] = {Label=label,Name=herbName,Object=item,WorldPos=worldPos}; foundCount = foundCount + 1; end end end end scanFolder(Workspace); herbsStatusText.Text = "Found: " .. foundCount .. "/5 herbs"; print("[Herbs ESP] Found " .. foundCount .. "/5 herbs"); end local function createManualsToggleButtons() manualsContainer:ClearAllChildren(); manualsButtons = {}; local yOffset = 0; local buttonHeight = 30; for itemName, _ in pairs(exactItemNames) do local isEnabled = true; local buttonFrame = Instance.new("Frame"); buttonFrame.Name = itemName .. "_Frame"; buttonFrame.Size = UDim2.new(1, 0, 0, buttonHeight); buttonFrame.Position = UDim2.new(0, 0, 0, yOffset); buttonFrame.BackgroundColor3 = Color3.fromRGB(35, 35, 35); buttonFrame.BorderSizePixel = 0; local itemLabel = Instance.new("TextLabel"); itemLabel.Name = itemName .. "_Label"; itemLabel.Size = UDim2.new(0.7, 0, 1, 0); itemLabel.Position = UDim2.new(0, 0, 0, 0); itemLabel.BackgroundTransparency = 1; itemLabel.Text = itemName; itemLabel.TextColor3 = Color3.fromRGB(255, 255, 255); itemLabel.Font = Enum.Font.Gotham; itemLabel.TextSize = 12; itemLabel.TextXAlignment = Enum.TextXAlignment.Left; itemLabel.Parent = buttonFrame; local toggleButton = Instance.new("TextButton"); toggleButton.Name = itemName .. "_Toggle"; toggleButton.Size = UDim2.new(0.25, 0, 0.7, 0); toggleButton.Position = UDim2.new(0.73, 0, 0.15, 0); toggleButton.BackgroundColor3 = Color3.fromRGB(50, 200, 50); toggleButton.Text = "ON"; toggleButton.TextColor3 = Color3.fromRGB(255, 255, 255); toggleButton.Font = Enum.Font.GothamBold; toggleButton.TextSize = 12; toggleButton.Parent = buttonFrame; manualsButtons[itemName] = {Frame=buttonFrame,Button=toggleButton,Enabled=true}; toggleButton.MouseButton1Click:Connect(function() manualsButtons[itemName].Enabled = not manualsButtons[itemName].Enabled; toggleButton.BackgroundColor3 = (manualsButtons[itemName].Enabled and Color3.fromRGB(50, 200, 50)) or Color3.fromRGB(200, 50, 50); toggleButton.Text = (manualsButtons[itemName].Enabled and "ON") or "OFF"; for object, data in pairs(manualsEspLabels) do if (data.Name == itemName) then data.Label.Visible = manualsButtons[itemName].Enabled; end end print("[Manuals ESP] " .. itemName .. " " .. ((manualsButtons[itemName].Enabled and "ENABLED") or "DISABLED")); end); buttonFrame.Parent = manualsContainer; yOffset = yOffset + buttonHeight + 2; end manualsContainer.CanvasSize = UDim2.new(0, 0, 0, yOffset); end local function createManualESPLabel(itemName, customColor) local label = Instance.new("TextLabel"); label.Name = "ESP_" .. itemName; label.BackgroundTransparency = 1; label.TextColor3 = customColor or itemColors[itemName] or Color3.new(1, 1, 1); label.TextStrokeTransparency = 0.2; label.TextStrokeColor3 = Color3.new(0, 0, 0); label.TextTransparency = 0; label.Font = Enum.Font.GothamBold; label.TextSize = 18; label.Text = itemName; label.Visible = true; label.ZIndex = 10; label.Size = UDim2.new(0, 200, 0, 40); label.TextScaled = false; label.Parent = manualsScreenGui; return label; end local function isNPC(object) local name = object.Name:lower(); local avoidNames = {bearst=true,clan=true,npc=true,player=true,character=true,marvel=true}; for avoidName, _ in pairs(avoidNames) do if name:find(avoidName) then return true; end end if (object:IsA("Model") and object:FindFirstChildOfClass("Humanoid")) then return true; end return false; end local function isTargetItem(object) local objectName = object.Name; if isNPC(object) then return nil; end local lowerObjectName = objectName:lower(); for itemName, _ in pairs(exactItemNames) do if lowerObjectName:find(itemName:lower()) then return itemName, itemColors[itemName]; end end return nil; end local function getManualWorldPosition(object) if object:IsA("BasePart") then return object.Position; elseif object:IsA("Model") then return object:GetPivot().Position; elseif object:IsA("Attachment") then return object.WorldPosition; elseif object:IsA("Folder") then for _, child in pairs(object:GetChildren()) do if child:IsA("BasePart") then return child.Position; end end end return Vector3.new(0, 0, 0); end local function updateManualsESP() for object, label in pairs(manualsEspLabels) do if label then label:Destroy(); end end manualsEspLabels = {}; local foundCount = 0; for _, descendant in pairs(Workspace:GetDescendants()) do local itemName, itemColor = isTargetItem(descendant); if (itemName and not manualsEspLabels[descendant]) then local label = createManualESPLabel(itemName, itemColor); manualsEspLabels[descendant] = {Label=label,Name=itemName,Object=descendant}; foundCount = foundCount + 1; end end manualsStatusText.Text = "Found: " .. foundCount .. "/17 manuals"; print("[Manuals ESP] Found " .. foundCount .. "/17 items"); end RunService.RenderStepped:Connect(function() for object, data in pairs(herbEspLabels) do local label = data.Label; if (object and object.Parent) then local worldPos = data.WorldPos or getHerbWorldPosition(object); local screenPos, onScreen = camera:WorldToScreenPoint(worldPos); if (onScreen and herbs[data.Name]) then local distance = (camera.CFrame.Position - worldPos).Magnitude; label.Text = data.Name .. " (" .. tostring(math.floor(distance)) .. ")"; label.Visible = true; label.Position = UDim2.new(0, screenPos.X - (label.AbsoluteSize.X / 2), 0, screenPos.Y - 15); else label.Visible = false; end else label.Visible = false; label:Destroy(); herbEspLabels[object] = nil; end end end); RunService.RenderStepped:Connect(function() for object, data in pairs(manualsEspLabels) do local label = data.Label; if (object and object:IsDescendantOf(Workspace)) then local worldPosition = getManualWorldPosition(object); local screenPosition, onScreen = camera:WorldToScreenPoint(worldPosition); if (onScreen and manualsButtons[data.Name] and manualsButtons[data.Name].Enabled) then label.Visible = true; label.Position = UDim2.new(0, screenPosition.X - (label.AbsoluteSize.X / 2), 0, screenPosition.Y - 20); local distance = (camera.CFrame.Position - worldPosition).Magnitude; label.Text = string.format("%s\n%d studs", data.Name, math.floor(distance)); else label.Visible = false; end else label.Visible = false; if (not object or not object:IsDescendantOf(Workspace)) then label:Destroy(); manualsEspLabels[object] = nil; end end end end); createHerbToggleButtons(); createManualsToggleButtons(); wait(2); updateHerbsESP(); updateManualsESP(); spawn(function() while true do wait(30); updateHerbsESP(); print("[Herbs ESP] Auto-refreshed (30 seconds)"); end end); spawn(function() while true do wait(30); updateManualsESP(); print("[Manuals ESP] Auto-refreshed (30 seconds)"); end end); herbsToggleAllButton.MouseButton1Click:Connect(function() local allOn = true; for herbName, _ in pairs(herbs) do if not herbs[herbName] then allOn = false; break; end end for herbName, _ in pairs(herbs) do herbs[herbName] = not allOn; herbButtons[herbName].Enabled = herbs[herbName]; herbButtons[herbName].Button.BackgroundColor3 = (herbs[herbName] and Color3.fromRGB(50, 200, 50)) or Color3.fromRGB(200, 50, 50); herbButtons[herbName].Button.Text = (herbs[herbName] and "ON") or "OFF"; end for object, data in pairs(herbEspLabels) do data.Label.Visible = herbs[data.Name]; end print("[Herbs ESP] All herbs " .. ((not allOn and "ENABLED") or "DISABLED")); end); manualsToggleAllButton.MouseButton1Click:Connect(function() local allOn = true; for itemName, data in pairs(manualsButtons) do if not data.Enabled then allOn = false; break; end end for itemName, data in pairs(manualsButtons) do data.Enabled = not allOn; data.Button.BackgroundColor3 = (data.Enabled and Color3.fromRGB(50, 200, 50)) or Color3.fromRGB(200, 50, 50); data.Button.Text = (data.Enabled and "ON") or "OFF"; end for object, data in pairs(manualsEspLabels) do data.Label.Visible = manualsButtons[data.Name].Enabled; end print("[Manuals ESP] All items " .. ((not allOn and "ENABLED") or "DISABLED")); end); herbsCloseButton.MouseButton1Click:Connect(function() herbsControlGui.Enabled = false; herbsStatusText.Text = "GUI Hidden - Press F1"; end); manualsCloseButton.MouseButton1Click:Connect(function() manualsControlGui.Enabled = false; manualsStatusText.Text = "GUI Hidden - Press F4"; end); UIS.InputBegan:Connect(function(input) if (input.KeyCode == Enum.KeyCode.F1) then herbsControlGui.Enabled = not herbsControlGui.Enabled; herbsStatusText.Text = (herbsControlGui.Enabled and "GUI Visible") or "GUI Hidden"; elseif (input.KeyCode == Enum.KeyCode.F2) then updateHerbsESP(); print("[Herbs ESP] Refreshed manually"); elseif (input.KeyCode == Enum.KeyCode.F3) then herbsScreenGui.Enabled = not herbsScreenGui.Enabled; print("[Herbs ESP] Display " .. ((herbsScreenGui.Enabled and "ON") or "OFF")); elseif (input.KeyCode == Enum.KeyCode.F4) then manualsControlGui.Enabled = not manualsControlGui.Enabled; manualsStatusText.Text = (manualsControlGui.Enabled and "GUI Visible") or "GUI Hidden"; elseif (input.KeyCode == Enum.KeyCode.F5) then updateManualsESP(); print("[Manuals ESP] Refreshed manually"); elseif (input.KeyCode == Enum.KeyCode.F6) then manualsScreenGui.Enabled = not manualsScreenGui.Enabled; print("[Manuals ESP] Display " .. ((manualsScreenGui.Enabled and "ON") or "OFF")); end end); local function makeDraggable(frame) local dragging = false; local dragInput, dragStart, startPos; local function update(input) local delta = input.Position - dragStart; frame.Position = UDim2.new(startPos.X.Scale, startPos.X.Offset + delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y); end frame.InputBegan:Connect(function(input) if (input.UserInputType == Enum.UserInputType.MouseButton1) then dragging = true; dragStart = input.Position; startPos = frame.Position; input.Changed:Connect(function() if (input.UserInputState == Enum.UserInputState.End) then dragging = false; end end); end end); frame.InputChanged:Connect(function(input) if (input.UserInputType == Enum.UserInputType.MouseMovement) then dragInput = input; end end); UIS.InputChanged:Connect(function(input) if ((input == dragInput) and dragging) then update(input); end end); end makeDraggable(herbsControlFrame); makeDraggable(manualsControlFrame); print("========================================"); print("DUAL ESP SYSTEM LOADED SUCCESSFULLY!"); print("Created by: secretimmortal"); print("========================================"); print("HERBS ESP (5 herbs):"); for herbName, _ in pairs(herbs) do print(" - " .. herbName); end print(""); print("MANUALS ESP (17 items):"); local itemList = {}; for itemName, _ in pairs(exactItemNames) do table.insert(itemList, itemName); end table.sort(itemList); for i, itemName in ipairs(itemList) do print(" " .. i .. ". " .. itemName); end print(""); print("=== CONTROLS ==="); print("F1: Show/Hide Herbs GUI"); print("F2: Refresh Herbs ESP"); print("F3: Toggle Herbs Display"); print("F4: Show/Hide Manuals GUI"); print("F5: Refresh Manuals ESP"); print("F6: Toggle Manuals Display"); print("Auto-refresh rate: 30 seconds for both");