Function called on an actor from another actor behaves differently?

I have an actor called Ship with a BP function (the function was created in C++ but it is set as BP callable) that works really well when called from BP in that actors event graph. The function adds a static mesh component to said actor when called and sets it’s mesh to the one specified.

When I call that function from my other actor called BuildCharacter all of the logic still seems to work (I’ve even walked through the function being executed in the debugger) but the component does not appear.

I’ve tried:

  • Changing the access of the function
    to public in C++
  • Changing the access of the Ship
    reference to public in BP
  • Making a BP function in Ship that
    calls the original (my hope was that
    being called in Ship’s BP graph would
    fix the issue, no dice).

Why does this work:

298899-goodfunctioncall.png

but this doesn’t?:

298900-badfunctioncall.png

Any help is greatly appreciated!

In the second picture, where does “Ship” come from? and where does the white line come from?

Also, try hitting the eject button and look around your character to see if the mesh spawned somewhere far away. After you hit play, you will see the eject button next to stop.