Hi, @SupportiveEntity, thanks for the reply.
I’ve tried just implementing what you showed in your third solution, but it doesn’t work… the character just goes back to walking mode instantly, there’s no buoyancy or friction… I guess what you meant by “create a custom movement style” was to actually implement a movement mode, but I really wanted to take advantage of the built-in swimming movement mode. Looking at the code I saw it actually takes a lot of information from the physics volume, so I can either modify the PhysSwimming() function to work without the physics volume (but I would need to code all the information gathering like depth, surface position and normal - remember the waves - and so on and so forth) or go back to the “place all the physics volumes by hand solution”, but that’s not only tiresome, it also ignores the waves (the ■■■■ WAVES!).