local replicatedStorage = game:GetService("ReplicatedStorage") local players = game:GetService("Players") local localPlayer = players.LocalPlayer local healingShirines = workspace.Misc.HealingShrines local enemies = workspace.Enemies local pets = workspace.Pets local heroesData = require(replicatedStorage.Modules.Shared.WorldData.HeroData) local getGameService = require(replicatedStorage.GetService) local dataServiceClient = getGameService("DataServiceClient") local network = getGameService("Network") local function collectDashBlocks() for _, block in workspace.MAP.DashBlocks:GetChildren() do network:FireServer("PickUpDashFragment", block.Name) end end local function getEquippedPets() return dataServiceClient:Get("EquippedPets") end --[[local function healHeroes() local equippedPets = getEquippedPets() for _, petId in equippedPets do if not petId end end]] local function healHeroes() local healingShirine = healingShirines:FindFirstChildOfClass("Model") localPlayer.Character:PivotTo(healingShirine.ZONE.CFrame) task.wait(2) end local function attackEnemy(enemy) localPlayer.Character:PivotTo(enemy:GetPivot()) local equippedPets = getEquippedPets() local totalHeroDied = 0 local enemyPos = enemy:GetPivot().Position for index = 1, #equippedPets do local petID = equippedPets[index][1] local petData = pets:FindFirstChild(petID) if not petData then totalHeroDied += 1 continue end local enemyTarget = petData:FindFirstChild("EnemyTarget") local visualModel = petData:FindFirstChild("VisualModel") if visualModel and (visualModel:GetPivot().Position - enemyPos).Magnitude >= 50 then network:FireServer("UnequipHero", petData.Name) network:FireServer("EquipHero", petData.Name) task.wait(0.5) end if not enemyTarget or enemyTarget.Value ~= enemy then network:FireServer("StartBattle", enemy) task.wait(1) return true end end if next(equippedPets) and totalHeroDied == #equippedPets then healHeroes() end end local function dupeHero(heroName) assert(heroName, "missing hero name to dupe") for _, enemy in enemies:GetChildren() do if enemy:GetAttribute("NAME") ~= heroName then continue end local health = enemy:FindFirstChild("Health") if not (health and health.Value > 0) then continue end local STARTED_DUPPING_AT = nil while task.wait() do if health.Value > 0 then attackEnemy(enemy) continue end if not STARTED_DUPPING_AT then STARTED_DUPPING_AT = tick() elseif (tick() - STARTED_DUPPING_AT) >= 20 then break end for _ = 1, 5 do task.spawn(network.InvokeServer, network,"CaptureEnemy", enemy) end end end end local function createWindow() return loadstring(game:HttpGet( "https://raw.githubusercontent.com/tlredz/Library/refs/heads/main/redz-V5-remake/main.luau" ))():MakeWindow({ Title = "Capture Anime", SubTitle = "by real_redz" }) end local function init() local window = createWindow() local dupeTab = window:MakeTab({"Dupe"}) local heroList = {} local heroLookup = {} for heroTag, heroData in heroesData do local displayTag = `{heroData.DN or "Unknown"} (@{heroTag})` table.insert(heroList, displayTag) heroLookup[displayTag] = heroTag end local SELECTED_DUPE_HERO = nil dupeTab:AddSection("Dupe Hero") dupeTab:AddDropdown({ Name = "Select Hero", Options = heroList, Callback = function(hero) SELECTED_DUPE_HERO = heroLookup[hero] end }) dupeTab:AddToggle({ Name = "Start Dupe", Callback = function(value) if getgenv().DUPE_THREAD then task.cancel(getgenv().DUPE_THREAD) end if value then local heroName = SELECTED_DUPE_HERO if not heroName then window:Notify({"Error", "Select an hero to Dupe"}) return end getgenv().DUPE_THREAD = task.spawn(function() while task.wait() do dupeHero(heroName) end end) end end }) dupeTab:AddParagraph("You need to defeat the enemy for the dupe to work.") end init() --[[for _ = 1, 10 do network:FireServer("SelectFirstHero", "HERO_3") print("got the best pet!") end]]