BP Function private/protected access specifiers are useless?

The documentation says this about private and protected functions in Blueprints:

A setting of Protected means that the Function can only be called by the current Blueprint, as well as any Blueprints that derive from the current Blueprint.

A setting of Private means that the Function can only be called from within the current Blueprint.

In reality, it seems like these settings do nothing? Regardless of whether I set a function to private, protected, or public, it seems it can be accessed and called by any other BP, without even a warning.

Actually it looks like this issue is almost four years old: Private functions are listed in external blueprints - UE4 AnswerHub

Are there any plans to fix it?

This problem exists since Unreal 4 first versions were made public and probably will never be fixed unless someone else solve the problem and submit to Github :wink:

I really wish they’d update the documentation, then…

Did this change with 4.24.1, because now I get compiler errors when the specifier is not correctly configured.

Yes, somebody finally took a look and did some changes.
But I don’t know if it’s completely fixed tho.

I can still compile protected functions in 4.23.1. Thus, if 4.24 fixes this problem that’s great.