I spent 3 hours tracking down a strange memory leak inside my script that had only started within the last week. Eventually I narrowed it down to GetIncomingTrackingProjectiles. Even something as simple as unit:GetIncomingTrackingProjectiles(), where the return value isn't even stored in something, causes the memory consumption to constantly increase, even in an otherwise empty Think function. Without that call, the memory consumption stays around 300 kb, but with that single call, the memory consumptions rises to 2000 kb within 5 minutes. collectgarbage() has no effect on this increase.