Some examples of procedural generation I've used for two different projects and also for demonstrations.
Spline based procedural plant placement system which uses Hierarchal Instances for optimization. Uses Yaki Studio's noise plugins to control placement.
The boulders are tagged to allow meshes to attract or repel plant meshes.
Blueprint driven tool that places non-intersecting static mesh actors that checks for cliffs and concave surfaces.
Took about 4 hours of work, created as a class demo.
Uses line traces aka ray casts to determine if they are hanging off of cliffs. Uses percentage of bounds.
Has a built in solution for concave surfaces to adjust clipping through use of more ray casting.
Example of different forms of actor placement: random, shuffle, mirroring and intelligent random placement (e.g. only 1 black & white queen, pieces cannot accidentally overlap, & grid snapping).