Static vs Dynamic Components (Replication)

I was reading the difference between static components and dynamic components on:

I have a variable in my component that needs to be controlled by the server but replicated to clients. I set that variable to be replicated and enabled replication for the ActorComponent. The ActorComponent is created in the Actor constructor using CreateDefaultSubobject() and it is created on both the server and clients (no if check for server/client) so it is a static component.

In this case it seems like I could create the component on the server and have it replicated to clients making it a dynamic component but I’m not sure which one to choose (static or dynamic component) for an ActorComponent which have variables to replicate.

What are some examples of when I would want to use a dynamic component over a static component? What factors determine which one to choose?

Does anyone have any examples where it would make sense to use a dynamic component over a static component?

Whatever to use dynamic or static has nothing to do with replication, but when component should be initiated or used, it simply effects how they are replicated thats why it’s mentioned in this document.

If component is permanent element of actor it should be statically declared, if component existence is decided by optional factor or condition which happens after actor spawn, then you need to dynamically declare it… you technically forced to do this.

It is always better do declare component statically if possible as it becomes integral part of actor class and it will be visible as a inherent component when you create blueprint out of that class. It’s a lot easier to manage the component this way. Thing is not all practices will work with static deceleration, like for example you got an idea but by that idea you don’t know how much meshes will be used in actor until it’s actually spawned, so you can not statically declare mesh components in that case, you need to add those mesh components after actor is spawned when they are needed, ofcorse by dynamic deceleration. So you see it has more to do with gameplay then replication it self.

When you create components dynamically from information exclusive to single client or server, there creation needs to be replicated as other clients won’t know they need to place component on actor they simply won’t have information required to make that decision, they need to be informed, while static created component will be there at point of the spawn regardless.