I'm using David Newton's custom platform movement. In my game I need the players gravity to change when entering water, so when hitting the water the players fall speed slows. Then on the bottom of the water the horiz and gravity loops move the player much more slowly.

I've kind of got some sort of swimming working. I made duplicate groups of the gravity and horiz loops and have these activate when the players detector is overlapping the qualifier I set for water zones. The old gravity and horiz groups are disabled until the player is "out of the water".

While this works for walking and jumping in the "water" I can't get the slow falling into the water bit right.

I set the players Y position to always Y+1 but this means the player passes through the ground and off the screen. Also I can't get out of the water as soon as the players collider is outside the water qualifier half of the collider is still in the water so the events conflict and the player just stops moving entirely.