Hey.
I'm thinking about getting into automating the NPC creation process. But I'm wondering what's already out there? Like if you're making a GTA type of open world game, how do you create the behaviours of NPCs?
You should definitely take a look on behavior trees. In most cases they are much cleaner solution than state machines, and there are tons of documentation, resources and assets available. They are also built-in solution in many game engines, such as UE4.
https://docs.unrealengine.com/en-US/Engine/ArtificialIntelligence/BehaviorTrees/...