Private functions are listed in external blueprints

Function is still visible from other blueprints when setting it to “Private”. Is this a bug? How to properly hide a function from other blueprints?

But you can call it?

Ah, now I see that there is “Function ‘…’ is private and cannot be called outside its class” warning, but it still does execute when calling it. I’ve thought that setting a function to Private will make it disappear from object’s context menu.
… Well, at least there is this warning :slight_smile:

I will move it to Bug Report as i think fact that private nodes are listed outside of class is a bug (or rather lack of implementation to hide them)

1 Like

The test case was something like this: Create blueprint A & B, in blueprint A make a private function. In blueprint B, Spawn Actor from Class (class A) and the function is visible after dragging wire off the spawn node output (reference to spawned object). When called, it displays this warning, but it executes (tested with one print string inside this private function)

That depends on how you are calling it. If you have cast to a blueprint and call the function you are telling the blueprint to run the function, however you should not be able to make direct changes to that function from outside the blueprint. How are you attempting to interact with the blueprints in question?

Can you post a screenshot of your blueprints as well as the specific warning you are seeing?

Here, I’ve also created a demo project:

[link text][2]

After playing, the private function is called and executed, showing print string message on screen.

Hi ,

I was able to reproduce this on my end and have entered a bug report, UE-22843, to be assessed by the development staff.

Any progress regarding this?

Hi NullBlack,

This is still under assessment by the development staff. Unfortunately, however, our resources are currently dedicated elsewhere. I do not have a timeframe of when this will be addressed.

Please can this be bumped up in priority? Aside from being a bug it’s really important for usability if other people will be using your blueprints. Thanks.

This bug still exists. Can you please get around to fixing this?

Hi Willard720,

At present our resources are dedicated elsewhere. As such I do not have a timeframe of when a fix will be made available. I have added an internal note that additional developers are experiencing this error, you can track the report’s status as the issue is reviewed by our development staff here.

Hi ,
any news on this? 4.17 is upcoming and the bug is still backlogged since 4.9. Would be a great improvement to hide private functions in other blueprints - especially for marketplace content, where I don’t want to confront the user with functions s/he actually must not call.

This annoyance still persists in the end of 2017. Although it’s not critical, it results in a noticeable loss of productivity due to the function library containing the name of every single Private-marked function out there.

Is it really that hard to read the Access Specifier value and avoid populating the general library list with all non-internal Private functions? Admittedly, I haven’t looked at the the code yet, but it seems like a very easy thing to fix.

Any informations about when it will be fixed ? I have some functions that I want to hide from other developers, because I don’t want them to use it.

*bump*

They can even be overriden !

Not only are private functions visible and callable, you can actually override them in child-blueprints.

This is a consistent bug since UE 4.09.
It would be nice, if it would get higher fix-priority.

4.18.3 here and same issue.
Good to know that i m not stupid and my 20 years of experience are not wasted. lol

Still an issue in 4.19.1