How to make water always flow downward?

What I’m referencing comes from this video: Off Camera Secrets | Breath of the Wild - Boundary Break - YouTube

In the video (about 2 minutes in) it shows that breath of the wild has a giant water plane under the actual landscape, and is brought up for lakes and ponds and rivers. Here’s what it looks like:

As you can see this has lots of benefits, including the ability to sculpt and LOD easily. However, it requires that water always flow downwards. A panner node would just move in one direction, which would mean moving uphill in some cases. What I am looking for is a way to pan a texture downward based on world UVs. Any help at all would be greatly appreciated. Thanks!

Downward flow vector is (0,0,-1). Transform it from world space to tangent space, and that will give you a speed vector you can use with panner.

Okay I tried that just now but I had two problems: 1. The texture would move uphill at some points for no reason. 2. This is unidirectional; if left forever it will clump the texture up at the base. How can I solve these? Thanks for the help.