An unsigned 64bit integer.
These are used to distinguish an object from other objects regardless of their class. Therefore, two or more different objects cannot have the same GUID.
Since lua can't address 64bit numbers, these are pushed as userdata instead.
You can't operate on them as you normally would 32bit numbers(add, subtract, multiply, etc), you can only pass them around, print their values or compare them to other guids.