How to "DataStore Backups & Rollbacks"?

You can read on it here: https://create.roblox.com/docs/en-us/cloud-services/data-stores/versioning-listing-and-caching#versioning

That is an OpenCloud url, it’s used by external programs to access Roblox datastores. It is harder to use, as you have to write the program yourself or get a program written by someone else. There doesn’t seem to be an alternative (unless maybe it is in the developer hub as a button?)

In luau, it looks something like this. This is using the lune luau runtime

local net = require("@lune/net")

local Key = "DO_NOT_SHARE"

local Result, Error = net.request({
   url = "https://apis.roblox.com/cloud/v2/...",
   method = "GET",
   headers = { 
      ["x-api-key"] = Key
   },
})

if not Result then error(Error) end
if not Result.ok then error(Result.statusCode .. " " .. Result.statusMessage) end

local Body = net.jsonDecode(Result.body)

Information about the snapshot OpenCloud endpoint is here

This tells you how to format the request, and what it returns. It uses curl syntax for the request (which I am not familiar with), but you can still infer the information about it fairly easy. Dunno what -L and -X is, but don’t care


This is a post request, (as marked by POST), so in my code snippet, you’d replace method = "GET" with method = "POST" (this describes what the request is), -H means header, so you’d add ["Content-Type"] = "application/json" (this describes what is the format of the data you are sending), --data is the body of the request I think, so in lune it would be a new field alongside url, method, …, body = {}. Here it is an empty table, because you aren’t sending anything, but maybe they are future proofing the method or something?

Yep! This was announced here. Note that only some OpenCloud endpoints can be used from within roblox, and it doesn’t seem like the snapshot endpoint is whitelisted?

Using OpenCloud endpoint often requires learning a new programming language, such as python or javascript (because lua doesn’t really have good networking libraries on the internet, and I HAD SO MANY ISSUES WITH LUAROCKS AND LUASOCKET AAAAAAAAAAAA), but with lune, it’s not too hard to get things up and running. Once you have lune running, it’s luau, so that doesn’t change, the api is a bit different (net library instead of HttpService), and you have to learn a bit the http protocol (which is on the simpler side when it comes to the world of overcomplicated software lol).
A recommendation, and something that has helped me learn this kind of stuff, is using Ai to ask questions. I ask it questions that help me understand the logic behind things, and it is quite useful at that. But avoid using Ai to write you everything, unless you don’t want to learn… (but good luck debugging afterwards

2 Likes