Couple of things…
If your testing this in studio then you should be aware that the game usually closes before it’s had time to run the player.removing code so it’s best to test DataStore saving in an actual published game or use BindToClose to save your data for testing.
Run a test server with one player (don’t just click the test button), and disconnect the client. The server side window should stay open, you will be able to see if there are any errors on save. Let me know how that works.
Sorry to not have a better solution yet, but diagnosis is key
Oh, this may be the issue but I am not sure. You’re defining the quest completion with a table that only has one value. It would be easier (and may fix your code) to define the quest as only the number.
i.e ["Open Shop"] = 0
vs. ["Open Shop"] = {0}
If you are currently attempting to do something along the lines of: LoadedValue = Data["Open shop"]
calling LoadedValue will return the entire table. You would need to use LoadedValue[1] to access only the number value