OrderedDataStore update - add timestamp

As of right now, OrderedDataStores are unusable for most situations for leaderboards except time played.

Lets say you have a leaderboard for people with top badges or top rebirths. The way OrderedDataStores currently work is if you get to the top first, you are at the top. If someone else gets to your exact count, and they got there second, they are now in first place on the leaderboard.

This is fundamentally broken behavior. It defeats the purpose of using an OrderedDataStore for anything other than time played for competitive leaderboards.

1 Like

At this point, most reasonable addition would be adding metadata to OrderedDataStore, just like other Datastore types have.

Best way to solve this as of now, is following structure:

  • OrderedDatastore, with key of UserId’s and value of dominating value (ex. Total points/XP)
  • Normal Datastore, with same name as OrderedDatastore. Keys being UserId’s and value being a dict with all metadata you need.

Above approach works, but it requires additional calls to normal datastore, eating your budget.

2 Likes

Right now I’m encoding the value with the timestamp, and a huge number plus the actual value which is annoying to have to do.

2 Likes