When is it advisable to use AllowPrivateAccess?

I don’t know if I would say there’s a convention per say as I think it’s more a matter of taste/style. I’m of the opinion that if you truly feel that the class variable should be private, then don’t play tricks and expose it to BP. Instead create setter and getter UFUNCTION’s which are BlueprintCallable.

That said I’m open to be schooled on a viable edge case. If I was looking for convention I would probably dig through the engine source to see when/where they use it and if it’s applicable to my use case.

EDIT: Maybe some food for thought. I don’t have the editor in front of me so I can’t try this but what happens when you have a private member variable and you create a blueprint subclass? I realize it’s a subclass but maybe that would be a moment where you would want to allow access via BP?