I think vectors are inherently broken in 8behavior. Here is why:
github.com/Scirra/Construct-bugs/issues/6323
And here's another example:
Two almost identical events produce different results. Basically, it’s hard to make an object move in the exact direction and speed you want just by setting vectors - especially when it’s close to max speed and acceleration/deceleration are involved.
The boolean "in water" sets correctly.
Not really. Remove "every dt" and "trigger once" conditions, they are not needed. And the "trigger once" will cause bugs with multiple entities.
Also, why are you testing at 10 fps? Construct won't work correctly at framerates below 30.