Making things paintable is not as difficult as it may seem. You can use the existing materials, or create your own implementation.
Making use of the existing materials used by Satisfactory is the easiest way to make your models paintable. Simply use one of the paintable materials on a static mesh in your blueprint and the game will find it and apply the correct materials with the paint gun. Its important that when importing a mesh you do not import and use new materials. Instead point your meshes at the correct materials or your material instances already in the project.
You can implement the ability to paint in any object by implementing the
IFGColorInterface. Simply override the given functions with the functionality you need and you’re done. Consider asking about this on the Discord or forums if you need help.
The paint gun will now interact with your object, which is done via the reflection system.
Behind the scenes, the standard texture gets implemented by the
FGBuildable class and changes the primary and secondary material parameters of the material.