This tutorial will walk you through using GET v1/creations/get-assets to find and recover your unions if they get lost / corrupted / invisible.
This method relies on trial-and-error, and works best if tried immediately after you’ve lost a union.
When a union is created and (it, or its place) is saved to Roblox, a new SolidModel asset is created. The union instance in your place is then linked to this asset.
This tutorial is motivated by the sharp increase in “invisible unions” that I’ve been seeing lately. The invisible union issue appears to be caused by union instances becoming “un-linked” with their SolidModel assets, so the method in this tutorial attempts to “re-link” these unions.
Because SolidModels are not normally visible or accessible to developers, this is kind of tedious.
Requirements / Considerations
This method will only work if your union existed in a place saved to file, published to Roblox, or was published itself as a model.
This method will not work if you lost your union without saving it or your place.
This method may not be feasible if you’re trying to recover a very old union, or you created many unions after creating the one you’re trying to recover. This method relies on trial-and-error, so there may be too many results for you to look through.
- We will use GET v1/creations/get-assets to get a list of SolidModel assets created on our account
- We will try replacing the AssetID embedded in a dummy RBXMX union file with each SolidModel AssetID, and import the file into Roblox Studio until we find the desired union.
- We can then separate and re-union the recovered union to fix its bounding-box and physical information.
Unfortunately, if you’ve already tried other recovery methods and this method fails for you, I don’t think there’s much else you can do to recover your work.
1. Fetch a list of your created SolidModel assets
- Enter 39 as the AssetType.
- This is SolidModel’s AssetTypeId, which is undocumented on the DevHub. This value can be found by inspecting web requests on the website.
- Leave IsArchived blank.
- Leave GroupId blank.
- Leave SortOrder as “Asc”.
- Set Limit however high you think you’ll need to find your union.
- You likely won’t need to go higher than 25 if you’re trying this tutorial immediately after losing a union.
- Leave cursor blank (for now).
- Enter 39 as the AssetType.
Send the request and keep the results for Step 3.
If you need more results, the response will contain a cursor string
You can enter this string into the parameters list in the Cursor field and send another request to get the next page of results.
The results you get back from this request will be used to find your union.
2. Create a union to test SolidModel AssetIDs with
Open Roblox Studio and create a new Baseplate
Create a union, anything will work.
Save this place to a file on your desktop
- This step triggers Roblox to upload a SolidModel, and will set up the instance so we can easily implant the SolidModel AssetIDs we found from the previous step.
Right click on the union you created in the Explorer window and select
Save to File.
Save this union as a RBXMX file on your desktop.
- This is an XML format, and is human-readable.
3. Test each SolidModel AssetID
Open the union RBXMX file you saved earlier in a text editor (Notepad should work, but I’m using Notepad++).
Find this line:
For each SolidModel AssetID returned in Step 1,
Change the AssetID in this line and save the RBXMX file.
Drag the RBXMX file into Roblox Studio and see if it looks like the union you’re looking for.
Move onto the next step once you’ve found your union.
4. Regenerate the union to fix physics
Once you’ve found your union, you’ll notice that it does not behave physically in the way you’d expect, and even has an incorrect bounding box. This is because unions store their physical information with their instance, and not with the SolidModel.
Thankfully, unions remember what they’re made of, so you can fix this pretty easily.
- Separate the union.
- Re-combine the union.
You should have now recovered your lost union.
Let me know if you run into any trouble following these instructions so I can improve them.