Skip to content

Commit c4d9059

Browse files
update Open Source Docs from Roblox internal teams
1 parent 88298e8 commit c4d9059

File tree

11 files changed

+266
-21
lines changed

11 files changed

+266
-21
lines changed
Lines changed: 2 additions & 2 deletions
Loading
Lines changed: 2 additions & 2 deletions
Loading
Lines changed: 2 additions & 2 deletions
Loading
Lines changed: 3 additions & 0 deletions
Loading
Lines changed: 3 additions & 0 deletions
Loading

content/en-us/cloud-services/data-stores/best-practices.md

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@ description: Guidelines that help you manage your data and data stores (DataStor
55

66
Best practices are guidelines that help you manage your data more efficiently.
77

8+
## General best practices
9+
810
### Create fewer data stores
911

1012
Data stores have similar behavior to tables in databases. When you minimize the number of data stores in an experience and put related data in the same data store, you're able to configure each data store individually and improve the service's efficiency to operate the data.
@@ -18,3 +20,49 @@ The versioning system versions individual objects instead of the entire data sto
1820
### Use key prefixes to organize your data
1921

2022
Filter keys with a specific [prefix](./versioning-listing-and-caching.md#listing-and-prefixes) when calling `Class.DataStore:ListKeysAsync()|ListKeysAsync()`. For example, you can save keys with a prefix like `/User_1234/profiles/warrior` and `/User_1234/profiles/mage` in experiences that support users with multiple character profiles. You can then use a prefix search with `/User_1234/profiles` to get a list of all profiles belonging to that user.
23+
24+
## Optimization best practices
25+
26+
Data stores have storage limits that apply per experience. When your experience approaches or exceeds its quota, you should take action to reduce usage and avoid potential additional costs.
27+
28+
### Monitor storage usage
29+
30+
Use these tools for data store observability:
31+
32+
- **Data Stores Dashboard**, which provides you with a visual overview of your storage usage over time. Use this dashboard to monitor how your storage scales and to identify periods of unexpected growth in usage.
33+
- **Data Stores Manager**, which gives you a direct view into your experience's stored data. The Manager includes key metrics like your current storage usage and the total keys you have stored across all of your data stores. If your experience exceeds its quota, the Manager displays an alert and your new estimated monthly cost.
34+
35+
If your experience has more than 100 data stores, the Manager might not display their detailed metrics. In this case, consider using programmatic analysis through Open Cloud or batch operations.
36+
- **Notifications**, which notify you when your experience approaches or exceeds storage limits. Notifications include guidance and links to dashboards where you can then review and reduce your usage.
37+
38+
### Resolve over-quota usage
39+
40+
If your experience exceeds your storage limits, you can:
41+
42+
- **Delete unused data stores.** If you're testing or have temporary stores, deleting them regularly helps maintain healthy storage usage. When you delete a data store, it can take Roblox up to 30 days to process your request.
43+
- **Delete individual keys.** This is useful when you need to remove temporary items or a certain player's data.
44+
- **Use the Batch Processor.** In cases when deleting data manually isn't efficient, you can use the Batch Processor or the Open Cloud Data Stores API to delete data in bulk.
45+
46+
### Use data store versions instead of new keys
47+
48+
When saving updates or new versions of player or configuration data, you can use the data stores versioning system instead of creating a new key for each version. Versioning allows you to roll back or inspect previous saves without increasing your total key count or storage footprint.
49+
50+
### Use memory stores for temporary data
51+
52+
Use [memory stores](../memory-stores/index.md) instead of data stores for caches or ephemeral data. The data in memory stores automatically expires after 45 days, which reduces your long-term storage growth.
53+
54+
### Clean up your data after testing
55+
56+
After you're done testing, delete test data stores through the Data Stores Manager. Avoid creating new scopes or entire new data stores just for test data.
57+
58+
### Store player data by key
59+
60+
Instead of storing player data by data store, store it by key. Deleting a key is faster than deleting a data store.
61+
62+
### Remove data after events
63+
64+
After seasonal events or temporary features, delete unused data through the Batch Processor or Open Cloud APIs.
65+
66+
### Review usage regularly
67+
68+
Make sure to review your usage regularly and detect anomalies early with the Data Stores Dashboard.

content/en-us/cloud-services/data-stores/data-stores-manager.md

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,9 @@ To access the Data Stores Manager:
2828
<br/>
2929
<br/>
3030

31-
The **Summary** section of the Data Stores Manager page includes the **Total Size** and the **Storage Limit** of your data stores. The Total Size is calculated by adding the number of bytes consumed by all existing keys in your experience, and the Storage Limit is calculated based on your experience's lifetime user count. For more information about storage limits, see [Limits](./error-codes-and-limits.md#limits).
31+
The **Summary** section of the Data Stores Manager page includes the **Total Size** and the **Storage Limit** of your data stores. Total Size is calculated by adding the number of bytes consumed by all existing keys in your experience, and Storage Limit is calculated based on your experience's lifetime user count. For more information about storage limits, see [Limits](./error-codes-and-limits.md#limits).
32+
33+
If your Total Size exceeds your Storage Limit, your **Est. Monthly Costs** will populate in your Summary and show an estimation of the impact of the usage that has gone over your quota. For tips on how to reduce your storage consumption, see [Best practices](./best-practices.md).
3234

3335
## View data stores and keys
3436

@@ -41,10 +43,10 @@ The **Data Stores** list displays the name, size, and number of keys for all dat
4143
To further drill down into each specific data store, you can:
4244

4345
- Select a data store from the data store list to display a list of all keys in that data store.
44-
- Enter a prefix in the search bar to filter the list of keys.
45-
- Toggle **Display scopes** to view the scope before each key name.
46+
- Enter a prefix in the search bar to filter the list of keys. The prefix must start with the scope name.
4647
- Select a key entry to display that key's value, metadata, version history, status, and when it was last updated.
47-
- Select a key entry, select a version under **Version History**, and click **Compare Version** to compare the current key entry version with the version you selected.
48+
- Select both a key entry and a version, and click **Compare versions** to compare the current key entry version with the version you selected.
49+
- Select a previous version of a key and click **Revert** to go back to that version. You must have Edit permissions to do this. Reverting to a previous version conditionally updates the list and writes a new version with the value of the version you have previously selected.
4850

4951
<img src="./../../assets/data/data-store/Data-Stores-Manager-Compare-Versions.png" alt="Comparison of two key entries in a data store." />
5052

content/en-us/cloud-services/extended-services.md

Lines changed: 141 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,8 @@ Extended Services is a solution that lets you manage service usage and payment b
99

1010
To use Extended Services, your Roblox account must:
1111

12-
- Be [ID-verified](../production/publishing/account-verification.md#verify-through-government-id).
13-
- Be located in the United States.
12+
- Be [ID-verified](../production/publishing/account-verification.md#verify-through-government-id) and 18+ years old.
13+
- Be located in a [supported country](#supported-countries).
1414
- Have a valid email address associated with it.
1515
- Not currently be banned or moderated.
1616
- Accept and comply with the [terms of service](https://en.help.roblox.com/hc/articles/37967848292500).
@@ -109,15 +109,151 @@ See the following table for Extended Services pricing.
109109
</tr>
110110
<tr>
111111
<td style={{border: 'none'}}>Request units</td>
112-
<td style={{border: 'none'}}>1000 + (CCU x 120) request units</td>
112+
<td style={{border: 'none'}}>1000 + (CCU x 120) request units per minute</td>
113113
<td style={{border: 'none'}}>$0.003 / 1M request units</td>
114114
</tr>
115115
<tr>
116116
<td style={{paddingBottom: '24px'}}>Storage</td>
117117
<td style={{paddingBottom: '24px'}}>64KB + (CCU x 1.2KB)</td>
118-
<td style={{paddingBottom: '24px'}}>$0.10 / GB Hours&sup1;</td>
118+
<td style={{paddingBottom: '24px'}}>$0.10 / GB per Hour&sup1;</td>
119+
</tr>
120+
<tr>
121+
<td style={{border: 'none'}}><a href="https://create.roblox.com/docs/audio/objects#text-to-speech" style={{color: 'inherit', textDecoration: 'underline'}}><strong>Text-to-speech</strong></a></td>
122+
</tr>
123+
<tr>
124+
<td style={{paddingBottom: '24px'}}>Requests</td>
125+
<td style={{paddingBottom: '24px'}}>1 + (CCU x 6) requests per minute</td>
126+
<td style={{paddingBottom: '24px'}}>$5.00 / 1M requests</td>
127+
</tr>
128+
<tr>
129+
<td style={{border: 'none'}}><a href="https://create.roblox.com/docs/cloud-services/data-stores" style={{color: 'inherit', textDecoration: 'underline'}}><strong>Access to standard data stores</strong> (coming soon)</a></td>
130+
</tr>
131+
<tr>
132+
<td style={{border: 'none'}}>Get</td>
133+
<td style={{border: 'none'}}>250 + (CCU * 40) requests per minute</td>
134+
<td style={{border: 'none'}}>$0.08 / 1M requests</td>
135+
</tr>
136+
<tr>
137+
<td style={{border: 'none'}}>Set</td>
138+
<td style={{border: 'none'}}>250 + (CCU * 20) requests per minute</td>
139+
<td style={{border: 'none'}}>$0.80 / 1M requests</td>
140+
</tr>
141+
<tr>
142+
<td style={{border: 'none'}}>List</td>
143+
<td style={{border: 'none'}}>10 + (CCU * 2) requests per minute</td>
144+
<td style={{border: 'none'}}>$0.60 / 1M requests</td>
145+
</tr>
146+
<tr>
147+
<td style={{border: 'none'}}>Remove</td>
148+
<td style={{border: 'none'}}>100 + (CCU * 40) requests per minute</td>
149+
<td style={{border: 'none'}}>$0.80 / 1M requests</td>
150+
</tr>
151+
<tr>
152+
<td style={{border: 'none'}}><a href="https://create.roblox.com/docs/cloud-services/data-stores" style={{color: 'inherit', textDecoration: 'underline'}}><strong>Access to ordered data stores</strong> (coming soon)</a></td>
153+
</tr>
154+
<tr>
155+
<td style={{border: 'none'}}>Get</td>
156+
<td style={{border: 'none'}}>250 + (CCU * 40) requests per minute</td>
157+
<td style={{border: 'none'}}>$0.08 / 1M requests</td>
158+
</tr>
159+
<tr>
160+
<td style={{border: 'none'}}>Set</td>
161+
<td style={{border: 'none'}}>250 + (CCU * 20) requests per minute</td>
162+
<td style={{border: 'none'}}>$0.25 / 1M requests</td>
163+
</tr>
164+
<tr>
165+
<td style={{border: 'none'}}>GetSorted</td>
166+
<td style={{border: 'none'}}>100 + (CCU * 2) requests per minute</td>
167+
<td style={{border: 'none'}}>$0.32 / 1M requests</td>
168+
</tr>
169+
<tr>
170+
<td style={{border: 'none'}}>Remove</td>
171+
<td style={{border: 'none'}}>100 + (CCU * 40) requests per minute</td>
172+
<td style={{border: 'none'}}>$0.25 / 1M requests</td>
173+
</tr>
174+
<tr>
175+
<td style={{border: 'none'}}><a href="https://create.roblox.com/docs/cloud-services/data-stores" style={{color: 'inherit', textDecoration: 'underline'}}><strong>Data store storage</strong> (coming soon)</a></td>
176+
</tr>
177+
<tr>
178+
<td style={{paddingBottom: '24px'}}>Storage</td>
179+
<td style={{paddingBottom: '24px'}}>100 MB + (1MB * Lifetime Players) GB per Month</td>
180+
<td style={{paddingBottom: '24px'}}>$0.12 / GB per Month</td>
119181
</tr>
120182
</tbody>
121183
</table>
122184

123-
<figcaption>&sup1; GB Hours = the storage consumption multiplied by the amount of time. For example, 100GB Hours might equate to "100GB x 1 hour" or "200GB x 0.5 hours".</figcaption>
185+
<figcaption>&sup1; GB per Hour = the storage consumption multiplied by the amount of time. For example, 100GB Hours might equate to "100GB x 1 hour" or "200GB x 0.5 hours".</figcaption>
186+
187+
## Supported countries
188+
189+
Extended Services is available in the following countries.
190+
191+
<table>
192+
<thead>
193+
<tr>
194+
<th colspan="3">Country</th>
195+
</tr>
196+
</thead>
197+
<tbody>
198+
<tr>
199+
<td>Australia</td>
200+
<td>Germany</td>
201+
<td>Poland</td>
202+
</tr>
203+
<tr>
204+
<td>Austria</td>
205+
<td>Hong Kong</td>
206+
<td>Portugal</td>
207+
</tr>
208+
<tr>
209+
<td>Belgium</td>
210+
<td>Hungary</td>
211+
<td>Romania</td>
212+
</tr>
213+
<tr>
214+
<td>Brazil</td>
215+
<td>Ireland</td>
216+
<td>Singapore</td>
217+
</tr>
218+
<tr>
219+
<td>Bulgaria</td>
220+
<td>Italy</td>
221+
<td>Slovakia</td>
222+
</tr>
223+
<tr>
224+
<td>Croatia</td>
225+
<td>Latvia</td>
226+
<td>Slovenia</td>
227+
</tr>
228+
<tr>
229+
<td>Cyprus</td>
230+
<td>Lithuania</td>
231+
<td>South Africa</td>
232+
</tr>
233+
<tr>
234+
<td>Czechia</td>
235+
<td>Malta</td>
236+
<td>Spain</td>
237+
</tr>
238+
<tr>
239+
<td>Denmark</td>
240+
<td>Mexico</td>
241+
<td>Sweden</td>
242+
</tr>
243+
<tr>
244+
<td>Estonia</td>
245+
<td>Netherlands</td>
246+
<td>Switzerland</td>
247+
</tr>
248+
<tr>
249+
<td>Finland</td>
250+
<td>New Zealand</td>
251+
<td>Thailand</td>
252+
</tr>
253+
<tr>
254+
<td>France</td>
255+
<td>Norway</td>
256+
<td>United States</td>
257+
</tr>
258+
</tbody>
259+
</table>

content/en-us/production/monetization/game-passes.md

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -201,6 +201,41 @@ end
201201
Players.PlayerAdded:Connect(onPlayerAdded)
202202
```
203203

204+
## Promote a pass
205+
206+
<Alert severity="info">
207+
Promoted passes are given to users for free.
208+
</Alert>
209+
210+
To help more users discover your experience, you can opt-in to have your passes featured on Roblox's [Buy Robux](https://www.roblox.com/upgrades/robux) page. Opting-in to promote your passes can help increase the time and Robux users spend in your experience. There is no limit to the number of passes you can promote.
211+
212+
Users are shown passes that are relevant to their gameplay history and engagement on the platform. They are not shown passes that they already own.
213+
214+
<img src="../../assets/monetization/game-passes/PromotedPass.png" width="60%" />
215+
216+
When users purchase an eligible Robux package, they receive the promoted pass and are prompted to claim their pass by joining your experience.
217+
218+
<img src="../../assets/monetization/game-passes/PromotedPass2.png" width="60%" />
219+
220+
<Alert severity="info">
221+
For best results, we recommend that you create a unique pass specifically for the **Buy Robux** page.
222+
</Alert>
223+
224+
To opt-in to promote one of your passes:
225+
226+
1. Go to **Monetization****Passes**.
227+
2. Select the pass you want to promote.
228+
3. Select **Promotions**.
229+
4. Enable **Include this item in the bonus pool**.
230+
5. Click **Save Changes**. The pass is shown to relevant users in the **Buy Robux** page.
231+
232+
The promoted pass:
233+
234+
- Can be off-sale or on-sale. If they're on-sale, their Robux value must be greater than 49 Robux and less than 801 Robux.
235+
- Must include a thumbnail.
236+
- Cannot grant [paid random items](./virtual-items.md#randomized-virtual-items).
237+
- Must comply with the [Community Standards](https://en.help.roblox.com/hc/en-us/articles/203313410-Roblox-Community-Standards).
238+
204239
## Pass analytics
205240

206241
Use pass analytics to analyze the success of individual passes, identify trends, and forecast potential future earnings.
@@ -210,6 +245,8 @@ With analytics, you can:
210245
- View your top passes over a selected time period.
211246
- Showcase up to eight top-selling items on a time-series graph to analyze overall sales and net revenue.
212247
- Monitor your catalog and sort items by sales and net revenue.
248+
- View how many passes were acquired by users through promotion on the **Buy Robux** page.
249+
- View how many users joined your experience after acquiring the pass through the **Buy Robux** page.
213250

214251
To access pass analytics:
215252

0 commit comments

Comments
 (0)