I wonder how to save the emotes in DataStore like TSB which has around 300+ emotes, but how do they do it? do they use 300+ of bool values?
what do you mean by do they use 300 bool values
Or they just have an array with the names / uids (unique identifiers)?
Also the size of a roblox data store is 4mb, which might not sound like a lot, but it is a lot when you are just saving numbers / strings
indicating if player has the unlocked emote or not.
just add the emotes name to a table.
They use DataStoreService to create a datastore with the emotes they have in them, and then get the datastore.
and then do whatever they need to do etc
they use a table of the emote names like @mlnitoon2 said previously
to add on to this i would personally also make a module script with all the available emotes and their ids this will help with playing the animation and checking if the emote they try to unlock is a valid emote
also if you wanted to create the ui its just viewportframes with a dummy and playing the equipped animation a way of managing the equip function would require more data saving like
local EquippedEmotes = {"Wave", "Crush"}