Foliage Paint Tool is a Blender addon that replicates the Unreal Engine foliage tool for painting objects onto an object. It uses Blender's weight paint to bring that Unreal-style approach into Blender, letting you scatter any object onto any object, anywhere, by drawing the parts of the surface where you want that object to appear.
The addon is described as good for building environments, sci-fi scenes, and even simple modeling. In each case you place objects by drawing the areas of a surface that should carry them, giving direct control over where each scattered object appears.
Documentation is included, and a demo video is available for anyone who wants a closer look. Foliage Paint Tool supports Blender versions from 2.8 through 3.5, is distributed under the GPL license, and is listed as free here.