OpenCloudTools - Open Source Datastore/MessagingService Tools

can this app run on windows 7?

Not at the moment but I’ll look into it for the next release.

The core reason is that this app is built with Qt6, which requires windows 10 at minimum.

I’ll see if I can get another build put together with Qt5 which should run on Windows 7/8, but it may take a bit of time to get ready.

3 Likes

Never mind, I was on the wrong version, wish it auto-updated or have something alerting me that it is a new version that I need to reinstall. Great work so far! I’ll be using this a lot…no more Roblox studio.

Upon further use, deleted data doesn’t delete itself from the https://i.imgur.com/9tTzhXV.png, it will just give you an error that it is not found, and there’s no way of knowing if a key actually exists in the datastore. As well, if I have an array like https://i.imgur.com/arQ2N45.png, it’ll be impossible to try to edit data in this and a nightmare.

Unfortunately deleted entries will stick around in the list for up to 30 days due to the way the Roblox API works. What happens is that after an entry is deleted, the key will still be listed until the last non-deleted version has aged out, which happens 30 days after that entry was last updated. I would love to not list deleted keys but that isn’t possible right now.

About the issue with editing the json. Is there something that would make that easier? Large, deeply nested json structures can be annoying to work with, but if that is your data format then I’m not sure what can be done about it from within the app.

Once again, a new release is here.

First, a few notes about the different files available:
Win-Qt6 is the build users of Windows 10 and newer should use.
Win-Qt5 is the build users of Windows 7 and 8 should use.
Mac supports recent versions of MacOS but I’m not actually sure which. To use the mac version you must run xattr -cr /Applications/OpenCloudTools.app in the terminal after installing to make it runnable.

Big features:

  • Added support for bulk deleting.
  • Added support for hiding datastores.
  • Finalized sqlite dump format and removed warning
    • The new format is the same as the old one with an additional data_bool column that is only populated for bools

New features:

  • Added support for double-clicking in the API key list window
  • Added context menu to copy URLs from the HTTP log
  • Upgraded Qt to 6.3.1

Also some other minor fixes.

2 Likes

This is an amazing tool! Can’t wait to use this for my projects :smiley:

Quick question, are you planning on expanding this program to work with other opencloud systems like Place Management and future ones?

I do plan to support more APIs as they become available, in particular access to OrderedDataStore and MemoryStore seem inevitable.

I’m also open to supporting some other parts of the API, but wasn’t planning on supporting place management, at least in its current form.

Right now as I understand it the only thing that API can be used for is place uploading, but I don’t think that is a very useful feature on its own. When anyone makes a place file, they almost certainly made it in Studio, and could very easily upload it through Studio. The other case is people generating RBXL files with Rojo, but for users like that who want to upload as part of some CI/CD pipeline, I assume they will write their own API integration.

So I’m open to it if people want it, but it doesn’t seem like a feature that would be useful to anybody at the moment.

1 Like

Does this software have a CTRL + F type feature where you can search for keys from every data store? If not I am suggesting it

I hadn’t planned to but that sounds good to me. This is already sort of possible in that you can download the datastore and search through the sqlite file, but having a dedicated interface for quick searches would definitely be an improvement.

I can add search as another operation in the bulk data tab. Something that can let you search all datastores by key type and contents.

Another new release is here, this one brings bulk undelete and a few other goodies. Download it here on github.

Release notes:

Win-Qt6 is the build users of Windows 10 and newer should use.
Win-Qt5 is the build users of Windows 7 and 8 should use.
Mac supports recent versions of MacOS but I’m not actually sure which. To use the mac version you must run xattr -cr /Applications/OpenCloudTools.app in the terminal after installing to make it runnable.

Big Features:

  • Added bulk undelete
    • This allows you to scan one or more datastores and restore the most recent available version of all deleted entries. Note that this will not work for 100% of deleted entries because there may not always be an old version available.
  • Added resave option to bulk delete
    • With this option enabled, each entry will have its current contents resaved before it is deleted. This will make sure the entries can all be undeleted for the longest possible amount of time.

Minor features:

  • Added About menu with a link to this github repo and build information
  • The datastore entry list now has a right-click menu
  • Bulk delete will now print a summary of how many entries were deleted at the end
  • Added tooltips to bulk data buttons

Bug fixes:

  • Versioned entries are now sorted by version id rather than timestamp
  • Fixed a memory leak that occurred when opening right-click menus
1 Like

Once again, I am here with a new release. Download it here.

I also updated the OP this time so it has current information.

Win-Qt6 is the build users of Windows 10 and newer should use.
Win-Qt5 is the build users of Windows 7 and 8 should use.
Mac supports recent versions of MacOS but I am not actually sure which. To use the Mac version you must run xattr -cr /Applications/OpenCloudTools.app in the terminal after installing to make it runnable.

Big Features:

  • Added bulk upload
    • This feature allows you to upload data that was previously downloaded through the Bulk Donwload feature. This means you can use bulk download and upload in combination to create backups and restore from them or move a lot of data from one universe to another.
  • Added time filter for bulk undelete
    • This is to help clean up if you accidentally delete data. This lets you do operations like “Restore data only if it was deleted in the last hour” so you can recover from your mistake without bringing back a bunch of old, intentionally-deleted data.

Minor Features:

  • Allowed selecting multiple entries in the “Explore Datastore” panel for mass deleting.
  • Added a context menu to the “View Versions” window.
1 Like

Because I can see that you have all the right permissions in that screensot, that problem could be caused by either:

  • The universe you selected when creating the key does not match the Universe ID you typed into Open Cloud Tools.
  • You copied the api key incorrectly. That same error will happen whenever you use an invalid API key.

My advice would be to delete the key both on the website and in the program, then make a new key and be very careful about the universe you select.

Also be sure you are putting in the universe id, not the place id. If the number starts with a 9 it is probably a place id and won’t work. See a little past 30 seconds in the video in the OP to see the webpage where you can find the universe id in the URL. You can get to that from the main ‘Creations’ page on the creator dashboard.

A new release is here again, this time with support for MessagingService. I’ve added a video to the OP demonstrating how this works.

Download it here.

Release notes:

edit: It has come to my attention that I forgot to include a sicknasty midi in the new video. I apologize for this oversight and pledge to do better in the future.

2 Likes

Is there a method of running sent messages through the chat filter?

I ask because messages you send are unfiltered.

As far as I can tell Roblox isn’t really set up for that.

The only way to filter text is to call TextService:FilterStringAsync, which requires a userid that the text came from. Due to the nature of MessagingService, you don’t have a userid to provide there so you can’t filter it.

So to put it simply, Roblox is trusting that you won’t send messages that are normally filtered?

Yeah, realistically only a developer should have access to this, and a dev would already have the ability to put anything in their game. This isn’t something you should be letting any random person use.

That is a good point, though someone could give another person their api key, and then that person could mess around by sending incredibly tos-violating messages in the provided game.

Yep, it’s on you to only give a key to people you trust.

1 Like

Good to know. I do thank you for adding MessagingService to OpenCloudTools since it can be extremely useful for running code without being in game.