It is reliable, as client-sided changes won’t replicate to the server even if the objects were replicated from the server in the first place (unless Player objects have some weird functionality that I’m not aware of). The most reliable method of storing data really just depends on your preference, although DataStore2 is probably the most reliable, simply because it is the most tested module.
You can honestly store that data wherever you want. Even though the client can change it the server won’t see the change. If I have 100 coins and give my self 1 m and buy something for 70 I will have 30 left so the 1 m will get removed
Depending on what you’re doing either DataStore2 or the new ProfileService by loleris. Both are good modules to use and would be something to look into. You may not even need something as intense, so to say, as those and could get away with creating your own basic datastoring. At the end of the day, it all comes down to the developers needs/wants.