As a Roblox developer, it is currently impossible to set any axises of a BasePart’s Size to less than 0.05, the defined minimum value. Mainly for the purpose of detailed builds I believe it should be decreased further to 0.01. I ought to think that 0.01 studs is the smallest anything should be, and I don’t currently think it’s important that the minimum be removed entirely.
I successfully uploaded a mesh with a size of 0.025 on one axis, but when I re-opened the place it was used in the MeshPart was automatically resized to 0.05 on that axis, and it being a cylindrical shape makes this pretty obvious. It sounds small but it is an important detail of my build, so I’d like to be able to fix this.
You can just use a FileMesh or SpecialMesh to import meshes smaller than 0.05 studs. They both have a Scale property that you can change that have no limits per axis, so you could set the scale of the mesh to something as low as (0, 0, 0).
I just did a little test, and it seems you can utilize the solid modeling feature inside Studio to get UnionOperations which appear to have thickness of <0.05. Upon reloading a place with these UnionOperations, they do not appear to have transformed back into parts of thickness 0.05. The properties tab seems to always report (even if not faithful to the rendering) a thickness of 0.05. These UnionOperations also render materials, and can be colored if UsePartColor is set to true.
In order to reproduce, overlap two parts, and then modify the position of one of them so that it is exactly 0.01 studs above the other. Then make one of them a negative part and union the two together. You should get a UnionOperation that looks thinner than 0.05 studs, even though the nominal value is still 0.05.
The physics engine will probably treat these objects as though they have a thickness of 0.05, although that is probably not a concern.
Also, I have not tried to get cylinders or spheres thinner than 0.05 studs.