I’m not quite experienced with UI, so there might be another way to do this.
Yet for the progress circular UI due to Roblox Studio not being so flexible with UI there’s a good website that does it for you, so you’ll simply have to change the image based on the rate you set.
- The tradeoff being that depending on how smooth you want it to be, the more images required and consequently more work (somewhat)
For the distance script, you’ll need to check for the parts’ magnitude, relative to the player, here’s a good starting source: Getting Magnitude. And later when the part is a determined distance from the player, you change its position
Note: consider the magnitude as a distance measured in studs