Blueprint advice and client/server communication

Hello everyone. I would like some advice regarding the following.
I’m currently building a prototype as a base for my game(s). I recently started adding network functionality and various character systems like Health, Stamina, Hunger etc.
The question is, in the case I want something to run on the server, should I put it in a different blueprint?
For example, my Stamina system (consumption, regeneration etc) is currently within my Character blueprint. The whole calculation is run on the server through a custom event (Run on Server) and then replicates back to the player. Should I put this system in a different Blueprint (like StaminaSystem_BP)?
Also, is it generally a good practice to keep various mechanisms of the game in seperate blueprints?
Thank you in advance!

Unless your stamina system is extremely complicated, I think it’s fine to handle it like you do. There’s certainly no need to separate server/client handling into separate Blueprints.

Depending on how much code (stamina-specific functions and variables) there is, you could move it into a custom component attached to the character, which could handle the regeneration via EventTick on its own. Of course, now you’ll have to access the component every time you need to change or check the current stamina. (Same for any other stat.) I’m currently having some trouble with cyclic dependencies in Blueprints but as long as your component only handles its own variables and doesn’t need to access its owner (the character), you should be fine.

If the different stats have lots of code in common, you could even create one parent component containing all the global functionality (Tick functions and the like) and create Child components for each of the stats. Then again, there might not be much of an overlap, so this could be more work than it’s worth. It really depends on what you need.

It seems I’ll be handling those things within the character blueprint then, like I do now. Cause those mechanisms affect each other’s variables along with the character’s inherited variables and components (like movement). I sense I’ll have to setup everything I’ve made, to take into account player references etc. You are right, it seems like additional work for nothing and a whole lot of problems I’ll give to myself for no particular reason (especially since we are talking about just a prototype). Thanks for the advice!