Identify latest *PUBLISHED* version of a game/place

In short, I’m trying to make a little note on the loading screen showing if a server is up to date or not.

To my knowledge, all the ways of checking the version on a game reflect all changes to the game regardless if they’re published or not (thread related to this issue)

So far I’ve looked at using:

  • game:GetService("InsertService"):GetLatestAssetVersionAsync(game.PlaceId) - Randomly generated number that is unique to each individual update regardless if published, I want only published versions
  • game:GetService("MarketplaceService"):GetProductInfo(game.PlaceId).Updated - An ISO 8601 formatted date based on last game update (just like what’s shown on the game page - See above linked thread on why this doesn’t work)
  • game.PlaceVersion - This only shows the servers local version. I’d rather not waste datastore reads and writes trying to sync the biggest number across all servers, and additionally this is only based off running servers (ie if no new server starts, this will be inaccurate)

As far as I can tell, there are no (documented) ways of checking the latest PUBLISHED version of a place, or ways of checking versions while filtering out unpublished changes.

I’m hoping at least one person here knows how to identify the latest published version of a game by any means. Or, alternatively, checking if a certain version is published (so I can check through multiple version numbers until I find the newest published one)

For me, the first option is working as you want.

game:GetService("InsertService"):GetLatestAssetVersionAsync(game.PlaceId)

It only changes when I Publish, not when I Save or enter/exit Studio.

However, your latter two options for me are indeed updating every time it’s saved or Studio is exited.

I’m still testing to see if I’m missing something, but can you verify again that GetLatestAssetVersionAsync is returning a different number each time you Save and not only when you Publish?

1 Like

I can’t verify it right now as I’m appealing a false termination, but for what it’s worth I ended up just making a datastore comparing with game.PlaceVersion in the end. It just re-checks the datastore every time someone joins (with a cooldown of 10 minutes, by default assuming it’s up to date)

1 Like