Pass By Value: Only the value of the variable is passed to the function. It cannot be changed in order to change the original variable back in the function it was called from.
Pass By Reference: The variable can be changed from within the function, and any changes will be reflected when control returns to the calling function.
The ironic part...References in Papyrus are Pass-By-Value! So you can't get more than one reference changed by any particular function!
For example, let's say you want to reverse the variables akActor1 and akActor2 back in the calling function by calling a function to do so
MyReferenceSwapFunction(Actor akActor1, Actor akActor2); Do some stuff here. Actor TempHolder = akActor1 akActor1 = akActor2 akActor2 = TempHolder; Do some more stuff here.endFunction
won't work!