You can go to any range weapon holdable blueprint and in the class defaults search for Range Surface Sounds. To add a new surface sounds for that specific range weapon follow the video below. This is the sound that will be played when the range weapon hits a material with the surface type.

In the example above the range weapon will now play the build sound when its hits a surface that is using the PM_Body physics material. Using this system you can set a specific sound for every surface type.

To learn more about physics materials and surface types you can find the Epic documentation linked below. But you can find and create new surface types in the Project Settings just search for Surface. Once you have added a new surface type you can set that in a physics material.

https://docs.unrealengine.com/en-US/Engine/Physics/PhysicalMaterials/PhysMatUserGuide/index.html