That is literally what this is doing but without the problem of the trigger not happening because the player is moving too fast.
If you only want to trigger on the 50, 100, etc... all you need is:
distance(Touch.X, Touch.Y, StartX, StartY) % 50 = 0
However, if the person moves their finger 3 pixels per tick, this is what will happen.
Touch starts at x =1 y = 1.
Drag to the right so x increases.
At tick 18, system registers x = 49.
At tick 19, system registers x = 52.
The system never sees the touch x = 50.
This isn't a hypothetical either. It is guaranteed to happen. And, this is even considering the system is only recording position in integers. Unfortunately, the system doesn't just register position in integers. You could get a value like 50.00000000000001 instead of 50 and it would not trigger your event.
Take a look at this simple sample.
drive.google.com/file/d/1ATDZyF5o97m_T86IXhtoVZAH6SOtKyGi/view
If you click and drag in the green, you will get a particle effect every 50 pixels. It uses the exact equation I gave you in my previous post. If you click and drag in the red, you MAY get a particle effect every 50 pixels if the distance happens to land exactly on a multiple of 50 during a tick. This uses the distance only (but I did change it to just get the integer value to remove the decimal issue).
Remember, timing and positioning are also heavily dependent on the system. The slower the system, the less precise therefore, more likely to miss detecting a player reaching a single pixel.