Here's how the beginning of my swimming script goes:
Humanoid.Changed:connect(function(Property)
if not Root then
return
end
if Root.Position.Y < WaterHeight then -- and not Debounce
Swimming = true
local BodyForce = script.SwimPosition:Clone()
if not Debounce then
Debounce = true
BodyForce.Parent = script.Parent.HumanoidRootPart
BodyForce.MaxForce = Vector3.new(0, 9e9, 0)
Debounce = false
end
IdleController:Play()
for some weird reason, when I drop into the water I sink then I rise up really fast. I don't see this in any other games. Examples such as:
My Game: https://gyazo.com/fff02da83a89b6595d9b2fdddd3ce1a1
Other Game: https://gyazo.com/36bad857ca4b4c1ae0e5c8628c45ac92

2 comments
Should I use touched function instead? Or keep the Changed?
Just used Touched function. For anyone who is reading this and going through the same problem used Touched. Touched Function: https://gyazo.com/87b8aa946ea1b6f0fadd0d67b303aa26