So, my game's memory usage gets higher, despite all extra parts being added being removed. The game can be found here (https://www.roblox.com/games/575337434/Winter-Crisis-DEMO#!/about), not uncopylocked, but what ever.
The game does involve inserting AI, which are all controlled by a central script, there is a cap on the AI in game at once though, and they do clean up. Each one is given a seperate coroutine if that is relevant. Script usage does not go up, but memory usage goes up VERY rapidly often into 3-4GB late game, this causes obvious problems.
Another thing is that some AI have special powers, such as the ability to set fire to you. This admittedly is scripted rather lazily just by insert a fire into the player, which has a script which is it's child, and is enabled when cloned in. It'll damage the player once a second for 10 seconds, before deleting it's self.
The AI's health was also scripted rather lazily as another scripter who worked on it (but tended to do other bits of the project than the AI), and it has Roblox humanoid to move it, but we also set the health of the humanoid to match the health of the core health value of the mob. This is done by using a separate script, which is removed by using :Delete() on the entire mob when it has been killed.
Can any of these things (some of which are admittedly bad practice lol), cause memory leaks? If not, what else might the issue be. CPU and GPU performance stats stay fairly constant throughout the game, as well as send, receive, and physics

2 comments
This is false. Destroy does not queue garbage collection, though it does clean things up more (ex events). However, ':Remove' is deprecated, so you still have good advice.
Actually it doesn't queue garbage collection, but it is however supposed to be used over Remove, not just because remove is deprecated, but remove doesn't clear the memory associated with the object your removing.