What do SharedStrings in Roblox rbxlx files do?

I found that both .rbxmx and .rbxlx have a node called SharedStrings

<SharedStrings>
	<SharedString md5="yuZpQdnvvUBOTYh1jqZ2cA=="></SharedString>
</SharedStrings>

Where is its md5 obtained?

Purely out of curiosity

Edit: I found that as long as the md5 attribute in the SharedString is changed, Roblox studio will give an error when trying to import the file

No idea what SharedStrin is, but md5 isn’t ciphertext. md5 is an algorithm to create a ‘hash’, basically a way to encrypt something into a uniquie ID that can never be reversed. Hashing is how websites store (or should store) passwords. You don’t want your raw unencrypted password floating around out there after all. So when it is stored, it is irreversibly converted to a hash. When you go to log in, what you type in is hashed and compared with the stored hash.

md5 is generally used to verify that files are what they claim to be. If you go to sourceforge and places like that, the author or website usually has an md5 hash next to it that to my knowledge is basically a hashed version of the checksum of the file. So if the file’s md5 is different from what the author or website says the md5 should be, it’s either been downloaded incorrectly or it’s not the right file. I believe it’s also similar to what Steam and other platforms use to validate files and make sure they haven’t been corrupted or unofficially modified.

For that reason I assume Roblox won’t open the file if the md5 hash doesn’t match whatever file is being imported. Probably for security reasons, but it could be as simple as making sure the file isn’t corrupted.

2 Likes

Thank you for your correction!

The node in a Roblox .rbxlx file is used to store string values that are shared among different parts of the file. For example, if two different objects in the file have the same string value, that value can be stored in the node and then referenced by each object instead of being duplicated. This helps to reduce the size of the file and improve performance.

The md5 attribute of the element is a checksum that is calculated using the MD5 algorithm. This checksum is used to verify the integrity of the string value when it is being used in the file. The exact value of the md5 attribute will depend on the specific string value that it represents. I don’t know exactly how the md5 value is calculated in this case, but the MD5 algorithm is a widely used cryptographic hashing function that produces a fixed-size output from any input.

It’s important to note that modifying the md5 attribute of a element in a .rbxlx file is not recommended and may cause errors when trying to import the file into Roblox Studio. This is because the md5 attribute is used to verify the integrity of the string value, and changing it may cause the verification process to fail. It’s best to leave the md5 attribute as it is and only modify the actual string value if necessary🥱

2 Likes

Thanks for your answer ABCDEF

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.