OpenCloudService
Call Roblox's Open Cloud from a program: any endpoint, long-running operations, and the developer products of your experiences.
RequestAsync sends the credential in a header, sends Json as JSON and decodes the answer. Busy (429) and server (5xx) answers are retried up to four times; any other failure gives nil and Roblox's own error text, naming the path. Set Creator once so uploads know who owns them, and point BaseUrl at a local server of yours to stand in for Roblox while you build.
A service: write use OpenCloudService.
Properties
| Name | Type | Default | Description |
|---|---|---|---|
| Creator | Creator? | Who owns uploaded assets when an upload doesn't say: { GroupId = n } or { UserId = n }; with neither set, uploads error. | |
| BaseUrl | string | "https://apis.roblox.com" | Where every request goes, Roblox's own address by default; point it at a local server of yours to stand in for Roblox. |
Methods
| Name | Arguments | Returns | Description |
|---|---|---|---|
| RequestAsync yields | (method: string, path: string, options: { Query: { [string]: string }?, Json: any?, Body: (buffer | string)?, ContentType: string? }?) | (OpenCloudResponse?, string?) | Sends one request and waits for the answer: Status, decoded Json and Body; 429 and 5xx are retried, other failures give nil and Roblox's message. |
| WaitForOperationAsync yields | (path: string, timeout: number?) | (any?, string?) | Polls a long-running operation until it ends, 300 s by default: its response, or nil and Roblox's message when it failed. |
| ListDeveloperProductsAsync yields | (universeId: number) | ({ DeveloperProductInfo }?, string?) | Waits for every developer product of the universe, following the pages to the last one. |
| CreateDeveloperProductAsync yields | (universeId: number, info: { Name: string, Description: string?, Price: number, IsForSale: boolean? }) | (number?, string?) | Waits for Roblox to create the product and gives its id; IsForSale is true unless you say, and Price is whole Robux. |
| UpdateDeveloperProductAsync yields | (universeId: number, productId: number, changes: { Name: string?, Description: string?, Price: number?, IsForSale: boolean? }) | (boolean, string?) | Sends only the fields you give and waits for Roblox to accept them; changes that name nothing are an error. |
From ShotInstance 33
ClassNameNameParentAncestryChangedAttributeChangedChangedChildAddedChildRemovedDestroyingAddTagClearAllChildrenCloneDestroyFindFirstAncestorFindFirstAncestorOfClassFindFirstAncestorWhichIsAFindFirstChildFindFirstChildOfClassFindFirstChildWhichIsAGetAttributeGetAttributeChangedSignalGetAttributesGetChildrenGetDescendantsGetFullNameGetPropertyChangedSignalGetTagsHasTagIsAIsAncestorOfIsDescendantOfRemoveTagSetAttribute
