Does PlayerRemoving work in all cases for saving data?

Hey there! So recently I was thinking things over, while the traditional data store script uses a Players.PlayerLeft (Not player left but you get the gist) to activate saving the value, the problem as I see it is if internet is cut (intentionally or unintentionally) then the players latest data won’t have saved. For instance taking something out of backpack, handing it over to someone, then cutting their own internet before the autosave happens if there is one.

So basically my question is, does the leave function work in all instances or would it be better to save on Value.Changed, which would create a lot more inbetweens to the datastores, but would it cause a lot of lag?

See:

Never run DataStore functions with a Changed event. You will easily hit limits.