I had this same wish. However, unless there is (I don’t really know if there is or not) some really complex code to make a part simulate water, then I am afraid you cannot really make a swimmable part. Conversely, a scripter told me that some times it’s easier to “fake things.” So, the only I currently know you could try to make swimmable water is by creating some terrain water and surrounding in with a part (can-collide off). Hope this helps!
A lot of games have this, maybe they did that approach or maybe they actualy made a swimmable part but i don’t know. I will try this method out though, thank you!
edit: This actualy works pretty well if you don’t mind the player being able to see the actual water when swimming underwater!
They do that by bringing the player to the top of the part with BodyGyro/BodyVelocity… I think those 2, anyways, they play an animation over the falling animation to look like swimming. (Most games dont allow free-floating within the part because thats difficult)
Can’t you do something with RunService.Stepped like
local RS = game:GetService("RunService")
local touchingPart = false
local player = game:GetService(“Players”).LocalPlayer
RS.Stepped:Connect(function()
if touchingPart then
player.Character.Humanoid:ChangeState(4)
end
end)