Add Component node is not available in Actor Component Blueprint

I have some skill components (say MeleeSwingSkill) that traces a line and wants to add a status effect component (say BurningStatusEffect) to a hit actor.

But I can’t do it in ActorComponent because Add Component node is not available in actor component blueprint. Is there any reason why the method is prevented from Actor Component? This feels unnecessary and inconvenient to me.

It looks like I’m not the only person suffering from this:

Thanks in advance!

Add Component from the child component is not allowed because. AddComponent is blueprint internal use only. You can’t use addcomponent in anywhere other than Actor Blueprint. You can workaround by creating an event in Actor Blueprint and broadcasting that in Child Component when the actor is hit.

Hi Kuro, thanks for your fast reply, but I already understand that. My question is more on why the function has to be internal only or private to Actor. In C++, no one prevents you from creating an actor component and registering it to an actor in Actor Component and it doesn’t cause any problems. It seems like an unnecessary restriction. I might have overlooked something. Maybe there is an issue with adding a BP actor component.

Your suggested solution doesn’t work for me, because I want to know what information I should provide at the moment I add a new actor component to an actor. Those values can be different per component, but events can’t reflect those values dynamically. You can check out the picture that I uploaded and see Hello and LifeTime properties being exposed on the Add Component node to see what I wanted.

My current solution is to use actor, which you can spawn with all the params I need to provide even in actor component. But It comes with a baggage of unnecessary data including transform, so I wanted to avoid it if possible.

Pushing it again because I am really curious…!