Using raycasting for touch detection?

I’m going to be making a bunch of touch detection systems:

  • Touch detection for going to new zones
  • Touch detection for shops
  • Touch detection for when you’re near a player so you can interact with them
  • Touch detection to detect if you’re in a PVP area or not

Would constantly casting a ray down(because for reasons beyond my knowledge, Roblox destroys the ray immediately afterwards) be a good way of handling touch detection? One script that has a bunch of ifs checking certain names and then acting accordingly to those names.

.TouchEnded is not a method I want to use, please do not recommend this.

Alternatively I was considering a magnitude script that gets the distance from the player and will act accordingly when within range.
Open to any suggestions.