I've started working on the encounter system for my pet project. The system features an Encounter Subsystem that facilitates communication between all active NPCs. Each NPC has an NPCSystemComponent that contains information about its role within the team and the team ID, ensuring it can only communicate with NPCs in its own team. NPCs are spawned via an NPC Spawner, which creates NPCs using the Object Pool pattern to avoid lag during enemy wave spawns. This system is included as a plugin in Game Features and can be used in other projects.