Normal map issue showing artifacts and green areas help!

So I’ve decided to bake the normals of my high poly gun model to the low poly one but I get bad results. This rarely happens and most of the time its because of extra vertices and normals being flipped. However I checked all that and I still get this result, similar basically. Anyone got any ideas of how I can solve this? I just got xnormals and the same thing happens with a different result. Maybe it could be the faces beneath certain areas?

here are some pics(High poly, low poly, and normals):

What does it look like when rendered? That’s the more important point.

Here is the high and low poly render, its fine here but if I applied those normals which I have tested already it looks pretty ugly and the screws don’t even get rendered on the low poly. Everything was a separate mesh but I joined it all together after. The clip is separate from the rest.

Alright so I tried everything I could and I learned I can explode a model so I can separate each of the separate joined pieces together to bake the normals better. It still did not work and I even used a cage with xnormals and got the result below. I’m not sure what else do to anymore and it took me some time to make this model. Maybe others can take a look at it and let me know whats wrong. I have the .blend file here as well. Please help, I would appreciate it and I feel like I’m doing everything right but its just not working for me…

3d model:

you dont have the objects separated far enough…

Thanks for the tip, I manage to get a bit more of a better result but it still has strange artifacts and some green areas. I tested it on the low poly and it doesn’t look that great, especially the screws. I guess I better search for a proper gun modeling tutorial if I attempt to do this again. Its so much easier to do this stuff with things like swords and other melee related weapons but when it gets more complex and has separate pieces it can become a nightmare. Xnormals some how game me a worse result but I think its cause the cage I used which was just the low poly mesh scaled up a bit in areas to get most of the details.