Open Cloud Upload Support for More Asset Types

Hi Creators,

We’ve heard your feedback that the Open Cloud Assets API is too restrictive in what asset types and file formats are allowed to be uploaded. Today, we’re enabling uploads for .rbxm models and animations, as well as Roblox formatted meshes.

We’ve added support for these file types primarily to help you re-upload native data you previously downloaded using Roblox APIs or Roblox Studio. Please note that .rbxm or mesh files edited externally might not upload successfully or function correctly due to additional processing done by Studio.

If you are trying to import 3D assets in standard formats, use the 3D Importer in Studio or upload Models using the Assets API with either an FBX or glTF file.

For more details on how to use the Open Cloud Assets API, please visit our usage guide and API Reference pages.

As part of this announcement, we are planning to deprecate the following legacy endpoints after 3 months:

  • https://data.roblox.com/Data/Upload.ashx
  • https://data.roblox.com/ide/publish/UploadNewMesh
  • https://data.roblox.com/ide/publish/UploadNewAnimation

We ask that all users move from these user-cookie based endpoints to the Open Cloud API, which will provide stronger security and stability.

Let us know if you have any feedback. Thank you!

69 Likes

This topic was automatically opened after 11 minutes.

I figure the answer is yes but I thought I would ask: this includes support for uploading plugins, yes?

6 Likes

If rbxms are now supported - is there anything we can’t upload? Really excited to see we’re expanding this though - thank you!

4 Likes

For now, we don’t support uploading Plugins via OpenCloud API Key. We are discussing adding this internally but don’t have a timeline yet. You can use the Assets API with user cookie authentication if needed.

4 Likes

That’s a shame. It’s one of the things people use Rojo’s upload command for so we still won’t be able to drop cookie upload support.

6 Likes

nooo, why og endpoint gets removed?

1 Like

All functionality on the legacy endpoints has been migrated to the Assets API. The Assets API provides a more stable and secure solution.

3 Likes

@ThirteenDucks Are XML files supported for Animations and Models? If so, can that be documented?

3 Likes

Yes, .rbxmx files are supported for both Models and Animations. Thanks for the callout, will update the docs to include these.

5 Likes

Are you sure? I tried to migrate Asphalt over just now and I’m getting an error saying they’re not.

❯ cargo run sync
    Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.09s
     Running `target/debug/asphalt sync`
[WARN  asphalt::sync::perform] Failed to sync asset test_model2.rbxmx: Failed to upload asset: 400 Bad Request - {
      "code": "INVALID_ARGUMENT",
      "message": "Creating Model from a model/x-rbxmx file is not supported yet."
    }
[WARN  asphalt::sync::perform] Failed to sync asset test_animation2.rbxmx: Failed to upload asset: 400 Bad Request - {
      "code": "INVALID_ARGUMENT",
      "message": "Creating Animation from a model/x-rbxmx file is not supported yet."
    }

Am I misassuming the mime type?

1 Like

Oh, nevermind, sorry! I’m replying too quickly.

Looks like we still use x-rbxm and you guys figure out the format on your end. Cool, less work for me!

3 Likes

I’d be interested if you can expand on “.rbxm files edited outside of Roblox Studio(https://create.roblox.com/docs/studio/setup) might not upload or function.”

What sort of editing would break them? Would an RBXM extracted from a place that had been saved by Studio using Lune count as ‘editing’? Are you referring to the processes that generate materials etc? We generate RBXM from parts of our place via Lune and upload them via Upload.ashx then insert them via InsertService, would this process still be supported (it currently works fine).

1 Like

That’s meant as a general catch-all. Since .rbxm is a proprietary format, we cannot guarantee that external tools modifying them will work as expected. We’re aiming to maintain parity between the endpoints, so processes that use Upload.ashx successfully should be able to use the Open Cloud Assets API as well. Please let us know if you encounter any issues!

3 Likes

Hi, I’m one of the maintainers of rbx-dom, the parsing library for Roblox files that Lune uses.

Roblox has a lot of invariants that need to be upheld in their file formats. A lot of the time, these are communicated in advance to us so that we can react accordingly or they’re not a huge deal, but sometimes those invariants are inadvertently broken and thus files emitted by Rojo and Lune do not entirely work as intended.

It’s also possible to just outright break things by changing properties to unexpected values or due to bugs in our parsers.

We try to handle all of this invisibly for consumers of the library so that you don’t need to worry about it, but sometimes things break. See: When saving place file, some CustomPhysicalProperties have been reset to Default which is relatively recent.

Roblox has historically been hesitant to commit to stability of their files (they would rather be able to break things and improve them than be trapped by compatibility requirements). When I asked at RDC, the reason an endpoint for uploading models hadn’t been added was for exactly that reason: rbxm is messy, and they didn’t want to commit.

I imagine this is just Roblox covering themselves if they break something. :slightly_smiling_face:

6 Likes

This is great news! My workflow uploads model assets with Upload.ashx and I’ll be migrating to the new endpoint.

1 Like

It sure looks like great news, praise be!

Is it possible to upload with vertex colors (.gltf/.glb and for .fbx) using this API?

It should be possible. This sample .glb file with vertex colors uploads as expected. If you need to modify the import settings, we recommend using the 3D importer.


I think Roblox is transforming my collision mesh files wrong because in Blender, it aligns perfectly. I’m uploading .fbx files. 1 fbx file with multiple meshes same for the collision meshes 1 fbx file with multiple collision meshes. Been looking for months on how to fix though. I am coding in C#

1 Like