DataStores have limits and you should not be saving data each time a value changes.
Try saving on PlayerRemoving and game:BindToClose()
Here’s a good post by @sjr04 about when to save data.
Edit :
@Winky_y
No, in case of DataStore errors or poor connectivity, requests to DataStores can fail; that’s the reason wrapping them in protected calls is ideal for preventing Data loss, you can use them to retry saving data if an error was encountered.