Use InsertService:CreateMeshPartAsync
with MeshPart:ApplyMesh
. You might have to reset a few properties after you apply the mesh, such as the texture.
local InsertService = game:GetService("InsertService")
local function ChangeMeshId(Part: MeshPart, MeshId: string): boolean
local Success, LoadedMesh = pcall(
InsertService.CreateMeshPartAsync, InsertService,
MeshId, Part.CollisionFidelity, Part.RenderFidelity
)
if Success then
Part:ApplyMesh(LoadedMesh)
return true
end
return false
end