Datastreams and you?

Just wondering, could someone explain data streams to me in laymen’s terms. I don’t understand how they work or even to what ends they server. The help is appreciated.

Datastream takes an object like a string, number, table, whatever, turn it into string form, use usermessages to send that string to the destination, and then the destination interprets the string it recieves. You just transferred a piece of data from the server to the client or client to the server. Voila. It’s just glorified usermessages.

Few people use them because they are inefficient. They only use like half the capacity of a usermessage.

That is, as far as I know, which is not far.

They should only be used for really big transfers that couldn’t be sent in one bit or would clog up the connection. Otherwise it’s wiser to use plain usermessages.

Datastream is an inefficient wrapper that automates the server-to-client and more importantly client-to-server data transfer system. The only time when datastream is more useful than usermessages is when you either need to send a massive amount of data or a variable content table. Either way you generally shouldn’t need it.
However, when you want to send anything from the client more complex than some strings and numbers, it’s invaluable, as it will let you upload pretty much anything without resorting to a complex web of concommands like Adv Dupe had to.