Alright, turns out that this entire problem was just an illusion. I just found out two actors with the same array were being spawned in the same place perfectly on top of one another so when I called the function to remove one item from the array I would print the length from the array, remove the item, print the length again and then without realizing it I did the same with the actor which gave the illusion that it wasn’t being deleted the first time. That doesn’t mean you guys wasted your time though. All your suggestions really helped in making my code 10 times easier to read and probably more efficient. Sorry I couldn’t reply earlier but I have been without internet for the whole day.