I forgot about the 16kb limit with storage as I was designing my inventory system, because even when I use SetStorage with over 50kb of data, no warnings show up and the data is stored successfully.
Is the Storage documentation wrong or is the
StorageResultCode.EXCEEDED_SIZE_LIMIT just not automatically printing to the log?
Don't really know, but if you are exceeding the 16kb limit, you can save to the shared storage keys, each of which has 16kb and you have 8 of them, so 128kb storage space in total.
I got the warning to appear by trying to save a single large string. So either the documentation is wrong, or their own implementation is wrong and the size is only checked for each individual variable, which means you could save an infinite amount of data per player per key using tables, which is a bit worrying.
But either way, by converting each item data table into a single string, I can now store around 250 unique equippable items per player per key, compared to ~ 10 items when saving them to storage in tables.