--[[ Example Compkiller UI Author: 4lpaca Press Left Alt to open / close ]] local Compkiller = loadstring(game:HttpGet("https://raw.githubusercontent.com/4lpaca-pin/CompKiller/refs/heads/main/src/source.luau"))(); -- Create Notification -- local Notifier = Compkiller.newNotify(); -- Create Config Mamager -- local ConfigManager = Compkiller:ConfigManager({ Directory = "Compkiller-UI", Config = "Example-Configs" }); -- Loading UI (Icon , Duration ) -- Compkiller:Loader("rbxassetid://120245531583106" , 2.5).yield(); -- Creating Window -- local Window = Compkiller.new({ Name = "FeedPet", Keybind = "LeftAlt", Logo = "rbxassetid://120245531583106", Scale = Compkiller.Scale.Window, -- Leave blank if you want automatic scale [PC, Mobile]. TextSize = 15, }); -- Notification -- Notifier.new({ Title = "Notification", Content = "Thank you for use script!", Duration = 10, Icon = "rbxassetid://120245531583106" }); -- Watermark -- local Watermark = Window:Watermark(); Watermark:AddText({ Icon = "user", Text = "dinas", }); Watermark:AddText({ Icon = "clock", Text = Compkiller:GetDate(), }); local Time = Watermark:AddText({ Icon = "timer", Text = "TIME", }); task.spawn(function() while true do task.wait() Time:SetText(Compkiller:GetTimeNow()); end end) Watermark:AddText({ Icon = "server", Text = Compkiller.Version, }); -- Creating Tab Category -- Window:DrawCategory({ Name = "Hack" }); -- Creating Tab -- local NormalTab = Window:DrawTab({ Name = "Farm", Icon = "apple", EnableScrolling = true }); -- Creating Section -- local NormalSection = NormalTab:DrawSection({ Name = "Cheats", Position = 'left' }); local AutoFoodPumpEnabled = false local PumpInterval = 0.1 -- Seconds between clicks local Toggle = NormalSection:AddToggle({ Name = "Auto Food Pump", Flag = "AutoFoodPump_Enabled", Default = false, Callback = function(newValue) AutoFoodPumpEnabled = newValue if AutoFoodPumpEnabled then print("Auto Food Pump Enabled") else print("Auto Food Pump Disabled") end end, }); -- Plot Selection Dropdown -- local SelectedPlot = 8 -- Default plot local Dropdown = NormalSection:AddDropdown({ Name = "Select Plot", Flag = "Selected_Plot", -- Save plot selection Default = "Plot 8", Values = { "Plot 1", "Plot 2", "Plot 3", "Plot 4", "Plot 5", "Plot 6", "Plot 7", "Plot 8" }, Callback = function(plotName) SelectedPlot = tonumber(string.sub(plotName, 6)) -- Extract plot number from name end, }); -- Pump Delay Slider local Slider = NormalSection:AddSlider({ Name = "Pump Delay (seconds)", Min = 0.1, Max = 30, Default = 5, -- Set to default pump delay Round = 0, Flag = "Pump_Delay", -- Add a flag for config saving Callback = function(value) PumpInterval = value end, }); -- Auto Food Pump Loop -- task.spawn(function() while true do task.wait(PumpInterval) if AutoFoodPumpEnabled then local args = { workspace:WaitForChild("Gameplay"):WaitForChild("Plots"):WaitForChild(tostring(SelectedPlot)) } local success, result = pcall(function() game:GetService("ReplicatedStorage"):WaitForChild("Events"):WaitForChild("Gameplay"):WaitForChild("ClickFoodPump"):FireServer(unpack(args)) end) if success then print("Successfully clicked food pump for plot " .. SelectedPlot) else warn("Error clicking food pump for plot " .. SelectedPlot .. ": " .. result) end end end end) -- Auto Claim Food Function local AutoClaimFoodEnabled = false local ClaimInterval = 0.1 -- seconds between claims local function claimFood() local args = { "Food Pump", "FoodXp" } local success, result = pcall(function() return game:GetService("ReplicatedStorage"):WaitForChild("Events"):WaitForChild("Gameplay"):WaitForChild("ClaimFood"):InvokeServer(unpack(args)) end) if success then print("Successfully claimed food") else warn("Error claiming food: " .. result) end end -- Auto Claim Food Toggle local Toggle = NormalSection:AddToggle({ Name = "Auto Claim Food", Flag = "AutoClaimFood_Enabled", Default = false, Callback = function(newValue) AutoClaimFoodEnabled = newValue if AutoClaimFoodEnabled then print("Auto Claim Food Enabled") else print("Auto Claim Food Disabled") end end, }); --Claim Food Delay Slider local Slider = NormalSection:AddSlider({ Name = "Claim Delay (seconds)", Min = 0.1, Max = 60, Default = 10, -- Set to default claim delay Round = 0, Flag = "Claim_Delay", -- Add a flag for config saving Callback = function(value) ClaimInterval = value end, }); -- Claim Food loop task.spawn(function() while true do task.wait(ClaimInterval) if AutoClaimFoodEnabled then claimFood() end end end) -- Auto Food Pump Loop -- task.spawn(function() while true do task.wait(PumpInterval) if AutoFoodPumpEnabled then local args = { workspace:WaitForChild("Gameplay"):WaitForChild("Plots"):WaitForChild(tostring(SelectedPlot)) } local success, result = pcall(function() game:GetService("ReplicatedStorage"):WaitForChild("Events"):WaitForChild("Gameplay"):WaitForChild("ClickFoodPump"):FireServer(unpack(args)) end) if success then print("Successfully clicked food pump for plot " .. SelectedPlot) else warn("Error clicking food pump for plot " .. SelectedPlot .. ": " .. result) end end end end) local fruitNames = { "FoodXp1", "FoodXp2", "FoodXp3", "FoodXp4" } local autoCollectEnabled = false -- Добавлено: Переменная для контроля состояния автосбора local autoCollectCoroutine = nil -- Добавлено: Переменная для хранения корутины --[[ Функция для отправки запроса на сбор фрукта farmName: Название фермы (например, "Farm") fruitName: Название фрукта (например, "FoodXp1") ]] local function ClaimFruit(farmName, fruitName) if not autoCollectEnabled then return end -- Добавлено: Проверка, включен ли автосбор local args = { farmName, fruitName } local success, result = pcall(function() return game:GetService("ReplicatedStorage"):WaitForChild("Events"):WaitForChild("Gameplay"):WaitForChild("ClaimFood"):InvokeServer(unpack(args)) end) if not autoCollectEnabled then return end -- Добавлено: Проверка, включен ли автосбор if success then -- Обработка результата, если необходимо. if result then print("Successfully claimed fruit: " .. fruitName .. ". Result: " .. tostring(result)) else warn("ClaimFruit: No result from server for " .. fruitName) end else warn("Error claiming fruit: " .. fruitName .. ". Error: " .. tostring(result)) end end --[[ Функция для автоматического сбора всех фруктов на ферме farmName: Название фермы (например, "Farm") ]] local function AutoCollectFruits(farmName) while autoCollectEnabled do for _, fruitName in ipairs(fruitNames) do if not autoCollectEnabled then break end -- Добавлено: Проверка в цикле, чтобы можно было прервать сбор ClaimFruit(farmName, fruitName) wait(0.2) -- Небольшая задержка между сбором разных фруктов end if not autoCollectEnabled then break end -- Добавлено: Проверка после цикла, чтобы полностью остановить сбор wait(5) -- Задержка между повторными попытками сбора end end local function ToggleAutoCollect(enabled) autoCollectEnabled = enabled -- Обновляем состояние автосбора if enabled then -- Запускаем автосбор только если еще не запущен if not autoCollectCoroutine then autoCollectCoroutine = spawn(function() AutoCollectFruits("Farm") end) end else -- Останавливаем автосбор autoCollectCoroutine = nil -- Зануляем корутину, чтобы можно было запустить заново потом print("Auto collect stopped.") -- Опциональное сообщение end end -- Добавляем Toggle для активации автосбора local Toggle = NormalSection:AddToggle({ Name = "Collect All Fruits", Flag = "AutoCollectFruits", Default = false, Callback = function(state) ToggleAutoCollect(state) -- Вызываем функцию для запуска и остановки end, }); NormalSection:AddParagraph({ Title = "Info AutoPump", Content = "Select the correct plot\nAutoPamp will work\nI recommend setting Delay 0" }) local DrawElements = function(Tab,Position) do local NormalSectionRight = Tab:DrawSection({ Name = "Soon", Position = Position }); local upgradeTargets = { "Farm", "Food Pump", "Greenhouse" } local autoUpgradeEnabled = {} -- Таблица для хранения состояния автоапгрейда для каждого строения local autoUpgradeCoroutines = {} -- Таблица для хранения корутин автоапгрейда local function UpgradeBuilding(buildingName) if not (autoUpgradeEnabled[buildingName] == true) then return end local args = { buildingName, 1 -- Количество, равное 1 } local success, result = pcall(function() return game:GetService("ReplicatedStorage"):WaitForChild("Events"):WaitForChild("Gameplay"):WaitForChild("LevelupBuilding"):FireServer(unpack(args)) end) if success then -- Обработка результата, если необходимо. if result then print("Successfully upgraded " .. buildingName .. ". Result: " .. tostring(result)) else warn("UpgradeBuilding: No result from server for " .. buildingName) end else warn("Error upgrading " .. buildingName .. ". Error: " .. tostring(result)) end end --[[ Функция для автоматического улучшения buildingName: "Farm" или "Food Pump" ]] local function AutoUpgradeBuilding(buildingName) while (autoUpgradeEnabled[buildingName] == true) do UpgradeBuilding(buildingName) wait(0.1) -- Отрегулируйте задержку по своему усмотрению -- Можно добавить проверки (например, достаточно ли ресурсов) -- чтобы не спамить сервер if not (autoUpgradeEnabled[buildingName] == true) then break end -- Важная проверка остановки цикла end autoUpgradeCoroutines[buildingName] = nil end local function ToggleAutoUpgrade(buildingName, enabled) autoUpgradeEnabled[buildingName] = enabled if enabled then -- Запускаем автоапгрейд, если он еще не запущен if not autoUpgradeCoroutines[buildingName] then autoUpgradeCoroutines[buildingName] = spawn(function() AutoUpgradeBuilding(buildingName) end) end else -- Автоапгрейд выключен. В цикле `AutoUpgradeBuilding` будет обнаружено `enabled = false` и цикл завершится. print("Auto upgrade for " .. buildingName .. " stopped.") end end -- Добавляем Toggle для каждого строения for i, buildingName in ipairs(upgradeTargets) do -- Инициализируем autoUpgradeEnabled для каждого строения autoUpgradeEnabled[buildingName] = false local Toggle = NormalSectionRight:AddToggle({ Name = "Auto Upgrade " .. buildingName, Flag = "AutoUpgrade_" .. buildingName, Default = false, Callback = function(state) ToggleAutoUpgrade(buildingName, state) end, }); end NormalSectionRight:AddParagraph({ Title = "Paragraph", Content = "Soon new functions" }) end; end; DrawElements(NormalTab,'right') Window:DrawCategory({ Name = "Misc" }); local SettingTab = Window:DrawTab({ Icon = "settings-3", Name = "Settings", Type = "Single", EnableScrolling = true }); local ThemeTab = Window:DrawTab({ Icon = "paintbrush", Name = "Themes", Type = "Single" }); local Settings = SettingTab:DrawSection({ Name = "UI Settings", }); Settings:AddToggle({ Name = "Alway Show Frame", Default = false, Callback = function(v) Window.AlwayShowTab = v; end, }); Settings:AddColorPicker({ Name = "Highlight", Default = Compkiller.Colors.Highlight, Callback = function(v) Compkiller.Colors.Highlight = v; Compkiller:RefreshCurrentColor(); end, }); Settings:AddColorPicker({ Name = "Toggle Color", Default = Compkiller.Colors.Toggle, Callback = function(v) Compkiller.Colors.Toggle = v; Compkiller:RefreshCurrentColor(v); end, }); Settings:AddColorPicker({ Name = "Drop Color", Default = Compkiller.Colors.DropColor, Callback = function(v) Compkiller.Colors.DropColor = v; Compkiller:RefreshCurrentColor(v); end, }); Settings:AddColorPicker({ Name = "Risky", Default = Compkiller.Colors.Risky, Callback = function(v) Compkiller.Colors.Risky = v; Compkiller:RefreshCurrentColor(v); end, }); Settings:AddColorPicker({ Name = "Mouse Enter", Default = Compkiller.Colors.MouseEnter, Callback = function(v) Compkiller.Colors.MouseEnter = v; Compkiller:RefreshCurrentColor(v); end, }); Settings:AddColorPicker({ Name = "Block Color", Default = Compkiller.Colors.BlockColor, Callback = function(v) Compkiller.Colors.BlockColor = v; Compkiller:RefreshCurrentColor(v); end, }); Settings:AddColorPicker({ Name = "Background Color", Default = Compkiller.Colors.BGDBColor, Callback = function(v) Compkiller.Colors.BGDBColor = v; Compkiller:RefreshCurrentColor(v); end, }); Settings:AddColorPicker({ Name = "Block Background Color", Default = Compkiller.Colors.BlockBackground, Callback = function(v) Compkiller.Colors.BlockBackground = v; Compkiller:RefreshCurrentColor(v); end, }); Settings:AddColorPicker({ Name = "Stroke Color", Default = Compkiller.Colors.StrokeColor, Callback = function(v) Compkiller.Colors.StrokeColor = v; Compkiller:RefreshCurrentColor(v); end, }); Settings:AddColorPicker({ Name = "High Stroke Color", Default = Compkiller.Colors.HighStrokeColor, Callback = function(v) Compkiller.Colors.HighStrokeColor = v; Compkiller:RefreshCurrentColor(v); end, }); Settings:AddColorPicker({ Name = "Switch Color", Default = Compkiller.Colors.SwitchColor, Callback = function(v) Compkiller.Colors.SwitchColor = v; Compkiller:RefreshCurrentColor(v); end, }); Settings:AddColorPicker({ Name = "Line Color", Default = Compkiller.Colors.LineColor, Callback = function(v) Compkiller.Colors.LineColor = v; Compkiller:RefreshCurrentColor(v); end, }); Settings:AddButton({ Name = "Get Theme", Callback = function() print(Compkiller:GetTheme()) Notifier.new({ Title = "Notification", Content = "Copied Them Color to your clipboard", Duration = 5, Icon = "rbxassetid://120245531583106" }); end, }); ThemeTab:DrawSection({ Name = "UI Themes" }):AddDropdown({ Name = "Select Theme", Default = "Default", Values = { "Default", "Dark Green", "Dark Blue", "Purple Rose", "Skeet" }, Callback = function(v) Compkiller:SetTheme(v) end, }) -- Creating Config Tab -- local ConfigUI = Window:DrawConfig({ Name = "Config", Icon = "folder", Config = ConfigManager }); ConfigUI:Init();