local Workspace = game:GetService("Workspace") local RunService = game:GetService("RunService") local npcFolder = Workspace:WaitForChild("NPCFolders") local enemyFolder = npcFolder:WaitForChild("EnemyFolder") local baseFolder = npcFolder:WaitForChild("BaseFolder") local blueSpawn = baseFolder:WaitForChild("Blue Base"):WaitForChild("Spawn") local projectileFolder = Workspace:WaitForChild("Projectile") local bodyAngularList = {} local function trackBAV(bav) if bav and bav:IsA("BodyAngularVelocity") then bodyAngularList[bav] = true end end local function removeTouchInterest(descendant) if descendant and descendant:IsA("TouchInterest") then descendant:Destroy() end end local function getHighestHPNPC() local highestNPC local maxHealth = -math.huge for _, npc in ipairs(enemyFolder:GetChildren()) do local humanoid = npc:FindFirstChild("Humanoid") if humanoid and humanoid.Health > 0 and humanoid.Health > maxHealth then maxHealth = humanoid.Health highestNPC = npc end end return highestNPC end local function HandleTable(tablePart) if not tablePart:IsA("BasePart") then return end tablePart.CFrame = blueSpawn.CFrame * CFrame.new(0, -1, 0) tablePart.Size = tablePart.Size * 100000 tablePart.CustomPhysicalProperties = PhysicalProperties.new(0.7, 0.3, 0.5) local bav = tablePart:FindFirstChildOfClass("BodyAngularVelocity") if not bav then bav = Instance.new("BodyAngularVelocity") bav.MaxTorque = Vector3.new(1e6, 1e6, 1e6) bav.AngularVelocity = Vector3.new(-40, 0, 0) bav.Parent = tablePart end trackBAV(bav) for _, desc in ipairs(tablePart:GetDescendants()) do removeTouchInterest(desc) end end local function HandleStoneFist(fistPart) if not fistPart:IsA("BasePart") then return end local targetNPC = getHighestHPNPC() if targetNPC then local root = targetNPC:FindFirstChild("HumanoidRootPart") if root then fistPart.CFrame = CFrame.new(root.Position + Vector3.new(0, 5, 0)) end end end for _, obj in ipairs(projectileFolder:GetChildren()) do if obj.Name == "Table" then HandleTable(obj) elseif obj.Name == "StoneFist" then HandleStoneFist(obj) end end projectileFolder.ChildAdded:Connect(function(child) if child.Name == "Table" then HandleTable(child) elseif child.Name == "StoneFist" then HandleStoneFist(child) end end) RunService.Heartbeat:Connect(function() for bav,_ in pairs(bodyAngularList) do if bav.Parent then bav.AngularVelocity = Vector3.new(-40, 0, 0) else bodyAngularList[bav] = nil end end end)