Any type of Roblox object such as an Enumeration, Instance , or userdata can be passed as a parameter when a RemoteEvent is fired or a RemoteFunction invoked
userdata refers to things like CFrames and Rects, so according to the documentation, everything can be sent.
That would make sense, too, because usually those data types are used for objects’ properties, meaning that if you wanted to replicate an object you’d need to be able to replicate all its properties and their types.