As a Roblox developer, it is currently too hard to convert MeshParts to SpecialMeshes via script at runtime.
The .05 minimum Size (along each axis) was recently applied to MeshParts. Meshes rendering at smaller sizes was useful for things like rendering objects close to the camera while producing the effect that they are larger and farther away (e.g. 3D UI, guns in a FPS, etc.) without them clipping into walls.
The best workaround right now is to replace those MeshParts with Parts containing a SpecialMesh and setting the Scale accordingly, but to do so from a script at runtime requires knowing the “original size” of the MeshPart. The only way to figure these out is by hand (paste MeshId into blank MeshPart). This would mean that if I wanted to be able to hot swap between the two via script, I have to keep a table somewhere containing the original size of every MeshId I am interested in scaling, and keep that table up-to-date manually.
Plugin access to set MeshId would allow us to make a database that automatically updated, but unfortunately MehsPart.MeshId is completely restricted.
What I am proposing is a new function, MeshPart:GetOriginalSize(). It would tell you the “original size” of the MeshPart, the Size it would be set to if you took a blank MeshPart and set its MeshId.
A side benefit (I think) is that this could also clean up R15 characters a bit, as every MeshPart in them has a Vector3Value named “OriginalSize”. I don’t know much about that, though.
If Roblox is able to address your issue, how would it improve your game and/or your development experience?
The process of converting between MeshParts and SpecialMeshes would be more streamlined, and getting MeshParts small enough for these particular use cases would become possible again.
If anyone knows any tricks that could help, please let me know. Otherwise, I think this feature would be pretty handy.