Scattering objects on surface and control their density

I managed to make a blueprint that randomly scatters the chosen objects along the surface of the ground. The objects even align to the angle of the surface. The problem is that sometimes the objects spawn too close to each other or even overlap. When a random location gets assigned, I want to be able control how close this point should be from the others.

Basically Im recreating the functionalities of the foliage editor in unreal which I cannot use for this project, because foliage uses instanced meshes which is not supported by mobile devices.

Hope someone knows the answer. Thanks!!

You could either make a for loop to check in an existing array of point to see wether the point you’re creating is within a radius of already existing points.

Or another idea would be to base you scatter on a procedural noise texture instead of a random in bounding box. But I’m not sure exactly how it would work, maybe start at points with value 1, then 0.94 and so on. The increment mixed with noise frequency would kind of be your min distance beetween points.

Or use a custom scatter .otl tool from houdini with houdini engine for unreal ?

Do anyone tryed to modify this blueprint with texture (for example black and white) for scattering. I have custom scatter made with houdini but baking is a nightmare - it is so slow. It should be simple solution how to spawn(distribute) static mesh by texture mask. Maybe someone have some solution?