--!strict local SCRIPT_VERSION = "0.0.1" local LIBRARY_ID = "pe_pubmain" local GAME_NAME = "Peak Evolution" -- local LOGS_FILE = `{GAME_NAME} Public Main.txt` -- writefile(LOGS_FILE, "") if getgenv()[LIBRARY_ID] then pcall(function() getgenv()[LIBRARY_ID]:Destroy() end) end local players = game:GetService("Players") local local_player = players.LocalPlayer local object_list local lp_object for _, stage in getgc(true) do if typeof(stage) ~= "table" or not rawget(stage, "PlayerAttack") then continue end local instance_manager = getupvalue(stage.PlayerAttack, 1) object_list = getupvalue(instance_manager.FindObject, 1) lp_object = object_list[local_player] end local function load_url(url: string): (A...) -> R... local Callback, Error = loadstring(game:HttpGet(url)) if Error then return error(Error, 2) end return (Callback :: any) :: (A...) -> R... end local empty_callback = function() end local library: AnkaUi = load_url("https://raw.githubusercontent.com/nfpw/XXSCRIPT/refs/heads/main/Library/Module.lua")() getgenv()[LIBRARY_ID] = library local window = library:CreateWindow({ WindowName = `Public Main {GAME_NAME} v{SCRIPT_VERSION}`, }, gethui()) local main_tab = window:CreateTab("main") local main_section = main_tab:CreateSection("main") local stage = main_section:CreateDropdown( "stage", (function() local out = workspace.Stage:GetChildren() for k, v in out do out[k] = v.Name end return out end)(), empty_callback, workspace.Stage:GetChildren()[1].Name ) local auto_farm = main_section:CreateToggle("auto farm", false, empty_callback) local auto_farm_thread = task.spawn(function() while task.wait() do if not auto_farm:GetState() then continue end local original = local_player.Character:GetPivot() for _, monster in workspace.Stage[stage:GetOption()].monster:GetChildren() do local monster_object = object_list[monster] if not monster_object then continue end local_player.Character:PivotTo(monster:GetPivot()) lp_object.sync_cmp:Add("player_attack_monster", { ["player_guid"] = lp_object.guid, ["monster_guid"] = monster_object.guid, ["stage_id"] = tonumber(stage:GetOption():gsub("stage", ""), 10), }) task.wait() end local_player.Character:PivotTo(original) end end) main_section:CreateButton("unload script", function() library:Destroy() end) local old = library.Destroy library.Destroy = function(...) task.cancel(auto_farm_thread) return old(...) end if not lp_object then return window:Notify("Script patched", "failed to get LocalPlayer data") end