Ohhh now you got me thinking.
Roblox may not be actually compresses the images that are uploaded but the images that are loaded in game.
So quick explanation, graphics cards have very small and limited amounts of memory and storing uncompressed data in their memory consumes lots of space.
So what a lotta game engines do is they use something whiiiiich I think is called… DXT compression?
(Because algorithms like PNG and JPEG compression are WAYYYYYYY too slow and can’t run on the GPU due to how GPUs are designed.)
It’s basically a way of compressing images that breaks them up into little chunks/blocks that are each individually compressed on the graphics card and the algorithm that is typically used is VERY fast and relatively efficient but comes at the cost of slightly lower image quality.
This makes it so games use less graphics memory and can load more complex textures and models.
I think here you can see how different texture compression methods affect details in different ways.