The reason why in the example the variable is instantiated before OnSpawn is so that .value can be accessed even if the object is not spawned. Instead we call Init() inside OnSpawn to link it to the network.
onReceive, onSend
You can optionally define a callback to be called whenever the variable refresh is received or sent.
Delivery, Target, and Authority
These work exactly the same way as SNetworkActions. But unlike actions, the default values are different.
Default target is All for actions and Clients for variables.
Default delivery is Reliable for actions and UnreliableSequenced for variables.