How to create random imperfection(dirty/scratch) material

I want to make some guns for my new game.
But the weapons dropped by the enemy all have the same scratches and stains.
Is there any way to make each weapon carry different stains and scratches and be credible, such as fewer scratches on the handle position and more stains on the corner position.

Any one know how to do that? Any tip or key word? Video tutorial is better.

You can use noise textures in the material to add scratches and grease etc, but it will evenly spaced over the mesh.

If you want wear around edges and used areas, you need to make a special texture for the wear, in something like Blender, and import it back into the engine.

But, on my travels just now, I did also find a procedural way of doing this in UE