Making MeshPart's MeshID readable

As of now, you cannot write nor read a MeshPart’s MeshID.

“14:09:12.114 - Unable to query property MeshID. It is not scriptable”

This makes it a pain and utterly inconvenient to make any sort of tools regarding MeshParts,
and to do simple things like recurse through MeshParts in a scene and store their MeshIDs in a table to be preloaded.

I’m sure I’m not the only one who has been bothered by this.
I suppose I understand not being able to write to it, but I don’t see why we can’t simply read it at least.


It’s a security feature. If the client can access the MeshID of the mesh it’s rendering, it can easily grab it. That can still be done regardless, but it’s harder than it would be otherwise.

I’d be for being able to read/write it when the game isn’t running, though. Doesn’t make much sense for a Plugin to not be able to access a property like MeshID when the game isn’t running.

EDIT: Apparently I’m wrong. It’s not a security feature, it’s a product of the engine being like it is. Thanks @EchoReaper.

I really want this too. Without this, I simply cannot allow R15 in my game smoothly as I want to be able to copy and serialize whatever meshes the user “wears” and load it again later (which I can use SpecialMeshes for as far as I know, so that’s not really a big deal).

Yes this would be a nice solution.

This is wrong.

Developers shouldn’t be inhibited if the security “feature” isn’t even foolproof. Anything on the client can be grabbed by the client. I shouldn’t have to hack my own computer to read my own MeshID.

1 Like

Yeah, I’m sure everyone here agrees. Rest assured though, because what dekkonot posted was wrong – the ROBLOX staff aren’t intending to use it as a security feature.

IIRC there’s some weird inner workings of the ROBLOX engine or their design process that require MeshId to be writable in order for it to be readable. That would require MeshParts to be more dynamic than they are now, and ROBLOX wanted to ship the feature ASAP rather than delay it until they got around to extending MeshParts like that.

Update: a new property called “MeshId” was added which is readable (it still can’t be written to though).


Couldn’t you guys just have made MeshID readable but not writable?

That’s what he’s saying

Well - they lowercased the D to make it consistent with the other properties of same name (MeshPart.TextureId, SpecialMesh.MeshId, SpecialMesh.TextureId, CharacterMesh.MeshId, etc.).
The change to make it readable isn’t per se related to that change, but both are :ok_hand: just sweet.

1 Like

Thought he meant there was MeshID and MeshId now lol

I’m pretty sure there is both now.