I am building a realistic ocean using a MeshPlane and Gerstner Waves for vertex deformation. Since this isn't Terrain Water, I need to manually handle the player's buoyancy and swimming state.I need to figure out how to efficiently handle Height Sampling so that I can get the wave's Y-position at the player’s exact X/Z coordinates, ensuring the character 'bobs' naturally with the water math. I also need advice on the best way to handle State Management, specifically how to force the Humanoid into a swimming state while correctly triggering attributes like IsUnderwater or IsSwimming for animations and effects. For the Physics, I’m currently using a VectorForce (or BodyPosition) for buoyancy, but I’m struggling to balance it so that it keeps the player at a consistent SURFACE_OFFSET while still allowing them to Jump at the surface without being pinned down. I'd also like the system to support diving and rising based on player input.
Additionally, does anyone know how I can adapt this logic to make Boats and Ships sit correctly on the water? I want them to follow the waves realistically using multiple float points instead of just a single center part.
** You are now Level 1! **