How to divide game module

Hi, I wan to make a rpg game with modules like bag, friend, chat, shop my question is how can i store them, if i use game state or game instance it will be so huge. Is there any other solution?
use Gameplay Modules or standard C++ singleton design patterns?

I use PlayerController’s Component to store them is right?:confused: