Explain to me what setting private means on a variable?

Does transient mean it will stay the same on next load?

Private variable basically means it’s only available in that particular blueprint. So if you had a variable name “speed” in projectile BP… You cannot then cast to projectile and set speed in your character BP. If is uneditable the variable will stay the same all the time but cannot be changed

so a random int should not be set to private for replication?

Not if you want to change its value from another blueprint. If no other blueprint is setting or getting it’s value then there’s no issue.

Ahh private cuts blueprint to blueprint communication, now it clicks.

Thank you, one more question, does transient mean that variable will stay the same after being set on next load? and save game mean the opposite?

What I understand if you had a transient variable is it set to none and is a constant when it is initialised. So like max health. On load max health is set as 100 and this never changes so can be transient… Honestly I’ve never used them. I’ve not done save games yet but this answer seems to talk about ithttps://answers.unrealengine.com/questions/25747/how-can-i-savegame.html