Hello! I'm a beginner, but I want to broaden my perspective, so I'm writing this post to ask a question about modularization.

Hello,
Although I’m still a beginner, I’m eager to expand my knowledge, so I’m writing to ask a question about modularization in Unreal Engine.

At the moment, I’m storing character-related data such as level, experience, and stats within an Actor Component, which I then attach to the character. This setup works for now, but as my project grows, I’d like to modularize this data, along with various global custom functions I’ve implemented.

What I’m uncertain about is which class would be most appropriate for this kind of modular structure. Would using a UObject be a reasonable choice? I’m also unsure how to properly organize reusable elements like timers, utility functions used across the game, and shared data. I would sincerely appreciate any advice or best practices you could share.

Thank you very much for taking the time to read my question.

components it’s like essential building blocks for directly specific building.
character should have character relative components. in theory you could melt in him other system stuffs like save, data and etc, but my brain doesn’t accept it since it’s ruining character encapsulation.

better use Manager (in case joining system for characters), Controller (as single system responsibility) with appropriate data asset hierarchy. example stat controller that listening/collect character improvements from different components - health, mana for example achievement manager.

UObject good with very cool stuff out of box like reflection, GC)

for reusable things better create separate module or modules divided by lib specific - like CustomWorldHelper, CustomObjectHelper and etc with separated classes for each functionality.

also read “Complete code” McConnell, and different SOLID realization compare to UE and game logic in common