I don't normally bump...
but seriously - nobody has ever wanted a copy of an object instance during runtime... Nobody has wanted to copy behavior settings at runtime?
If you have 30 variables on an object and you want a new instance to be the same you have to:
1. create the new object, and store its uid
2. store the UID of the object you want to copy
then ignoring the mess of trying to pick the same object type and setting the correct one to the other correct one...
Self.variable_A = Object.Variable_A
Self.variable_B = Object.Variable_B
Self.variable_C = Object.Variable_C
Self.variable_D = Object.Variable_D
Self.variable_E = Object.Variable_E
Self.variable_F = Object.Variable_F
Self.variable_G = Object.Variable_G
Self.variable_H = Object.Variable_H
... and so one.... if you have complex objects, or compound objects, get ready to have a nightmare and no way around it...