As a Roblox developer, it is currently too hard to save player data in a binary format.
However, string.pack can solve that as it lets you convert things like floats, integers or shorts and more to binary strings. You can see what it does here.
This would help store high amounts of data without hitting the DataStore size limitations.
Storing player data in binary format is almost always unnecessary. Unless you have some type of UGC with no defined upper limit you’re probably better off just saving plain dictionaries, with some simple RLE at the most.
For the longest time roblox itself was using XML for place files because it worked fine until they had to scale to millions of concurrent users.
Oh my, this still sounds fun for doing things like custom interpreters/compilers. Would help out a hell of a lot in the more obscure sides of Roblox Lua.
I also thought this was an absurd thing to be added to the core Lua 5.3 library. Especially with how minimal the Lua standard library is.
If we were to add this we’d have to strip out like 80% of the format options and quite likely reimplement the function entirely from scratch. I wouldn’t be surprised if you can cause crashes using this function like you can using the reference interpreter’s implementation of os.date.
I also think that introducing this function to get around datastore caps is an X/Y solution. Storing binary data in data stores shouldn’t be required.