The Implementation
So, Roblox recently added HumanoidDescriptions. And I thought they was pretty cool and useful. So I had the idea. What if I made an NPC from a HumanoidDescription. See, at first it would have been simple. Humanoid:ApplyDescription() but Roblox was like. “We have made it so that you can only use this in the way we like you to” So while I was using a base rig for the NPC it still complained. Causing me to recreate the HumanoidDescription system… well Sorta. I only recreated the ApplyDescription and LoadCharacterWithHumanoidDescription functions. I can still use the Players Service to get anyones description so long as I have the UserId. And I can get applied descriptions off of humanoids.
The Caveats
I combined this NPC Service with the CollectionService and hoping to incorporate events into the service (as roblox doesn’t let me keep my NPC class across events because its not a true object) I’m hoping to Add NPCAdded and CharacterAdded.
The Future
Right now there’s nothing really here but spawning NPCs. But NPCs can be considered a direct copy of Player objects which means they can have friends, chat and even be in builders club. I hope to eventually have relationships between NPCs so that they can hold conversations, as well as be autonomous and choose what to do kinda like the sims. Ofcourse they can still act as zombies. This system just let zombies act in a horde
This is probably an unnecessary approach but do let me know.