--TODO: maybe some glitches? minetest.register_on_joinplayer(function(player) local meta = player:get_meta() meta:set_float("speed", 1) end) minetest.register_globalstep(function(dtime) for _,player in ipairs(minetest.get_connected_players()) do local meta = player:get_meta() local name = player:get_player_name() if minetest.get_node(player:get_pos()).name == "default:water_source" then meta:set_int("in_liquid", 1) else meta:set_int("in_liquid", 0) end --print( meta:get_int("in_liquid") ) local tempmeta = meta:get_int("in_liquid") if tempmeta==1 then if math.floor(player:get_physics_override().speed*10)/10 ~= 0.4 then meta:set_float("speed", player:get_physics_override().speed) end player:set_physics_override({ speed = 0.4 }) elseif tempmeta==0 then if math.floor(player:get_physics_override().speed*10)/10 == 0.4 then player:set_physics_override({ speed = meta:get_float("speed") }) end end end end)