4.4 to 4.6 change - variable visibility between classes

Before switching to 4.6 from 4.4, i was able to get/set all the variables of a class from other classes, even if they were not public (eye icon) - now, to access a variable, for example “hp” from “Player” class, i must set “hp” to public. It becomes visible in Defaults tab, and as for “hp”, “exp”, etc. it’s perfectly fine, it creates a mess when i have more and more other variables. And in Defaults tab, i would like to have only the variables that i want to edit. I know, that in ‘perfectly programmistically’ way it’s better to create getter and setters (functions) for variables, but i thought that “get” & “set” nodes were already like that. Am i missing something, or now i really must set variable to public if i want to access it from other classes?

You must set variable to public in order to use it.

Every Variable you want to use in another Blueprint needs to be public with version 4.6. That’s normal and was updated to match the standard in the latest version." -eXi

Good policy is to put prefixes into variable names to know which variable belongs where and to change category to do group variables.