Ive been trying out a bunch of ways with this but the only one that worked was putting an invisible block over the water. i was wondering if there was any other ways to do this. Please help! :)
Hey there TeaWithMee! Sorry to be the bearer of bad news but, the only way to detect when a part hits water terrain is with an invisible part (like you said you did). You probably already know this I'm going to put it anyway just incase someone else doesn't, preferably with CanCollide disabled and leaving CanTouch enabled (this is important if CanTouch isn't enabled it won't read that it's touching).
Here's a helpful link that includes all the functions and events (plus everything else) of terrain. https://developer.roblox.com/en-us/api-reference/class/Terrain
So in short it says "Determines if the part will trigger Touched
/TouchEnded
events on other BaseParts
with TouchTransmitters
" to continue on this it also says "Fired when a part comes in contact with another part".