Is it necessary for an NPC to even have a HumanoidRootPart? I need to remove it for some of the Humanoids I'm making but I don't know if there will be any negative side effects later on in the future?
Yes, if you wish for them to move, and do things real players can do and have player functions, to my knowledge, it is very complicated and unnecessary to remove it. I don't really think it changes much other than to make the npc simpler and less buggy to code