I am Currently Working on just making a player swim without terrain water, however it doesn’t seem to work properly and the character just sinks rapidly.
Code:
local humanoid = script.Parent.Humanoid
humanoid:SetStateEnabled('Running',false)
humanoid:SetStateEnabled('RunningNoPhysics',false)
humanoid:SetStateEnabled('Climbing',false)
humanoid:SetStateEnabled('GettingUp',false)
humanoid:SetStateEnabled('Jumping',false)
humanoid:ChangeState("Swimming")
Here you go. I think Swimming state only changes your animation, and the terrain water is another whole script. As stated in the post above, you should use BodyVelocity to control your movements in your non-terrain water.