You can make materials smooth and metallic with the smoothness and metallic variables in their JSON files - but what if you wanted different smoothness or metallic amounts on the same material? That's where metallic maps come in!
To make a metallic map for a material, use a file called [file-name]_metallic_map, where [file-name] is the name of the file you're making a metallic map for. For example, the metallic map file for the rifle is rifle_metallic_map. Note that you do need the normal texture as well, so a file named "rifle" would also be required.
The metallic map uses the same UV map as the normal texture. The red channel of each pixel determines that pixel's metallic amount on the object, with 0 - 255 red being 0 - 1 metallic amount. The alpha channel of each pixel determines that pixel's smoothness amount on the object, with 0 - 255 alpha being 0 - 1 smoothness.
This is an example of an emission map used to make a skin for the shotgun, where the body is shiny and the barrel and handle are matte white.
This is what the result looks like:
This is what the Resource Pack folder looks like:
This is what shotgun_metallic_map.png looks like (the background is completely transparent, the dark checkers are just for visiblity):
Note how the white portions have an alpha channel value of 255 and a red channel value of 255, meaning for those pixels the shotgun has a smoothness value of 1 and a metallic value of 1, making it completely reflective, like a mirror. You can of course use different values in between 0 and 255 to change the amount of smoothness/metallicness, I just chose 255 because it was simplest for this example.
And then the normal texture, shotgun.png, is just a white square. I chose white because white is the color that reflects the most light.