Simply converting Roblox's Animation script into a server script works to give an NPC regular animations, but with anything more than 5 NPCs this adds lots of lag. This game, however, has tons of animated NPCs and absolutely zero lag. How did the creator manage to accomplish this?
Most likely he is using just a single animator script, or is utilizing ModuleScript(s) to avoid having multiple copies of the exact same functions in memory at the same time.
Without actually asking him yourself, none of us will know exactly how he's doing it.