diff --git a/content/en-us/assets/art/staff-articles/Tileable_Textures_Photoshop_Sampler.zip b/content/en-us/assets/art/staff-articles/Tileable_Textures_Photoshop_Sampler.zip new file mode 100644 index 000000000..c77557888 --- /dev/null +++ b/content/en-us/assets/art/staff-articles/Tileable_Textures_Photoshop_Sampler.zip @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:48c8038f66885ba9ae98b8e0f1e680b7ff30ea525ad4addb1ed1f448432daae0 +size 42076245 diff --git a/content/en-us/assets/art/staff-articles/Transparency_Maps_Substance_Sampler.zip b/content/en-us/assets/art/staff-articles/Transparency_Maps_Substance_Sampler.zip new file mode 100644 index 000000000..ee6c810a6 --- /dev/null +++ b/content/en-us/assets/art/staff-articles/Transparency_Maps_Substance_Sampler.zip @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3105176fd4c3117b825fe9a6dcbbf589176fbe48d6945beb5dd6b66701783e18 +size 18212395 diff --git a/content/en-us/assets/art/staff-articles/ZBrushProject_Radial_Symmetry.zip b/content/en-us/assets/art/staff-articles/ZBrushProject_Radial_Symmetry.zip new file mode 100644 index 000000000..5aca85887 --- /dev/null +++ b/content/en-us/assets/art/staff-articles/ZBrushProject_Radial_Symmetry.zip @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f9571d6dbed24ff604a14c49f78a660c216127705794cf54ceaad3bb08229b02 +size 63486480 diff --git a/content/en-us/assets/data/player-data-purchasing/Sample-Hierarchy.png b/content/en-us/assets/data/player-data-purchasing/Sample-Hierarchy.png new file mode 100644 index 000000000..cee4dcdda --- /dev/null +++ b/content/en-us/assets/data/player-data-purchasing/Sample-Hierarchy.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:844e003b0805842b51a1be3a4a34dfd8b438c8406aede310418a17e5ca809263 +size 106123 diff --git a/content/en-us/assets/localization/Lock-Translations.png b/content/en-us/assets/localization/Lock-Translations.png new file mode 100644 index 000000000..ef8e63900 --- /dev/null +++ b/content/en-us/assets/localization/Lock-Translations.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7999a016049edcadad40970a01c0226f3f1f2afcbbdf59b72685f81d2cb31b90 +size 59423 diff --git a/content/en-us/assets/localization/Update-Log.png b/content/en-us/assets/localization/Update-Log.png new file mode 100644 index 000000000..3aa466e58 --- /dev/null +++ b/content/en-us/assets/localization/Update-Log.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8ef98bb62e44d7f6d1bde34803b86315d1cba39de5703605eed2520f39cc538a +size 128140 diff --git a/content/en-us/production/analytics/engagement.md b/content/en-us/production/analytics/engagement.md index 82e08d29c..998ac9b7f 100644 --- a/content/en-us/production/analytics/engagement.md +++ b/content/en-us/production/analytics/engagement.md @@ -51,3 +51,12 @@ Performance is how well your experience runs on different devices and platforms. 3. **Set up a user community** that can help identify bugs and crashes. You can grow your experience faster if it's more engaging to both new and existing users. For more information on retaining your users for engagement, see [Retention](../../production/analytics/retention.md). + +## Improving New User First Session Retention + +The New User First Session Retention chart shows how many new users are still playing X minutes after joining your experience for the first time. It compares the current period with the previous period. You can use it to generate insights and catch issues with your experience's onboarding. + +For instance, if your chart shows that the percentage of new users still playing after 5 minutes decreased significantly week-on-week, you could explore the following potential causes: + +1. **Look into new user onboarding friction** from any recent updates. Did you add a new step, or change any introductory messaging? +2. **Check [error](./error-report.md) and [performance](./performance.md) reports** to see if there has been any change in performance or stability after a recent update. diff --git a/content/en-us/production/localization/automatic-translations.md b/content/en-us/production/localization/automatic-translations.md index 27104f69c..d8bb41ec4 100644 --- a/content/en-us/production/localization/automatic-translations.md +++ b/content/en-us/production/localization/automatic-translations.md @@ -73,6 +73,24 @@ Once strings are captured to your localization table, follow these steps to enab Roblox has initial and monthly quotas for automatic translation. The quotas determine how many string entries you can translate per language. The initial quota determines to how many string entries you can translate via automatic translations when you localize your experience for the first time. After you use up the initial quota, any subsequent translations come from your monthly quota, which resets every month. +## Automatic Translation Updates + +As the automatic translation tool improves, more accurate translations may become available for existing strings. When these updates become available, Roblox refreshes any automatic translations. Automatic translation updates will appear in your translation history. + +A translation history log displays at the bottom of each translation entry. + +If you have a specific translation that you want to remain unchanged, you can lock the entry to ensure it will not be impacted by any updates. + +A 'Lock translation from automatic updates' toggle is accessible below the translation entry field in each translation entry. + + +By locking an entry, you are approving the translation and turning it into a manual entry. This means it will not be impacted by any automatic translation updates, including safety-related updates. If, in the future, it is discovered that the translation violates policy, your experience will still be subject to moderation. + + +By default, manually added strings and strings with manual translations are locked. If you unlock an entry, it will be impacted by both automatic translation updates and ATC if it is enabled. If you want to generate a new automatic translation for a previously changed or cleared translation, unlock the entry. + ## Supported Languages Roblox supports automatic translation with the following languages: diff --git a/content/en-us/scripting/data/player-data-purchasing.md b/content/en-us/scripting/data/player-data-purchasing.md index 696a89b20..a63f0c416 100644 --- a/content/en-us/scripting/data/player-data-purchasing.md +++ b/content/en-us/scripting/data/player-data-purchasing.md @@ -44,7 +44,11 @@ Roblox has reference code to assist you with designing and building player data - +
+ +After you import the model into Studio, you should see the following folder structure: + +Explorer window showing the purchasing system model. ## Architecture @@ -54,7 +58,7 @@ This high-level diagram illustrates the key systems in the sample and how they i ## Retries -**Class:** `DataStoreWrapper` +**Class:** [`DataStoreWrapper`](#sample-code) ### Background @@ -124,7 +128,7 @@ Ultimately, our view is that the simple approach (processing every request) is p ## Session Locking -**Class:** `SessionLockedDataStoreWrapper` +**Class:** [`SessionLockedDataStoreWrapper`](#sample-code) ### Background @@ -188,7 +192,7 @@ If the lock expiry time has been exceeded without the lock being updated, then a ## Developer Product Processing -**Singleton:** `ReceiptHandler` +**Singleton:** [`ReceiptHandler`](#sample-code) ### Background @@ -246,7 +250,7 @@ The comments in `ReceiptProcessor` outline the approach: ## Player Data -**Singletons:** `PlayerData.Server`, `PlayerData.Client` +**Singletons:** [`PlayerData.Server`](#sample-code), [`PlayerData.Client`](#sample-code) ### Background