Are you referring to just a regular BP of the Actor/Static Mesh class? To my knowledge, there is no benefit in terms of performance. Each mesh is still treated individually in terms of shadows, LODs, mesh draw calls, occlusion culling, etc. However, within a BP, you can place your meshes as Hierarchical Instanced Static Meshes that treats them similar to foliage(1 mesh drawcall, individual shadows and LODs). Native Unreal doesn’t cull the foliage HISMs that well though(per landscape component chunk, which can be wasteful) so I want to say it’ll be a little better as a BP HISM.
You can use a BP using instancestaticmeshes which batches draw calls and could add controls as such how your objects spawn. Foliage tool is also fine but can act funky sometimes. You can also combine both methods for e.g. using BP to quickly scatter bigger or important objects and foliage tool for more generic scatter. Using BP you will have slight extra room to control things.
I don’t know the exactly code of the FoliageType,but when I used Nsight to analysis It seemly to be a dynamic instanced mesh which means they calculate the instanced group each frame.The closed meshes each in a single draw,distant meshes grouped together as one or few instance.And they do support frustum culling but occlusion culling not work.And anybody know that why Hierarchicial instanced mesh don’t calculate LOD each unless the TAADither is on?