I solved something similar to this recently (here)
local Players = game:GetService("Players")
local part = script.Parent
part.Touched:Connect(function(hit)
if not (Players:GetPlayerFromCharacter(hit.Parent)) then return end
local Player = Players:GetPlayerFromCharacter(hit.Parent)
Player:WaitForChild("Stats").Water.Value = 100 -- Maybe try waiting? FindFirstChild should work though
end)