update rules

This commit is contained in:
Joe 2026-02-17 06:30:42 -06:00
parent 31350cd701
commit cc2c828757
156 changed files with 4981 additions and 1497 deletions

View file

@ -27,7 +27,7 @@ columns:
path: /production/analytics/
navigation: analytics.yaml
- title: Platform
path: /platform
path: /get-started/
navigation: /platform.yaml
- title: Tutorials
navigation: /engine/tutorials.yaml

View file

@ -144,6 +144,8 @@ navigation:
path: /physics/constraints/torque
- title: LineForce
path: /physics/constraints/line-force
- title: Animation
path: /physics/constraints/animation
- title: Sleep system
path: /physics/sleep-system
- title: Adaptive timestepping

View file

@ -1,17 +1,28 @@
navigation:
- heading: Platform
- title: Get started
path: /get-started
- title: Get Started
path: /get-started/
section:
- title: Why should I develop on Roblox?
path: /get-started/why-build-on-roblox
- title: How is Roblox different from other platforms?
path: /get-started/how-is-roblox-different
- title: What tools does Roblox provide?
path: /get-started/tools
- title: How do I make money?
path: /get-started/monetization
- title: Recommended strategies
path: /get-started/strategies
- title: Start creating
path: /get-started/creating
- title: Resources
path: /get-started/resources
- title: Create
path: /platform
- title: Scale
path: /scale
- title: Monetize
path: /monetize
section:
- title: Earn on Roblox
path: /production/earn-on-roblox
- title: Guidelines and policies
section:
- title: Safety on Roblox

View file

@ -142,7 +142,8 @@ Face accessories, such as hair, eyebrows, and eyelashes are unique accessories t
## Textures
Textures created for accessories must meet Roblox's [texture specifications](../../art/modeling/texture-specifications.md). Keep in mind that smaller assets, such as accessories, can use smaller texture map sizes, such as **256×256px**, to optimize performance with virtually no loss in detail.
- Textures for Marketplace assets can't exceed 2048x2048 resolution.
- Textures created for accessories must meet Roblox's [texture specifications](../../art/modeling/texture-specifications.md). High resolution textures are automatically converted to lower-resolution textures to optimize performance.
## Layerable Properties

View file

@ -277,9 +277,8 @@ You can use tools like the [Accessory Fitting Tool](../../art/accessories/access
## Textures
Textures created for accessories must meet Roblox's [texture specifications](../../art/modeling/texture-specifications.md).
- Non-albedo maps (RGH, MTL, NOR) for rigid accessories cannot exceed 256x256.
- Textures for Marketplace assets cannot exceed 2048x2048 resolution.
- Textures created for accessories must meet Roblox's [texture specifications](../../art/modeling/texture-specifications.md).
## Attachment points

View file

@ -652,7 +652,9 @@ For information on required facial animation support, see [head specifications](
## Textures
Avatar characters must follow Roblox's [texture specifications](../../art/modeling/texture-specifications.md). Characters created for the Marketplace can take advantage of [custom skin tones](#custom-skin-tone) which use alpha layers allow users to select their own base color.
- Textures for Marketplace assets can't exceed 2048x2048 resolution.
- Textures created for accessories must meet Roblox's [texture specifications](../../art/modeling/texture-specifications.md). High resolution textures are automatically converted to lower-resolution textures to optimize performance.
- Avatar characters must follow Roblox's [texture specifications](../../art/modeling/texture-specifications.md). Characters created for the Marketplace can take advantage of [custom skin tones](#custom-skin-tone) which use alpha layers allow users to select their own base color.
### Custom skin tone

View file

@ -3,6 +3,8 @@ title: PBR textures
description: PBR textures are advanced textures using multiple texture maps.
---
import BetaAlert from '../../includes/beta-features/beta-alert.md'
**Physically-Based Rendering** (PBR) textures allow you to represent realistic shading and lighting by using multiple types of texture images, or **maps**, on a single object. Combining multiple texture maps can more accurately simulate color, roughness, and reflectivity in any lighting environment and can enhance the visual elements of your assets and environment.
<Tabs>
@ -140,15 +142,39 @@ For objects that require partial or complete sections of transparency, such as g
You can apply transparency in two different behaviors by setting the following `Class.SurfaceAppearance.AlphaMode|AlphaMode` values:
- [Overlay](#overlay) — Overlays the `Class.SurfaceAppearance.ColorMap|ColorMap` over the underlying mesh's `Class.MeshPart.Color`. Color maps using **Overlay** reveal the base color of the mesh anywhere transparency is present. This is the default setting.
- [Opaque](#opaque) — Ignores the alpha channel of the `Class.SurfaceAppearance.ColorMap|ColorMap` and uses the color value directly from the color map.
- [Overlay](#overlay) — Overlays the `Class.SurfaceAppearance.ColorMap|ColorMap` over the underlying mesh's `Class.MeshPart.Color`. Color maps using overlay mode reveal the base color of the mesh anywhere transparency is present. This is the default setting.
- [Transparency](#alpha-modes) — Removes the visible mesh based on transparency in the `ColorMap`. This renders the mesh see-through and does not reveal the original mesh color whenever transparency is present.
- [TintMask](#tintmask) — Blends the tinted `Class.SurfaceAppearance.ColorMap|ColorMap` over the un-tinted `Class.SurfaceAppearance.ColorMap|ColorMap`.
##### Opaque
<BetaAlert betaName="MaterialVariant Alpha Mode" leadIn="This mode is currently in beta. Enable it through " leadOut="." components={props.components} />
You can use `Enum.AlphaMode.Opaque` mode to ignore the alpha channel of the `Class.SurfaceAppearance.ColorMap|ColorMap` altogether. In this case the alpha value is assumed to be 1 (fully opaque).
The following example demonstrates how the `Enum.AlphaMode.Opaque|Opaque` mode works using a white object as reference:
<GridContainer numColumns="3">
<figure>
<img src="../../assets/modeling/surface-appearance/SurfaceAppearance-Opaque-ColorMap.jpg" alt="A polkadot texture with transparency. The background is completely transparent."/>
<figcaption>Example color/albedo map with transparency</figcaption>
</figure>
<figure>
<img src="../../assets/modeling/surface-appearance/SurfaceAppearance-Opaque-Before.jpg" alt="A white torus on a plane."/>
<figcaption>Example mesh object (white)</figcaption>
</figure>
<figure>
<img src="../../assets/modeling/surface-appearance/SurfaceAppearance-Opaque-After.jpg" alt="The torus has the polkadot patterns scattered over its surface. Transparency value is ignored."/>
<figcaption>`Class.SurfaceAppearance.AlphaMode|AlphaMode` set to `Enum.AlphaMode.Opaque|Opaque` using reference map and material</figcaption>
</figure>
</GridContainer>
##### Overlay
You can use **Overlay** to reveal sections of the mesh's original color. Since the transparent areas of the color map expose the underlying color, you can design a unique texture map that partially or fully reveals the mesh's `Class.MeshPart.Color|Color` property for custom skin tones or other situations with unique colors.
You can use `Enum.AlphaMode.Overlay` to reveal sections of the mesh's original color. Since the transparent areas of the color map expose the underlying color, you can design a unique texture map that partially or fully reveals the mesh's `Class.MeshPart.Color|Color` property for custom skin tones or other situations with unique colors.
The following example demonstrates how the **Overlay** mode works using a white sphere reference:
The following example demonstrates how the `Enum.AlphaMode.Overlay|Overlay` mode works using a white sphere reference:
<GridContainer numColumns="3">
<figure>
@ -161,11 +187,11 @@ The following example demonstrates how the **Overlay** mode works using a white
</figure>
<figure>
<img src="../../assets/modeling/surface-appearance/SurfaceAppearance-AlphaMode-Overlay.jpg" alt="A white sphere with small blue squares scattered over the surface."/>
<figcaption>`Class.SurfaceAppearance.AlphaMode|AlphaMode` set to **Overlay** using reference map and material</figcaption>
<figcaption>`Class.SurfaceAppearance.AlphaMode|AlphaMode` set to `Enum.AlphaMode.Overlay|Overlay` using reference map and material</figcaption>
</figure>
</GridContainer>
The following example uses the **Overlay** mode for custom characters, revealing the character's original skin-tone:
The following example uses the `Enum.AlphaMode.Overlay|Overlay` mode for custom characters, revealing the character's original skin-tone:
<GridContainer numColumns="2">
<figure>
@ -174,7 +200,7 @@ The following example uses the **Overlay** mode for custom characters, revealing
</figure>
<figure>
<img src="../../assets/modeling/surface-appearance/Custom-Skin-Tone-Example.png" alt="Four of the same humanoid models with different skin tones: light brown, black, white, dark green."/>
<figcaption>Several variations of characters with a single color map using **Overlay** mode</figcaption>
<figcaption>Several variations of characters with a single color map using `Enum.AlphaMode.Overlay|Overlay` mode</figcaption>
</figure>
</GridContainer>
@ -182,7 +208,7 @@ See [custom skin tone](../../art/characters/specifications.md#custom-skin-tone)
##### Transparency
You can use the **Transparency** mode to create complex or extremely fine objects, such as lace or netting, by removing visible parts of the mesh as an alternative to sculpting the mesh geometry. Since this does not affect the geometry of the mesh object, this can allow you to create detailed objects without the performance impact of an intricate mesh model.
You can use the `Enum.AlphaMode.Transparency` mode to create complex or extremely fine objects, such as lace or netting, by removing visible parts of the mesh as an alternative to sculpting the mesh geometry. Since this does not affect the geometry of the mesh object, this can allow you to create detailed objects without the performance impact of an intricate mesh model.
The following example demonstrates how a partial and full transparency in this mode visually removes sections of the mesh:
@ -221,7 +247,7 @@ The following example demonstrates how a partial and full transparency in this m
</TabItem>
</Tabs>
There are two outcomes of `Enum.AlphaMode|Transparency` mode, depending on whether the `Class.MeshPart.Transparency` is set to `0` or **at&nbsp;least** `0.02`, although numerical precision may result in small values such as `0.01` triggering the opaque transparency.
There are two outcomes of `Enum.AlphaMode.Transparency|Transparency` mode, depending on whether the `Class.MeshPart.Transparency` is set to `0` or **at&nbsp;least** `0.02`, although numerical precision may result in small values such as `0.01` triggering the opaque transparency.
- When alpha is used to cut out the shape of mostly opaque objects with hard edges such as foliage, lace fabric, and netting, set the `Class.MeshPart.Transparency` to `0`. When parts of the surface are fully opaque, the Roblox engine can render them with proper depth‑based occlusion. Opaque surfaces also generally work better with depth‑based effects like `Class.DepthOfFieldEffect`, glass and water refraction, and water reflection.
- When alpha is used to add detail to semi‑transparent objects or objects with smooth gradients of transparency, set the `Class.MeshPart.Transparency` to **at&nbsp;least** `0.02`. This improves the quality of blending for objects such as dirty windows and soft‑edged feathers, but it will not work with all effects.

View file

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:5e744bcca5cdbd072dcd60d7ac7ea57f5120535b8e0dc6c61a340bc8a48dd5f4
size 353059568

View file

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:76c9082a4d6c2a018367281b9d334921db46ea941b169f13ac2bc11abf0dc797
size 2750997

View file

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:70810ab723611ddfaa3e5eb4c083957305705fe0a3bccf0172e6ff74b4a61317
size 145292

View file

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:ad871abf054b942f18d6b9706a5809538379cc7cfe510644d1f68d3fe3425633
size 129402

View file

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:30cf0564de491feab8d562b24a16591965cfa97b59e3a132c113aa6b3eb7d319
size 70941

View file

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:a81ba2a1a2e2ae0fc885058c915e331893ceed912cac1254c4915826b436028f
size 46340

View file

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:7117ccf49dc072e89b0e69a90ef1e2d83ea22ace7d7ae65ae436bab6ee13a966
size 1117027

View file

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:918668cbcd41fbc173b2e35aaccd399ec033c00d30d074e8bf891a645d136376
size 265039

View file

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:955470e94499f57a24c36af154443329edcb2bf8f71f0c761866a4c21911b3dd
size 240939

View file

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:eb8622fb891b867d642ba45e843a643e43653ebdd8cd2ea36b3402c98a048a51
size 315796

View file

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:8a3e9bc7a72e6e9a1cc62fbd4c1709b3af9360eb9688d7490638dc5d247019d5
size 2013316

View file

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:bccbd83910720f1a5152a02b0d4441782df19453430a0345f71d1f658404de3d
size 187780

View file

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:41e4e5f7450f9e1be7500a2d7a8f14c6856fad50ef59d71e7ca572b58e135490
size 1077476

View file

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:98057fe1a1cc8175a7f052267a3638d48a3e0f42270ed98ddf8e836c73e0d744
size 267557

View file

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:a0786316db482ee25364af853eed51876bfb81ab4786db17323ef265af5d56eb
size 173660

View file

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:c16bd7f4c9bc37a637ad009313c0c5a751f2fd29561408db9aba40845a7b57c5
size 844696

View file

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:85e1fd035de78a8ffc2bdc305c34b88bb3deebb4239f6c0f021d4d5750e92f60
size 18031730

View file

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:aeb52ab29ae4c9a793a197451da5884dc2cb2a0baa9a31c971398c1b50b8ba38
size 109093

View file

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:5188fc9bcaedd345b0fbbe4e183c55f6bac3e72262a28d6b1ac14dbfb50f3c6c
size 216460

View file

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:4f1198144379ee88204a500159dfb499b3ccee6a8e68f5cee5a9defa99286b20
size 54884

View file

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:36d924b74162a2e6421db3cc0c4223da87a5a99a4f119e80cf18b97eb17d65d7
size 1066242

View file

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:e0b6f5c9d068ee3122a35c67c7628f0b1ab4493e23f6b68a0606150fc2b6c3cd
size 4925536

View file

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:1bf17a0b5e3ca1b7fa73def2a9bfd85df21708757cda49ce98c3ff860673f8d0
size 40765240

View file

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:e36b717e5562c5c9a66b2f00eaa9750b397e28959f7f505ec8324f96159a5e39
size 178534

View file

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:7150cf017752c682801bfdef709bf5e6638cee34e859f4cb4b36c9628c64ac38
size 236647

View file

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:d52a00914cfdce2fc0442eba7a54ded193247f2626a46a6bee5230d2bfbe585b
size 69756

View file

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:fefd29af09fa54e9209f0ae93f8797892b15ba9819fac43e337f8496076ce1de
size 53332

View file

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:85374f4c89ae4ebfe67614c0f8c230db1cf8c372bd72ae4d7ed5ce4caee14f8e
size 18755456

View file

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:bd88fe5badff1d52f8028fe644b5f89176f4f67d0c375d0239835355c67a7ffb
size 262639

View file

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:d5581bfe016052d6e52c601022394d7a10e80682a14e6b8dc7e5c51c826f4525
size 44798

View file

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:98e6bc16697cc21c923c0b35e213482eed92f47f7cd6325d4b87921cf1d4ee63
size 167126

View file

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:e480949344eb622abf5ce522690c9628f2a580e1797d33a83a5be0415dc13bf9
size 3029750

View file

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:1fa29deefd40bd2d9483815031f5538cf703fe2648aff8834bcd680de78d633b
size 126616

View file

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:b795366ded7792a4964e5c59645662031a48318954d63e2612e1fa0f964ef936
size 450824

View file

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:c8c27305fada5e8a1aa1733246a5b87b8ea2acd866180f7dac34a1e61c3f0523
size 165418

View file

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:765565deb33074ea5f93660873936db067a762630332e6d1bd392ea90be20b02
size 109376

View file

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:1a0ad3f6b427d71bab4256847590b2e692af1e035e332de9ae030254894262e0
size 589826

View file

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:dfd9f13a0f2ee429276c7455ce8d5dca41c328c1ca5b11fab9e2ee2243accb06
size 3676154

View file

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:d1b005bc03997530b3aceaeb3df017e8d0869bba7e697e67e5c5702feee9ab88
size 57886

View file

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:af9f634df41ce54f01123fb11dd1af2b5e3e8093d4c7fb986255fbe5a0b99cd9
size 5249243

View file

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:c1309d258d20fd2dcad61a0b612be42a856c036ed54bd27d6b75c05fb3853bfe
size 187533

View file

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:021edfda621770d17c7f861efbf5b4ad4ac1c51182dc3edc8b4a40c933c20420
size 93610

View file

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:5f9bb8633adb5593d6bd33111eb8ca7972b60b01851dac73e1ba82b6defa3f86
size 1241629

View file

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:c3779cfcb818207d45783f5431026138fdfe2e5617bbf139e3a272ce460e2e9b
size 189270

View file

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:ff2210aa55c0f7ad127ba18efb26995eeed0376dadf08420a1c81e94f132adcf
size 3877158

View file

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:14c12a3464c1c970c31912f0444cf59b3a574d5ab97df815feee6ba60d06c9c7
size 441294

View file

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:df4f13605002ceb2702ee7fa6dcc31412746866f7c521b2b8dab808e28780cac
size 1360643

View file

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:557c74590d011bf49a046f1061dc5155a2399766a02a21fcfd1b83632fddcb6a
size 89372

View file

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:b4d943dff04c4dce79616390951e8793ff2a857c00779b530be51b9684192b33
size 390456

View file

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:961d4deca1a44e6a48a263f7b1618b676d9f0e3e9c2944063f428dcf5a7b08a0
size 816454

View file

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:af0eddb5a616851447e16211881c8c184da7104cfd39a45b4d628d33afefbd51
size 2293973

View file

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:d63ea8c9322f391075b3730c8989bde2dc9f835c26c06d6cacf9565034f433ff
size 163176

View file

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:ff2210aa55c0f7ad127ba18efb26995eeed0376dadf08420a1c81e94f132adcf
size 3877158

View file

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:8fd2373256bbfdc236ed4223cb47e524a74df36a422802a0574649c390575bcd
size 967928

View file

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:b9acf01a291a3cece8ea76493c539c25fea1a52a0051d374836aa15b5c9e4d34
size 6343420

View file

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:dbea877a77568ddb929d83f3319ab4c01dc5604456402395215551e062a70b99
size 401951

View file

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:a79478787194f8a64dc7752c13dee1e2090c59fa5a06b26a54c3fa7096a27974
size 5267580

View file

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:38d66b8622b26a10f3165b6376cede8bef4d642e295ab39e1317ba4fd1555e8f
size 207939

View file

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:9c47b9a886f16e9a2fab955c09b162a9b834132ea51d539764b83545bd99a029
size 176093

View file

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:e9084b7c51326b59ea314aa6a7d05b1081f2cb3bd3a8bf146956e08af5e8ae19
size 120982

View file

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:7b18ede5dcd31e8940590903ea63d41eb9a488bf7dfd25c019a706c5856e5db6
size 3107410

View file

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:817a09c90efeb87129dd7ef5f244bf0af24cb60c9fa7d080f515e9906009fc6e
size 3164377

View file

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:e513e39d96822e66c3fe244e007598748f93c97935be7e52042991fc08cccbee
size 2611787

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:cb424364a43fe2221737def0da9f369563a83721b6dd87a2514f5208246d0e5c
size 2207883
oid sha256:330bd3b467d10e3e34d15f39d5998eac18b33c503dcaa4aa44ab259706129e35
size 2182967

View file

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:ab84f5f35233337f7197e4880b8f27248144dbe202c7dde0f3ea1cfbb7dbb21c
size 1787417

View file

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:ce8d7cdaba541e2184176e4fec21313a8a81f58a0656c1785e2a2c15acfcbe7f
size 1808094

View file

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:174e9f04557d08cf029a1e37ef0458e299bb733aef2d9feb590a0b0ffa64d0be
size 2420977

View file

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:e03d8b657e4b522e87abd70286de2b8b55708425b34bcacc9d47646b9df5b187
size 2576298

View file

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:7ae52275fa02a9f488a570a9e67e4639e60087288d09ce93d49cd9e00550f12c
size 2375207

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:211fac7fb009995450a0a4b619face50489d13221349ab329b93d6220c4dc54e
size 2162434
oid sha256:4b1dd6cd61d3235363abd42e675341e5b42f2bfa5fff22edffdbf4fa0052facf
size 2203263

View file

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:825e29647b74e80d23d72932a2f487369b5545f2cd1fdd1e4f4a595c4e53666c
size 1986224

View file

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:667504455207cf83b81bfd20fe3185b0bb819f27a74a73c2b10385820bf6a716
size 2023964

View file

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:9ef0359b130a8526cd3cf392e26160afa2be69a2206f7238313ab90fa9b72f89
size 2621444

View file

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:f3eb2fe7964c8b5d07d055a4dcbf777c153020787623d604a00d96d578b9831f
size 2023529

View file

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:088dcca05844079c82a2166f27138659b6bc9059e3f227ee994936706ac7fef3
size 1662204

View file

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:3439a9b306fe3baba52e6271f657273a7faaaf7b32d98a6a8f369a78ddc13bb6
size 2993628

View file

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:d49c29ad0f6685e8f34591928ecf0681fb4664d5b483a6f74d3addcbd552c9d7
size 2344763

View file

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:b466865f8b9e39310fe413f721cef3df389f650a5aa404dca734c2a59e48deb3
size 1384988

View file

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:c8d8026eab69003f0c77ee09bc64fb0f346ce400b30663e6c0bba468ddca2ce5
size 2386795

View file

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:7c27938037a8804590118d1e7702b0de9b0ecff322c23e7eb99bb3b5adcf0895
size 2477896

View file

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:48eb94241539bce1f9a9c1ccfd5b2f3b8ea6e297573aa25f48dd69797dffffd0
size 2584327

View file

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:b9fad20a7b321d98119fbb9ef7e1d026993d861274788407220f1e1ed33af345
size 107640

View file

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:03509d1ddf8ae09e3aec8edfd5b385a09e1d5c5908f81da26582a1f2a1cedcfc
size 32339

View file

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:a284a2d6ef727f788cc258ce965b09f3923a165cb74d5992267524551999847c
size 107638

View file

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:46b4962e6aa9e61129fd9e5cad812d3165e23825063c5b38d493d70b55bf5203
size 137385

View file

@ -91,98 +91,109 @@ For a detailed breakdown of your current pending balance costs, click **View Det
## Service pricing
See the following table for Extended Services pricing.
See the following table for Extended Services pricing:
<table>
<thead>
<th>**Service**</th>
<th>**Default**</th>
<th>**Extended**</th>
<tr>
<th>**Service**</th>
<th></th>
<th>**Default**</th>
<th>**Extended**</th>
</tr>
</thead>
<tbody>
<tr>
<td style={{border: 'none'}}><a href="https://create.roblox.com/docs/cloud-services/memory-stores" style={{color: 'inherit', textDecoration: 'underline'}}><strong>Memory stores</strong></a></td>
<td><a href="https://create.roblox.com/docs/cloud-services/memory-stores" style={{color: 'inherit', textDecoration: 'underline'}}>Memory stores</a></td>
<td>Requests</td>
<td>1000 + (CCU x 120) requests per minute</td>
<td>$0.003 / 1M requests</td>
</tr>
<tr>
<td style={{border: 'none'}}>Request units</td>
<td style={{border: 'none'}}>1000 + (CCU x 120) request units per minute</td>
<td style={{border: 'none'}}>$0.003 / 1M request units</td>
<td></td>
<td>Storage</td>
<td>64KB + (CCU x 1.2KB)</td>
<td>$0.10 / GB per hour&sup1;</td>
</tr>
<tr>
<td><a href="https://create.roblox.com/docs/audio/objects#text-to-speech" style={{color: 'inherit', textDecoration: 'underline'}}>Text-to-speech</a></td>
<td>Requests</td>
<td>1 + (CCU x 6) requests per minute</td>
<td>$5.00 / 1M requests</td>
</tr>
<tr>
<td><a href="https://create.roblox.com/docs/audio/objects#speech-to-text" style={{color: 'inherit', textDecoration: 'underline'}}>Speech-to-text</a></td>
<td>Requests</td>
<td>1 + (CCU x 5) requests per minute</td>
<td>$1 / 1M requests</td>
</tr>
<tr>
<td><a href="https://create.roblox.com/docs/cloud-services/data-stores" style={{color: 'inherit', textDecoration: 'underline'}}>Standard data stores (coming soon)</a></td>
<td>Get</td>
<td>250 + (CCU * 40) requests per minute</td>
<td>$0.08 / 1M requests</td>
</tr>
<tr>
<td style={{paddingBottom: '24px'}}>Storage</td>
<td style={{paddingBottom: '24px'}}>64KB + (CCU x 1.2KB)</td>
<td style={{paddingBottom: '24px'}}>$0.10 / GB per Hour&sup1;</td>
</tr>
<tr>
<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>
<td></td>
<td>Set</td>
<td>250 + (CCU * 20) requests per minute</td>
<td>$0.80 / 1M requests</td>
</tr>
<tr>
<td style={{paddingBottom: '24px'}}>Requests</td>
<td style={{paddingBottom: '24px'}}>1 + (CCU x 6) requests per minute</td>
<td style={{paddingBottom: '24px'}}>$5.00 / 1M requests</td>
</tr>
<tr>
<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>
<td></td>
<td>List</td>
<td>10 + (CCU * 2) requests per minute</td>
<td>$0.60 / 1M requests</td>
</tr>
<tr>
<td style={{border: 'none'}}>Get</td>
<td style={{border: 'none'}}>250 + (CCU * 40) requests per minute</td>
<td style={{border: 'none'}}>$0.08 / 1M requests</td>
<td></td>
<td>Remove</td>
<td>100 + (CCU * 40) requests per minute</td>
<td>$0.80 / 1M requests</td>
</tr>
<tr>
<td><a href="https://create.roblox.com/docs/cloud-services/data-stores" style={{color: 'inherit', textDecoration: 'underline'}}>Ordered data stores (coming soon)</a></td>
<td>Get</td>
<td>250 + (CCU * 40) requests per minute</td>
<td>$0.08 / 1M requests</td>
</tr>
<tr>
<td style={{border: 'none'}}>Set</td>
<td style={{border: 'none'}}>250 + (CCU * 20) requests per minute</td>
<td style={{border: 'none'}}>$0.80 / 1M requests</td>
</tr>
<tr>
<td style={{border: 'none'}}>List</td>
<td style={{border: 'none'}}>10 + (CCU * 2) requests per minute</td>
<td style={{border: 'none'}}>$0.60 / 1M requests</td>
</tr>
<tr>
<td style={{border: 'none'}}>Remove</td>
<td style={{border: 'none'}}>100 + (CCU * 40) requests per minute</td>
<td style={{border: 'none'}}>$0.80 / 1M requests</td>
<td></td>
<td>Set</td>
<td>250 + (CCU * 20) requests per minute</td>
<td>$0.25 / 1M requests</td>
</tr>
<tr>
<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>
<td></td>
<td>GetSorted</td>
<td>100 + (CCU * 2) requests per minute</td>
<td>$0.32 / 1M requests</td>
</tr>
<tr>
<td style={{border: 'none'}}>Get</td>
<td style={{border: 'none'}}>250 + (CCU * 40) requests per minute</td>
<td style={{border: 'none'}}>$0.08 / 1M requests</td>
<td></td>
<td>Remove</td>
<td>100 + (CCU * 40) requests per minute</td>
<td>$0.25 / 1M requests</td>
</tr>
<tr>
<td style={{border: 'none'}}>Set</td>
<td style={{border: 'none'}}>250 + (CCU * 20) requests per minute</td>
<td style={{border: 'none'}}>$0.25 / 1M requests</td>
</tr>
<tr>
<td style={{border: 'none'}}>GetSorted</td>
<td style={{border: 'none'}}>100 + (CCU * 2) requests per minute</td>
<td style={{border: 'none'}}>$0.32 / 1M requests</td>
</tr>
<tr>
<td style={{border: 'none'}}>Remove</td>
<td style={{border: 'none'}}>100 + (CCU * 40) requests per minute</td>
<td style={{border: 'none'}}>$0.25 / 1M requests</td>
</tr>
<tr>
<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>
</tr>
<tr>
<td style={{paddingBottom: '24px'}}>Storage</td>
<td style={{paddingBottom: '24px'}}>100 MB + (1MB * Lifetime Players) GB per Month</td>
<td style={{paddingBottom: '24px'}}>$0.12 / GB per Month</td>
<td><a href="https://create.roblox.com/docs/cloud-services/data-stores" style={{color: 'inherit', textDecoration: 'underline'}}>Data store storage (coming soon)</a></td>
<td>Storage</td>
<td>100 MB + (1MB * Lifetime Players) GB per month</td>
<td>$0.12 / GB per month</td>
</tr>
</tbody>
</table>
<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>
<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>
## Supported countries
Extended Services is available in the following countries.
Extended Services is available in the following countries:
<table>
<thead>

View file

@ -1,205 +0,0 @@
---
title: Get started on Roblox
description: Learn how to get started quickly on Roblox
hideInPageNavigation: true
---
export const statsByline = "* Figures are as of Q4 2024";
export const scaleStats = [
{ header: "85.3M", description: "Daily active users" },
{ header: "18.9M", description: "Monthly unique payers" },
{ header: "18.7B", description: "Quarterly hours engaged" },
{ header: "750M", description: "Yearly creator earnings" },
{ header: "18.9M", description: "DevX" },
{ header: "18.7B", description: "xyz" },
];
export const sections = [
{
title: "",
description: "Getting started on Roblox is easy, and learning about the ecosystem only takes a few minutes. Better yet, you can start creating and sharing your creations in less than an hour with these resources.",
content: [
{
title: "1. Learn about what you can do",
description: "This video goes over some of the things you can build on Roblox and the tools you need to do it.",
video: "https://www.youtube-nocookie.com/embed/vIiVbFiDbBE",
links: [
{text: "Watch overview", href: "https://www.youtube.com/watch?v=vIiVbFiDbBE" },
]
},
{
title: "2. Get a Roblox account and the app",
description: "The same Roblox account works for playing and creating. Sign up at roblox.com and download the app for your preferred device.",
image: "./assets/landing/app.jpg",
links: [
{text: "Go to roblox.com", href: "https://www.roblox.com" },
]
},
{
title: "3. Customize your avatar and play something",
description: "The best way to understand Roblox is to use it! Customize your avatar with free or paid items and play a few of the millions of experiences.",
image: "./assets/landing/avatar-play.jpg",
links: [
{text: "Browse avatar items", href: "https://www.roblox.com/catalog" },
{text: "Browse experiences", href: "https://www.roblox.com/charts" },
]
},
{
title: "4. Get Studio and take the tour",
description: "Roblox Studio is your main creation tool and is supported on Windows and Mac. The onboarding tour gets you acclimated to basic workflows.",
image: "./assets/landing/get-started/studio.png",
links: [
{text: "Roblox Studio setup", href: "./studio/setup" },
]
}
]
},
{
title: "Experiences",
description: "Making an experience can seem intimidating, but we promise it's not too bad! Walk through the tutorial or watch the following videos to understand a bit more about how experiences work.",
buttons: [
{ text: "See all docs", href: "./experiences" }
],
content: [
{
title: "Create your first experience",
description: "Create a simple 3D platformer while learning important Roblox building and scripting concepts.",
image: "./assets/landing/core-experience.png",
links: [
{ text: "Start creating", href: "./tutorials/curriculums/core/" },
]
},
{
title: "Intro to world building",
description: "Sit back and watch one of our 3D artists show you how to construct 3D worlds in Studio.",
video: "https://www.youtube-nocookie.com/embed/SgPU84AqpkY",
links: [
{ text: "Watch livestream", href: "https://youtu.be/SgPU84AqpkY" }
]
},
{
title: "Intro to physics",
description: "The Roblox engine simulates real-life materials, physics, collisions and more. Join one of our product managers for a overview of how the physics simulation works.",
video: "https://www.youtube-nocookie.com/embed/9mXvhYSv7fc",
links: [
{ text: "Watch livestream", href: "https://youtu.be/9mXvhYSv7fc" },
]
},
]
},
{
title: "Avatar items",
description: "Making avatar items can sometimes be easier than making an experience. You can make a simple 2D t-shirt with an image editor without having to open Studio at all. If you're interested in 3D modeling, use Blender and Studio together to make a basic 3D accessory.",
buttons: [
{ text: "See all docs", href: "./avatar" }
],
content: [
{
title: "Avatar items overview",
description: "Learn about all the different things you can create and allow users to equip for their avatars.",
video: "https://www.youtube-nocookie.com/embed/EUDSIUmLjxA",
links: [{ text: "Watch overview", href: "https://youtu.be/EUDSIUmLjxA" }]
},
{
title: "Create a t-shirt",
description: "A simple t-shirt is the easiest example of how to create an avatar item.",
video: "https://www.youtube-nocookie.com/embed/r_unfGZT5Ps",
links: [
{ text: "Watch how to do it", href: "https://youtu.be/r_unfGZT5Ps" },
{ text: "Guides", href: "./art/classic-clothing" }
]
},
{
title: "Create a backpack accessory",
description: "Learn how to create a backpack, which is an example of a 3D accessory. These accessories are simple, non-animated items that attach to a single point on an avatar's body.",
video: "https://www.youtube-nocookie.com/embed/Eed29gV0hLA",
links: [
{ text: "Watch how to do it", href: "https://youtu.be/Eed29gV0hLA" },
{ text: "Guides", href: "./art/accessories" }
]
}
]
},
];
{sections.map((section, index) => (
<Grid style={{ marginBottom: 48 }} item xs={12} key={index}>
{section.title && (
<Typography variant='h1'>{section.title}</Typography>
)}
<div style={{ marginTop: 16, marginBottom: 48 }}>
{section.description && (
<p>{section.description}</p>
)}
{section.buttons && section.buttons.map((button, btnIndex) => (
<Button
key={btnIndex}
style={{ marginTop: 8, marginRight: 24 }}
variant="contained"
color="secondary"
size="large"
href={button.href}
>
{button.text}
</Button>
))}
</div>
{section.content && (
<Grid container spacing={4}>
{section.content.map((content, contentIndex) => {
const mdValue = 12 / section.content.length;
return (
<Grid item xs={12} sm={6} md={mdValue} key={contentIndex}>
<div style={{ marginBottom: 48 }}>
{content.image && (
<img
style={{ width: '100%', aspectRatio: 16/9, height: 'auto', objectFit: 'cover' }}
src={content.image}
alt=""
/>
)}
{content.video && (
<iframe
style={{ marginBottom: 16, width: '100%', aspectRatio: 16/9, height: 'auto' }}
src={content.video}
title="YouTube video player"
frameborder="0"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share"
referrerpolicy="strict-origin-when-cross-origin"
allowFullScreen
></iframe>
)}
<h3>{content.title}</h3>
<p>{content.description}</p>
{content.links && content.links.map((link, linkIndex) => (
<a href={link.href} key={linkIndex}>
<Typography variant='buttonLarge'>{link.text}</Typography><br />
</a>
))}
{content.buttons && content.buttons.map((button, btnIndex) => (
!button.useStudioButton && (
<Button
key={btnIndex}
style={{ marginTop: 16, marginRight: 24 }}
variant="contained"
color="secondary"
size="large"
href={button.href}
>
{button.text}
</Button>
)
))}
</div>
</Grid>
);
})}
</Grid>
)}
</Grid>
))}

View file

@ -0,0 +1,194 @@
---
title: Get started creating on Roblox
description: Learn how to create experiences and avatar items quickly on Roblox
hideInPageNavigation: true
---
export const sections = [
{
title: "",
description: "Getting started on Roblox is easy, and learning about the ecosystem only takes a few minutes. Better yet, you can start creating and sharing your creations in less than an hour with these resources.",
content: [
{
title: "1. Learn about what you can do",
description: "This video goes over some of the things you can build on Roblox and the tools you need to do it.",
video: "https://www.youtube-nocookie.com/embed/vIiVbFiDbBE",
links: [
{text: "Watch overview", href: "https://www.youtube.com/watch?v=vIiVbFiDbBE" },
]
},
{
title: "2. Get a Roblox account and the app",
description: "The same Roblox account works for playing and creating. Sign up at roblox.com and download the app for your preferred device.",
image: "../assets/landing/app.jpg",
links: [
{text: "Go to roblox.com", href: "https://www.roblox.com" },
]
},
{
title: "3. Customize your avatar and play something",
description: "The best way to understand Roblox is to use it! Customize your avatar with free or paid items and play a few of the millions of experiences.",
image: "../assets/landing/avatar-play.jpg",
links: [
{text: "Browse avatar items", href: "https://www.roblox.com/catalog" },
{text: "Browse experiences", href: "https://www.roblox.com/charts" },
]
},
{
title: "4. Get Studio and take the tour",
description: "Roblox Studio is your main creation tool and is supported on Windows and Mac. The onboarding tour gets you acclimated to basic workflows.",
image: "../assets/landing/get-started/studio.png",
links: [
{text: "Roblox Studio setup", href: "../studio/setup" },
]
}
]
},
{
title: "Experiences",
description: "Making an experience can seem intimidating, but we promise it's not too bad! Walk through the tutorial or watch the following videos to understand a bit more about how experiences work.",
buttons: [
{ text: "See all docs", href: "../experiences" }
],
content: [
{
title: "Create your first experience",
description: "Create a simple 3D platformer while learning important Roblox building and scripting concepts.",
image: ".../assets/landing/core-experience.png",
links: [
{ text: "Start creating", href: "../tutorials/curriculums/core/" },
]
},
{
title: "Intro to world building",
description: "Sit back and watch one of our 3D artists show you how to construct 3D worlds in Studio.",
video: "https://www.youtube-nocookie.com/embed/SgPU84AqpkY",
links: [
{ text: "Watch livestream", href: "https://youtu.be/SgPU84AqpkY" }
]
},
{
title: "Intro to physics",
description: "The Roblox engine simulates real-life materials, physics, collisions and more. Join one of our product managers for a overview of how the physics simulation works.",
video: "https://www.youtube-nocookie.com/embed/9mXvhYSv7fc",
links: [
{ text: "Watch livestream", href: "https://youtu.be/9mXvhYSv7fc" },
]
},
]
},
{
title: "Avatar items",
description: "Making avatar items can sometimes be easier than making an experience. You can make a simple 2D t-shirt with an image editor without having to open Studio at all. If you're interested in 3D modeling, use Blender and Studio together to make a basic 3D accessory.",
buttons: [
{ text: "See all docs", href: "../avatar" }
],
content: [
{
title: "Avatar items overview",
description: "Learn about all the different things you can create and allow users to equip for their avatars.",
video: "https://www.youtube-nocookie.com/embed/EUDSIUmLjxA",
links: [{ text: "Watch overview", href: "https://youtu.be/EUDSIUmLjxA" }]
},
{
title: "Create a t-shirt",
description: "A simple t-shirt is the easiest example of how to create an avatar item.",
video: "https://www.youtube-nocookie.com/embed/r_unfGZT5Ps",
links: [
{ text: "Watch how to do it", href: "https://youtu.be/r_unfGZT5Ps" },
{ text: "Guides", href: "../art/classic-clothing" }
]
},
{
title: "Create a backpack accessory",
description: "Learn how to create a backpack, which is an example of a 3D accessory. These accessories are simple, non-animated items that attach to a single point on an avatar's body.",
video: "https://www.youtube-nocookie.com/embed/Eed29gV0hLA",
links: [
{ text: "Watch how to do it", href: "https://youtu.be/Eed29gV0hLA" },
{ text: "Guides", href: "../art/accessories" }
]
}
]
},
];
{sections.map((section, index) => (
<Grid style={{ marginBottom: 48 }} item xs={12} key={index}>
{section.title && (
<Typography variant='h1'>{section.title}</Typography>
)}
<div style={{ marginTop: 16, marginBottom: 48 }}>
{section.description && (
<p>{section.description}</p>
)}
{section.buttons && section.buttons.map((button, btnIndex) => (
<Button
key={btnIndex}
style={{ marginTop: 8, marginRight: 24 }}
variant="contained"
color="secondary"
size="large"
href={button.href} >
{button.text}
</Button>
))}
</div>
{section.content && (
<Grid container spacing={4}>
{section.content.map((content, contentIndex) => {
const mdValue = 12 / section.content.length;
return (
<Grid item xs={12} sm={6} md={mdValue} key={contentIndex}>
<div style={{ marginBottom: 48 }}>
{content.image && (
<img
style={{ width: '100%', aspectRatio: 16/9, height: 'auto', objectFit: 'cover' }}
src={content.image}
alt=""
/>
)}
{content.video && (
<iframe
style={{ marginBottom: 16, width: '100%', aspectRatio: 16/9, height: 'auto' }}
src={content.video}
title="YouTube video player"
frameborder="0"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share"
referrerpolicy="strict-origin-when-cross-origin"
allowFullScreen ></iframe>
)}
<h3>{content.title}</h3>
<p>{content.description}</p>
{content.links && content.links.map((link, linkIndex) => (
<a href={link.href} key={linkIndex}>
<Typography variant='buttonLarge'>{link.text}</Typography><br />
</a>
))}
{content.buttons && content.buttons.map((button, btnIndex) => (
!button.useStudioButton && (
<Button
key={btnIndex}
style={{ marginTop: 16, marginRight: 24 }}
variant="contained"
color="secondary"
size="large"
href={button.href} >
{button.text}
</Button>
)
))}
</div>
</Grid>
);
})}
</Grid>
)}
</Grid>
))}

View file

@ -0,0 +1,87 @@
---
title: How is Roblox different from other platforms?
description: Frictionless play, community collaboration, and reach beyond Roblox.
hideInPageNavigation: true
fullWidth: true
---
<h2 style={{ marginTop: 24, marginBottom: 24 }}>Frictionless play</h2>
<Grid container spacing={8}>
<Grid item xs={12} md={5}>
<Card style={{ marginBottom: 24 }}>
<CardContent>
<h4>No complicated downloads</h4>
<Typography variant='body1'>Roblox is built on the cloud, allowing users to join new experiences in seconds, without having to download massive files.</Typography>
</CardContent>
</Card>
<Card style={{ marginBottom: 24 }}>
<CardContent>
<h4>Automatic matchmaking</h4>
<Typography variant='body1'>Users are automatically placed in servers with friends and other users from their region, making it easier than ever to connect with friends and make new ones.</Typography>
</CardContent>
</Card>
<Card style={{ marginBottom: 24 }}>
<CardContent>
<h4>Cross-platform support</h4>
<Typography variant='body1'>Experiences can be published across all major devices, allowing players to play how they want, where they want, with whomever they want.</Typography>
</CardContent>
</Card>
</Grid>
<Grid item xs={12} md={7}>
<img
style={{ width: '100%', height: 'auto' }}
src="../assets/developer-jumpstart/image7.png"
alt=""
/>
</Grid>
</Grid>
<h2 style={{ marginTop: 48, marginBottom: 24 }}>Collaborate with your players</h2>
<Grid container spacing={8}>
<Grid item xs={12} md={5}>
<Card style={{ marginBottom: 24 }}>
<CardContent>
<h4>Communities are part of the process</h4>
<Typography variant='body1'>Due to the user-generated content (UGC) nature of Roblox, the community is much more involved, as many devs are also often community members. Cultivating a healthy community and involving users in development is key to success.</Typography>
</CardContent>
</Card>
<Card style={{ marginBottom: 24 }}>
<CardContent>
<h4>Benefit from direct feedback</h4>
<Typography variant='body1'>Since Roblox enables creators to develop and publish updates quickly, they can efficiently gather feedback and iterate -- resulting in a deeper understanding of their audience and a more focused experience for users.</Typography>
</CardContent>
</Card>
</Grid>
<Grid item xs={12} md={7}>
<img
style={{ width: '100%', height: 'auto' }}
src="../assets/developer-jumpstart/image16.jpg"
alt=""
/>
</Grid>
</Grid>
<h2 style={{ marginTop: 48, marginBottom: 24 }}>Reach beyond Roblox</h2>
<Grid container spacing={8}>
<Grid item xs={12} md={5}>
<Card style={{ marginBottom: 24 }}>
<CardContent>
<h4>Massive creator ecosystem</h4>
<Typography variant='body1'>Roblox fuels a thriving community of content creators on platforms like YouTube and TikTok, generating views and driving engagement.</Typography>
</CardContent>
</Card>
<Card style={{ marginBottom: 24 }}>
<CardContent>
<h4>Engaged cross-platform audience</h4>
<Typography variant='body1'>Roblox content resonates beyond the platform, with creators building loyal followings and extending reach to new players.</Typography>
</CardContent>
</Card>
</Grid>
<Grid item xs={12} md={7}>
<img
style={{ width: '100%', height: 'auto' }}
src="../assets/developer-jumpstart/image42.png"
alt=""
/>
</Grid>
</Grid>

View file

@ -0,0 +1,104 @@
---
title: Get Started
description: A guide for new Roblox developers. Explains why to develop on Roblox the platform, and how to get started.
hideInPageNavigation: true
---
<Grid container spacing={8}>
<Grid item xs={12} md={6} style={{ marginBottom: 48 }}>
<p>Welcome to Roblox, we're glad youʼre here! Itʼs an exciting time to develop on Roblox. This guide is a crash course in all things Roblox, covering the most commonly asked questions by developers:</p>
<ul>
<li>Why should I develop on Roblox?</li>
<li>How is Roblox different from other platforms?</li>
<li>What tools does Roblox provide?</li>
<li>How do I make money?</li>
<li>Are there any recommended strategies?</li>
<li>What other resources are there to learn more?</li>
</ul>
</Grid>
<Grid item xs={12} md={6}>
<img
style={{ width: '100%', height: 'auto' }}
src="../assets/developer-jumpstart/image39.png"
alt=""
/>
</Grid>
</Grid>
<div style={{ paddingBottom: 48 }}>
<Grid container spacing={2}>
<Grid item xs={12}>
<Typography variant='h2'>Choose a section to learn more about Roblox</Typography>
</Grid>
<Grid item xs={12} sm={6} md={4} style={{ display: 'flex' }}>
<Card style={{ width: '100%', display: 'flex', flexDirection: 'column' }}>
<CardContent style={{ flex: 1 }}>
<a href="./why-build-on-roblox.md">
<Typography variant='buttonLarge'>Why should I develop on Roblox?</Typography><br />
</a>
<Typography variant='body1'>Reasons to build on the Roblox platform—audience, tools, and opportunity.</Typography>
</CardContent>
</Card>
</Grid>
<Grid item xs={12} sm={6} md={4} style={{ display: 'flex' }}>
<Card style={{ width: '100%', display: 'flex', flexDirection: 'column' }}>
<CardContent style={{ flex: 1 }}>
<a href="./how-is-roblox-different.md">
<Typography variant='buttonLarge'>How is Roblox different from other platforms?</Typography><br />
</a>
<Typography variant='body1'>Frictionless play, community collaboration, and reach beyond Roblox.</Typography>
</CardContent>
</Card>
</Grid>
<Grid item xs={12} sm={6} md={4} style={{ display: 'flex' }}>
<Card style={{ width: '100%', display: 'flex', flexDirection: 'column' }}>
<CardContent style={{ flex: 1 }}>
<a href="./tools.md">
<Typography variant='buttonLarge'>What tools does Roblox provide?</Typography><br />
</a>
<Typography variant='body1'>Roblox Studio, Creator Hub, AI Assistant, and more.</Typography>
</CardContent>
</Card>
</Grid>
<Grid item xs={12} sm={6} md={4} style={{ display: 'flex' }}>
<Card style={{ width: '100%', display: 'flex', flexDirection: 'column' }}>
<CardContent style={{ flex: 1 }}>
<a href="./monetization.md">
<Typography variant='buttonLarge'>How do I make money?</Typography><br />
</a>
<Typography variant='body1'>Creator Rewards, in-experience purchases, subscriptions, UGC, and more.</Typography>
</CardContent>
</Card>
</Grid>
<Grid item xs={12} sm={6} md={4} style={{ display: 'flex' }}>
<Card style={{ width: '100%', display: 'flex', flexDirection: 'column' }}>
<CardContent style={{ flex: 1 }}>
<a href="./strategies.md">
<Typography variant='buttonLarge'>Recommended strategies</Typography><br />
</a>
<Typography variant='body1'>Set your game up for success, build and test your MVP, and iterate.</Typography>
</CardContent>
</Card>
</Grid>
<Grid item xs={12} sm={6} md={4} style={{ display: 'flex' }}>
<Card style={{ width: '100%', display: 'flex', flexDirection: 'column' }}>
<CardContent style={{ flex: 1 }}>
<a href="./creating.md">
<Typography variant='buttonLarge'>Start creating</Typography><br />
</a>
<Typography variant='body1'>Get started creating experiences and avatar items.</Typography>
</CardContent>
</Card>
</Grid>
<Grid item xs={12} sm={6} md={4} style={{ display: 'flex' }}>
<Card style={{ width: '100%', display: 'flex', flexDirection: 'column' }}>
<CardContent style={{ flex: 1 }}>
<a href="./resources.md">
<Typography variant='buttonLarge'>Resources</Typography><br />
</a>
<Typography variant='body1'>Find more useful resources for your creation journey.</Typography>
</CardContent>
</Card>
</Grid>
</Grid>
</div>

View file

@ -0,0 +1,257 @@
---
title: How do I make money?
description: Creator Rewards, in-experience purchases, subscriptions, UGC, immersive ads, and more.
hideInPageNavigation: true
fullWidth: true
---
<h2 style={{ marginTop: 24, marginBottom: 24 }}>Earn on Roblox</h2>
<Grid container spacing={8}>
<Grid item xs={12} md={5}>
<Card style={{ marginBottom: 24 }}>
<CardContent>
<h4>Diverse earning opportunities</h4>
<Typography variant='body1'>We're excited to provide creators with a wide variety of ways to earn from their experiences, including subscriptions, in-app purchases, engagement rewards, and more. We're always evolving and adding new features to help you earn and succeed.</Typography>
</CardContent>
</Card>
<Card style={{ marginBottom: 24 }}>
<CardContent>
<h4>Developer Exchange Program (DevEx)</h4>
<Typography variant='body1'>The <a href="https://en.help.roblox.com/hc/en-us/articles/203314100-Developer-Exchange-DevEx-FAQs" target="_blank">DevEx program</a> allows eligible creators to convert earned Robux into real-world currency. Once you've met the requirements, including having a minimum of 30,000 earned Robux, you can submit a request to cash out.</Typography>
</CardContent>
</Card>
</Grid>
<Grid item xs={12} md={7}>
<img style={{ width: '100%', height: 'auto' }} src="../assets/developer-jumpstart/image11.png" alt="" />
</Grid>
</Grid>
<h2 style={{ marginTop: 48, marginBottom: 24 }}>In-app purchases</h2>
<Grid container spacing={8}>
<Grid item xs={12} md={5}>
<Card style={{ marginBottom: 24 }}>
<CardContent>
<h4>Repeat purchases</h4>
<Typography variant='body1'><a href="../production/monetization/developer-products.md" target="_blank">Dev Products</a> are a type of sale item that can be purchased multiple times, only with Robux. This is used for things like in-game purchases, boosts, etc. Dev Products generally monetize better, as they can be repeatedly purchased.</Typography>
</CardContent>
</Card>
<Card style={{ marginBottom: 24 }}>
<CardContent>
<h4>One-time purchases</h4>
<Typography variant='body1'>[Game passes](../production/monetization/passes.md) are a type of sale item that can only be purchased once, only with Robux. This is useful for things like VIP passes, content bundles, or battle passes.</Typography>
</CardContent>
</Card>
<Card style={{ marginBottom: 24 }}>
<CardContent>
<h4>You receive 70% of Robux spent</h4>
<Typography variant='body1'>The remaining 30% is Robloxʼs Marketplace Fee. To convert these Robux to a real currency, youʼll still need to withdraw it via DevEx.</Typography>
</CardContent>
</Card>
</Grid>
<Grid item xs={12} md={7}>
<img style={{ width: '100%', height: 'auto' }} src="../assets/developer-jumpstart/image48.png" alt="" />
</Grid>
</Grid>
<h2 style={{ marginTop: 48, marginBottom: 24 }}>Subscriptions</h2>
<Grid container spacing={8}>
<Grid item xs={12} md={5}>
<Card style={{ marginBottom: 24 }}>
<CardContent>
<h4>Subscriptions</h4>
<Typography variant='body1'>[Subscriptions](../production/monetization/subscriptions.md) provide players with benefits for a recurring monthly fee. Common benefits include in-game currency, multipliers, and access to exclusive vehicles, weapons and clothing. Subscriptions auto-renew and are priced in local currency.</Typography>
</CardContent>
</Card>
<Card style={{ marginBottom: 24 }}>
<CardContent>
<h4>Subscriber analytics</h4>
<Typography variant='body1'>The Creator dashboard allows you to track metrics including subscriber breakdown and cancellations, estimated revenue, subscriptions by platform, and platform earnings.</Typography>
</CardContent>
</Card>
</Grid>
<Grid item xs={12} md={7}>
<img style={{ width: '100%', height: 'auto' }} src="../assets/developer-jumpstart/image25.png"
alt="" />
<img style={{ width: '100%', height: 'auto' }} src="../assets/developer-jumpstart/image20.png" alt="" />
</Grid>
</Grid>
<h2 style={{ marginTop: 48, marginBottom: 24 }}>Creator rewards</h2>
<Grid container spacing={8}>
<Grid item xs={12} md={5}>
<Card style={{ marginBottom: 24 }}>
<CardContent>
<h4>Creator Rewards</h4>
<Typography variant='body1'>Weʼre increasing our investment in the developer community by rewarding creators for producing engaging content and bringing new users to the platform.</Typography>
</CardContent>
</Card>
<Card style={{ marginBottom: 24 }}>
<CardContent>
<h4>Daily engagement</h4>
<Typography variant='body1'>Earn a fixed payout of 5 Robux when a user who has spent at least $9.99 on the platform in the last 60 days (an "Active Spender") plays your game for 10 minutes or more. This reward applies to the first three experiences they play per day. *</Typography>
</CardContent>
</Card>
<Card style={{ marginBottom: 24 }}>
<CardContent>
<h4>Audience expansion</h4>
<Typography variant='body1'>Earn a 35% revenue share on the first $100 in Robux purchases made by a new or returning user who finds your experience through a direct link or search, and plays for at least 10 minutes. _</Typography>
</CardContent>
</Card>
<Typography variant='body2' color="textSecondary"><em>_ Less Qualifying Purchases they have made in the 60 days after each time (if any) they have previously reactivated). Additional restrictions apply.</em></Typography>
</Grid>
<Grid item xs={12} md={7}>
<img style={{ width: '100%', height: 'auto' }} src="../assets/developer-jumpstart/image38.png" alt="" />
</Grid>
</Grid>
<h2 style={{ marginTop: 48, marginBottom: 24 }}>UGC avatar items</h2>
<Grid container spacing={8}>
<Grid item xs={12} md={5}>
<Card style={{ marginBottom: 24 }}>
<CardContent>
<h4>UGC for everyone</h4>
<Typography variant='body1'>Previously restricted to approved creators, selling user-generated avatar clothing is now available to all creators who are age-verified and subscribe to Premium.</Typography>
</CardContent>
</Card>
<Card style={{ marginBottom: 24 }}>
<CardContent>
<h4>Creators receive 30%, sellers 40%</h4>
<Typography variant='body1'>For items sold in the Avatar Marketplace, Roblox collects the 40% seller portion + a 30% market fee. If your item is sold from within another experience, the owner of that experience will collect the 40% seller portion instead.</Typography>
</CardContent>
</Card>
<Card style={{ marginBottom: 24 }}>
<CardContent>
<h4>Sell in your own experience</h4>
<Typography variant='body1'>If you sell your UGC item within an experience you own, you will earn 30% for being the creator and 40% for being the seller, bringing your return to 70% of Robux spent.</Typography>
</CardContent>
</Card>
</Grid>
<Grid item xs={12} md={7}>
<img style={{ width: '100%', height: 'auto' }} src="../assets/developer-jumpstart/image34.png" alt="" />
</Grid>
</Grid>
<h2 style={{ marginTop: 48, marginBottom: 24 }}>Immersive ads</h2>
<Grid container spacing={8}>
<Grid item xs={12} md={5}>
<Card style={{ marginBottom: 24 }}>
<CardContent>
<h4>Advertise</h4>
<Typography variant='body1'>Programmatically-served ad content from brands appear directly within your experiences. These native ads blend into the 3D environment, offering a seamless way to monetize your experience.</Typography>
</CardContent>
</Card>
<Card style={{ marginBottom: 24 }}>
<CardContent>
<h4>Ad formats</h4>
<Typography variant='body1'>Integrate a [variety of formats](../production/promotion/advertise.md), including video ads that can autoplay or be click-to-play, image ads that are static billboards, and portal ads that can teleport users to an advertiser's experience.</Typography>
</CardContent>
</Card>
<Card style={{ marginBottom: 24 }}>
<CardContent>
<h4>How to earn</h4>
<Typography variant='body1'>Creators are paid through a revenue share based on engagement. You can earn from video views, ad impressions, and successful teleports that are generated by the ads in your experience.</Typography>
</CardContent>
</Card>
</Grid>
<Grid item xs={12} md={7}>
<img style={{ width: '100%', height: 'auto' }} src="../assets/developer-jumpstart/image41.png" alt="" />
</Grid>
</Grid>
<h2 style={{ marginTop: 48, marginBottom: 24 }}>Brand integrations</h2>
<Grid container spacing={8}>
<Grid item xs={12} md={5}>
<Card style={{ marginBottom: 24 }}>
<CardContent>
<h4>Limited-time activations</h4>
<Typography variant='body1'>Limited-time activations bring brands into an experience for a brief time – usually 2–4 weeks – through content like quests and avatar items. For a more authentic integration that players will respond to, be sure to choose brand partners that fit your experienceʼs vibe, aesthetics, and goals.</Typography>
</CardContent>
</Card>
<Card style={{ marginBottom: 24 }}>
<CardContent>
<h4>Make it meaningful</h4>
<Typography variant='body1'>For a seamless and authentic brand integration, weave the brand into your game's [core loop](https://youtu.be/gkFKF9A-snY). This means the brand content should feel like a natural extension of the gameplay, enhancing the player's progression and overall experience.</Typography>
</CardContent>
</Card>
</Grid>
<Grid item xs={12} md={7}>
<img style={{ width: '100%', height: 'auto' }} src="../assets/developer-jumpstart/image14.png" alt="" />
</Grid>
</Grid>
<h2 style={{ marginTop: 48, marginBottom: 24 }}>Digital + physical merchandising</h2>
<Grid container spacing={8}>
<Grid item xs={12} md={5}>
<Card style={{ marginBottom: 24 }}>
<CardContent>
<h4>Sell physical goods</h4>
<Typography variant='body1'>The new <a href="https://corp.roblox.com/newsroom/2025/05/roblox-launches-shopify-integration-amp-licensing-program" target="_blank">Roblox Commerce APIs</a> enable creators and brands to sell physical products directly within their Roblox experiences, creating a virtual mall-like experience. Shopify is the first integrated partner.</Typography>
</CardContent>
</Card>
<Card style={{ marginBottom: 24 }}>
<CardContent>
<h4>Bridge digital &amp; physical</h4>
<Typography variant='body1'>The Approved Merchandiser Program (AMP) links physical product purchases with digital items on Roblox. Physical products with the AMP badge will include a code unlocking a unique digital item in the experience.</Typography>
</CardContent>
</Card>
<Card style={{ marginBottom: 24 }}>
<CardContent>
<h4>Empowering creators</h4>
<Typography variant='body1'>By bridging the gap between virtual and real-world shopping, Roblox is opening up new avenues for revenue generation and brand building.</Typography>
</CardContent>
</Card>
</Grid>
<Grid item xs={12} md={7}>
<img style={{ width: '100%', height: 'auto' }} src="../assets/developer-jumpstart/image49.png" alt="" />
</Grid>
</Grid>
<h2 style={{ marginTop: 48, marginBottom: 24 }}>Price optimization</h2>
<Grid container spacing={8}>
<Grid item xs={12} md={5}>
<Card style={{ marginBottom: 24 }}>
<CardContent>
<h4>Automated price testing</h4>
<Typography variant='body1'>Our [Price Optimization](../production/monetization/price-optimization.md) system intelligently experiments with different price points, showing them to subsets of your users to identify the sweet spot that maximizes your revenue.</Typography>
</CardContent>
</Card>
<Card style={{ marginBottom: 24 }}>
<CardContent>
<h4>Dynamic pricing</h4>
<Typography variant='body1'>Keep your prices competitive with dynamically-scripted pricing. Our tools make flexible pricing strategies simple, allowing you to respond to market trends and player behavior in real time.</Typography>
</CardContent>
</Card>
<Card style={{ marginBottom: 24 }}>
<CardContent>
<h4>Data-driven decisions</h4>
<Typography variant='body1'>Monitor both short-term and long-term impacts, and use our insights to help ensure that your pricing strategy drives sustainable growth and maximizes your overall earnings.</Typography>
</CardContent>
</Card>
</Grid>
<Grid item xs={12} md={7}>
<img style={{ width: '100%', height: 'auto' }} src="../assets/developer-jumpstart/image10.png" alt="" />
</Grid>
</Grid>
<h2 style={{ marginTop: 48, marginBottom: 24 }}>Regional pricing</h2>
<Grid container spacing={8}>
<Grid item xs={12} md={5}>
<Card style={{ marginBottom: 24 }}>
<CardContent>
<h4>Unlock international reach</h4>
<Typography variant='body1'>Roblox's [Regional Pricing](https://corp.roblox.com/newsroom/2025/04/roblox-launches-regional-pricing-for-in-experience-items) automatically determines and sets optimal local prices for your in-experience items, making your content more accessible and appealing to players around the world.</Typography>
</CardContent>
</Card>
<Card style={{ marginBottom: 24 }}>
<CardContent>
<h4>Help boost worldwide spending</h4>
<Typography variant='body1'>Early testing demonstrates substantial increases in user spending in regions like Mexico, Brazil, and the Philippines, demonstrating the power of localized pricing strategies.</Typography>
</CardContent>
</Card>
</Grid>
<Grid item xs={12} md={7}>
<img style={{ width: '50%', height: 'auto' }} src="../assets/developer-jumpstart/image45.png"
alt="" />
<img style={{ width: '50%', height: 'auto' }} src="../assets/developer-jumpstart/image19.png" alt="" />
</Grid>
</Grid>

View file

@ -0,0 +1,98 @@
---
title: Resources
description: Get started with these resources, community feedback, growth strategies, and RDC.
hideInPageNavigation: true
fullWidth: true
---
<h2 style={{ marginTop: 24, marginBottom: 24 }}>Get started with these resources</h2>
<Grid container spacing={2}>
<Grid item xs={12} sm={6} md={4} style={{ display: 'flex' }}>
<Card style={{ width: '100%', display: 'flex', flexDirection: 'column' }}>
<CardContent style={{ flex: 1 }}>
<a href="https://create.roblox.com/roadmap">
<Typography variant='buttonLarge'>Roblox Creator Roadmap</Typography><br />
</a>
<Typography variant='body1'>See what's coming to the platform and plan ahead.</Typography>
</CardContent>
</Card>
</Grid>
<Grid item xs={12} sm={6} md={4} style={{ display: 'flex' }}>
<Card style={{ width: '100%', display: 'flex', flexDirection: 'column' }}>
<CardContent style={{ flex: 1 }}>
<a href="https://brands.roblox.com/resources/activating-on-roblox-partnering-with-developers">
<Typography variant='buttonLarge'>Tips for finding the right developer partners</Typography><br />
</a>
<Typography variant='body1'>Guidance for brands on partnering with the right developers.</Typography>
</CardContent>
</Card>
</Grid>
<Grid item xs={12} sm={6} md={4} style={{ display: 'flex' }}>
<Card style={{ width: '100%', display: 'flex', flexDirection: 'column' }}>
<CardContent style={{ flex: 1 }}>
<a href="https://brands.roblox.com/resources/how-to-build-engaging-brand-experiences-on-roblox">
<Typography variant='buttonLarge'>More on building engaging experiences</Typography><br />
</a>
<Typography variant='body1'>Best practices for creating compelling brand experiences on Roblox.</Typography>
</CardContent>
</Card>
</Grid>
<Grid item xs={12} sm={6} md={4} style={{ display: 'flex' }}>
<Card style={{ width: '100%', display: 'flex', flexDirection: 'column' }}>
<CardContent style={{ flex: 1 }}>
<a href="../production/monetization/index.md">
<Typography variant='buttonLarge'>Learn techniques for monetizing your experience</Typography><br />
</a>
<Typography variant='body1'>Learn how to monetize your experience in the creator economy.</Typography>
</CardContent>
</Card>
</Grid>
<Grid item xs={12} sm={6} md={4} style={{ display: 'flex' }}>
<Card style={{ width: '100%', display: 'flex', flexDirection: 'column' }}>
<CardContent style={{ flex: 1 }}>
<a href="../resources/feature-packages/index.md">
<Typography variant='buttonLarge'>Get pre-built Feature Packages</Typography><br />
</a>
<Typography variant='body1'>Ready-to-use systems for common game features.</Typography>
</CardContent>
</Card>
</Grid>
<Grid item xs={12} sm={6} md={4} style={{ display: 'flex' }}>
<Card style={{ width: '100%', display: 'flex', flexDirection: 'column' }}>
<CardContent style={{ flex: 1 }}>
<a href="https://corp.roblox.com/newsroom/2025/07/roblox-launches-new-licensing-platform-for-experiences">
<Typography variant='buttonLarge'>Learn about Roblox's License Manager and Catalog</Typography><br />
</a>
<Typography variant='body1'>Licensing and catalog tools for experiences and content.</Typography>
</CardContent>
</Card>
</Grid>
</Grid>
<h2 style={{ marginTop: 48, marginBottom: 24 }}>Learn more at the Roblox Developers Conference</h2>
<Grid container spacing={8}>
<Grid item xs={12} md={5}>
<Card style={{ marginBottom: 24 }}>
<CardContent>
<h4>Presentations</h4>
<Typography variant='body1'>RDC offers creators a firsthand look into the future of Roblox with keynote presentations from our CEO David Baszucki and other Roblox leaders.</Typography>
</CardContent>
</Card>
<Card style={{ marginBottom: 24 }}>
<CardContent>
<h4>Breakout sessions</h4>
<Typography variant='body1'>There are in-depth breakout sessions showcasing the latest technology that will empower creator success and lots of great networking opportunities.</Typography>
</CardContent>
</Card>
<Card style={{ marginBottom: 24 }}>
<CardContent>
<h4>Roblox Innovation Awards</h4>
<Typography variant='body1'>This is where we also hold the <a href="https://www.youtube-nocookie.com/watch?v=7DXTQcA9G_A" target="_blank">Roblox Innovation Awards</a>, an annual award show recognizing the yearʼs most innovative experiences and creators.</Typography>
</CardContent>
</Card>
</Grid>
<Grid item xs={12} md={7}>
<iframe width="560" height="315" src="https://www.youtube-nocookie.com/embed/PVlCHE9pc50" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe><br/><br/>
<Typography variant='caption1'><a href="https://corp.roblox.com/newsroom/2025/09/roblox-rdc-2025" target="_blank">Read more about RDC 2025</a></Typography>
</Grid>
</Grid>

View file

@ -0,0 +1,554 @@
---
title: Recommended strategies
description: Set your game up for success, build and test your MVP, and iterate.
hideInPageNavigation: true
fullWidth: true
---
<h2 style={{ marginTop: 24, marginBottom: 24 }}>Set your game up for success</h2>
<Grid container spacing={8}>
<Grid item xs={12} md={5}>
<Card style={{ marginBottom: 24 }}>
<CardContent>
<h4>Assemble your Roblox dream team</h4>
<Typography variant='body1'>Look for developers with expertise in game design, 3D modeling, scripting, and optimization from within the Roblox community. A seasoned developer can help navigate the technical complexities of Roblox and ensure your vision is executed effectively, leading to a higher quality and more engaging experience.</Typography>
</CardContent>
</Card>
<Card style={{ marginBottom: 24 }}>
<CardContent>
<h4>Be aware of popular games &amp; genres</h4>
<Typography variant='body1'>Understanding the preferences of the Roblox user base is essential when selecting a genre. Popular genres on Roblox include role-playing games, simulators, obstacle courses (obbies), and survival games. Choosing a proven genre will increase the likelihood of attracting and retaining players.</Typography>
</CardContent>
</Card>
</Grid>
<Grid item xs={12} md={7}>
<img style={{ width: '100%', height: 'auto' }} src="../assets/developer-jumpstart/image1.png" alt="" />
</Grid>
</Grid>
<h2 style={{ marginTop: 48, marginBottom: 24 }}>Understand your target audience</h2>
<Grid container spacing={8}>
<Grid item xs={12} md={5}>
<Card style={{ marginBottom: 24 }}>
<CardContent>
<h4>Play similar experiences</h4>
<Typography variant='body1'>Itʼs important to have a good knowledge of popular Roblox experiences, especially those that are similar to yours. Why are users drawn to this experience? What keeps them interested?</Typography>
</CardContent>
</Card>
<Card style={{ marginBottom: 24 }}>
<CardContent>
<h4>Talk to players</h4>
<Typography variant='body1'>Watch the chat or join an experienceʼs Discord server to see what players talk about. Feel free to join in and ask questions yourself.</Typography>
</CardContent>
</Card>
<Card style={{ marginBottom: 24 }}>
<CardContent>
<h4>Watch YouTube videos</h4>
<Typography variant='body1'>If you donʼt have the time to get deep into an experience, watch videos on YouTube. These are often made by the community and can give you a good idea of what theyʼre interested in.</Typography>
</CardContent>
</Card>
</Grid>
<Grid item xs={12} md={7}>
<img style={{ width: '100%', height: 'auto' }} src="../assets/developer-jumpstart/image50.png" alt="" />
</Grid>
</Grid>
<h2 style={{ marginTop: 48, marginBottom: 24 }}>Define your KPIs</h2>
<Grid container spacing={8}>
<Grid item xs={12} md={5}>
<Card style={{ marginBottom: 24 }}>
<CardContent>
<h4>Identify goals</h4>
<Typography variant='body1'>To measure the success of your Roblox experience, define your Key Performance Indicators (KPIs) before development begins. These metrics (such as engagement, retention, and monetization) should guide your design from the start to ensure your game supports its target goals.</Typography>
</CardContent>
</Card>
<Card style={{ marginBottom: 24 }}>
<CardContent>
<h4>Organic social growth KPIs</h4>
<Typography variant='body1'>D1 Retention: Users who return to your game the day after their first session. Average Playtime Per User: The average amount of time that users spend in your game (Average Sessions/Day x Session Length).</Typography>
</CardContent>
</Card>
<Card style={{ marginBottom: 24 }}>
<CardContent>
<h4>Sustained growth KPIs</h4>
<Typography variant='body1'>D7 &amp; D30 Retention: Users who return 7 and 30 days after their first session. Conversion: The percentage of users who spend Robux in your experience. ARPPU: Average Revenue Per Paying User.</Typography>
</CardContent>
</Card>
</Grid>
<Grid item xs={12} md={7}>
<img style={{ width: '100%', height: 'auto' }} src="../assets/developer-jumpstart/image9.png" alt="" />
</Grid>
</Grid>
<h2 style={{ marginTop: 48, marginBottom: 24 }}>Design for multi-platform play</h2>
<Grid container spacing={8}>
<Grid item xs={12} md={5}>
<Card style={{ marginBottom: 24 }}>
<CardContent>
<h4>Playable anywhere</h4>
<Typography variant='body1'>Roblox is played on a variety of devices, including PCs, mobile phones, and consoles. It's essential to design a user interface (UI) and user experience (UX) that works seamlessly across all platforms. The UI should be clean, intuitive, and easy to navigate, regardless of the device being used.</Typography>
</CardContent>
</Card>
<Card style={{ marginBottom: 24 }}>
<CardContent>
<h4>Massive mobile audience</h4>
<Typography variant='body1'>Given Roblox's large mobile audience, ensure that your game is easily playable on a touchscreen with a well-designed mobile UI. Even for games with a higher percentage of PC players, such as shooters and RPGs, supporting mobile is still a best practice.</Typography>
</CardContent>
</Card>
<Card style={{ marginBottom: 24 }}>
<CardContent>
<h4>Optimize for performance</h4>
<Typography variant='body1'>Many Roblox users play on low-end devices, so performance is essential. Non-performant games may struggle to grow and maintain a user base.</Typography><br /><br />
<a href="../performance-optimization/index.md"><Typography variant='buttonLarge'>Learn more about Performance Optimization</Typography></a>
</CardContent>
</Card>
</Grid>
<Grid item xs={12} md={7}>
<img style={{ width: '60%', height: 'auto' }} src="../assets/developer-jumpstart/image15.jpg" alt="" />
</Grid>
</Grid>
<h2 style={{ marginTop: 48, marginBottom: 24 }}>Build a strong foundation</h2>
<Grid container spacing={8}>
<Grid item xs={12} md={5}>
<Card style={{ marginBottom: 24 }}>
<CardContent>
<h4>Design a killer core loop</h4>
<Typography variant='body1'>The [core loop](../production/game-design/core-loops.md) is the fundamental gameplay cycle that keeps players engaged and returning to your experience. It should consist of a series of actions and rewards that are satisfying, repeatable, and progressively challenging in order to motivate players to continue interacting with your experience.</Typography>
</CardContent>
</Card>
<Card style={{ marginBottom: 24 }}>
<CardContent>
<h4>Create a world they'll love</h4>
<Typography variant='body1'>Create a visually appealing and engaging environment that immerses players in your experience. The environment should be easy to navigate, fun to explore, and encourage positive interactions. Provide opportunities for players to connect with each other, fostering a sense of community.</Typography>
</CardContent>
</Card>
<Card style={{ marginBottom: 24 }}>
<CardContent>
<h4>Think ahead</h4>
<Typography variant='body1'>Plan long-term by designing with updates in mind. Implement reusable systems, such as quest, collection, or event frameworks that can be easily expanded. This approach will reduce development time and costs for future updates and ensure that your experience remains fresh and engaging.</Typography>
</CardContent>
</Card>
</Grid>
<Grid item xs={12} md={7}>
<iframe width="560" height="315" src="https://www.youtube-nocookie.com/embed/gkFKF9A-snY" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
</Grid>
</Grid>
<h2 style={{ marginTop: 48, marginBottom: 24 }}>Create a social, multiplayer experience</h2>
<Grid container spacing={8}>
<Grid item xs={12} md={5}>
<Card style={{ marginBottom: 24 }}>
<CardContent>
<h4>Friends play together</h4>
<Typography variant='body1'>Users often play together as a group. Try to design your gameplay to support group play wherever possible and make it easy for friends to connect.</Typography>
</CardContent>
</Card>
<Card style={{ marginBottom: 24 }}>
<CardContent>
<h4>Make users into content</h4>
<Typography variant='body1'>Designing for social interaction in games is not only good for growing your game, but it also serves as a form of content, taking some of the burden off of your team.</Typography>
</CardContent>
</Card>
<Card style={{ marginBottom: 24 }}>
<CardContent>
<h4>Design spaces for interaction</h4>
<Typography variant='body1'>When youʼre building out your level, think about how players can find and interact with each other. If the map is huge, players may be spread too thin.</Typography>
</CardContent>
</Card>
</Grid>
<Grid item xs={12} md={7}>
<img style={{ width: '100%', height: 'auto' }} src="../assets/developer-jumpstart/image37.png" alt="" />
</Grid>
</Grid>
<h2 style={{ marginTop: 48, marginBottom: 24 }}>Get to the fun quickly</h2>
<Grid container spacing={8}>
<Grid item xs={12} md={5}>
<Card style={{ marginBottom: 24 }}>
<CardContent>
<h4>Get to the fun quickly</h4>
<Typography variant='body1'>What makes your experience fun? What makes it different? Is it worth playing again? Users should be able to answer these questions within the first few minutes of playing your experience.</Typography>
</CardContent>
</Card>
<Card style={{ marginBottom: 24 }}>
<CardContent>
<h4>Avoid long tutorials</h4>
<Typography variant='body1'>Roblox players like to get to the action immediately and figure it out on their own (or with friends). If you must have a tutorial, keep it short, contextual, and interactive.</Typography>
</CardContent>
</Card>
<Card style={{ marginBottom: 24 }}>
<CardContent>
<h4>Donʼt restrict socialization</h4>
<Typography variant='body1'>Allow new players to socialize and learn from each other. Donʼt create barriers like individual server instances that prevent users from playing with friends.</Typography>
</CardContent>
</Card>
</Grid>
<Grid item xs={12} md={7}>
<img style={{ width: '100%', height: 'auto' }} src="../assets/developer-jumpstart/image22.png" alt="" />
</Grid>
</Grid>
<h2 style={{ marginTop: 48, marginBottom: 24 }}>Keep players invested</h2>
<Grid container spacing={8}>
<Grid item xs={12} md={5}>
<Card style={{ marginBottom: 24 }}>
<CardContent>
<h4>Give players goals</h4>
<Typography variant='body1'>Keep players motivated by providing a mix of short-term, mid-term, and long-term goals that cater to different playstyles and encourage exploration. This variety will improve player retention and prevent them from losing interest.</Typography>
</CardContent>
</Card>
<Card style={{ marginBottom: 24 }}>
<CardContent>
<h4>Add progression to make content last</h4>
<Typography variant='body1'>Progression systems give players a clear path toward their goals and a sense of accomplishment while slowing down their content consumption, giving you time to produce more.</Typography>
</CardContent>
</Card>
<Card style={{ marginBottom: 24 }}>
<CardContent>
<h4>Donʼt gate the fun</h4>
<Typography variant='body1'>If you do add progression, make sure there is still enough content available upfront to ensure new users can have fun in their first play session. They should also have a clear understanding of what their next goal is and how to achieve it.</Typography>
</CardContent>
</Card>
</Grid>
<Grid item xs={12} md={7}>
<img style={{ width: '100%', height: 'auto' }} src="../assets/developer-jumpstart/image17.png" alt="" />
<a href="https://create.roblox.com/docs/resources/feature-packages/season-passes" target="_blank"><Typography variant='buttonLarge'>Season Pass Feature Package</Typography></a>
</Grid>
</Grid>
<h2 style={{ marginTop: 48, marginBottom: 24 }}>Use F2P monetization practices</h2>
<Grid container spacing={8}>
<Grid item xs={12} md={5}>
<Card style={{ marginBottom: 24 }}>
<CardContent>
<h4>Give spenders options</h4>
<Typography variant='body1'>Help maximize your monetization potential by providing a variety of virtual items at different price points. This strategy appeals to both casual spenders and dedicated fans. Consider adding a starter pack containing items that appeal to new players.</Typography>
</CardContent>
</Card>
<Card style={{ marginBottom: 24 }}>
<CardContent>
<h4>Design for repeat spend</h4>
<Typography variant='body1'>Why would a player want to return and continue to spend, over time? As opposed to one-time purchases, players will spend much more on repeatable purchases (like consumable items) as thereʼs no limit to how much they can spend.</Typography>
</CardContent>
</Card>
<Card style={{ marginBottom: 24 }}>
<CardContent>
<h4>Optimize your storefront</h4>
<Typography variant='body1'>Make your shop as transparent and frictionless as possible, so players understand what to buy, why, and how. Clearly communicate the value and availability of all items.</Typography><br /><br />
<a href="../production/game-design/monetization-foundations.md"><Typography variant='buttonLarge'>Learn more about merchandising best practices</Typography></a>
</CardContent>
</Card>
</Grid>
<Grid item xs={12} md={7}>
<img style={{ width: '100%', height: 'auto' }} src="../assets/developer-jumpstart/image6.png" alt="" />
</Grid>
</Grid>
<h2 style={{ marginTop: 48, marginBottom: 24 }}>Build &amp; test your MVP</h2>
<Grid container spacing={8}>
<Grid item xs={12} md={5}>
<Card style={{ marginBottom: 24 }}>
<CardContent>
<h4>Define your MVP</h4>
<Typography variant='body1'>What are your core features? If youʼre making a game, what is your core loop? Whatʼs the minimal version of your experience that can demonstrate these features?</Typography>
</CardContent>
</Card>
<Card style={{ marginBottom: 24 }}>
<CardContent>
<h4>Get feedback early</h4>
<Typography variant='body1'>While it may be tempting to build your fully realized experience, starting with MVP will allow you to get feedback and iterate early, resulting in a better final product.</Typography>
</CardContent>
</Card>
<Card style={{ marginBottom: 24 }}>
<CardContent>
<h4>Test your MVP</h4>
<Typography variant='body1'>As soon as itʼs ready, get your MVP in playersʼ hands. Their early feedback is the key to identifying issues, finding the fun, and setting your game up for success with real Roblox players. Donʼt wait until itʼs too late to pivot.</Typography>
</CardContent>
</Card>
</Grid>
<Grid item xs={12} md={7}>
<img style={{ width: '100%', height: 'auto' }} src="../assets/developer-jumpstart/image24.png" alt="" />
</Grid>
</Grid>
<h2 style={{ marginTop: 48, marginBottom: 24 }}>Playtest early and often</h2>
<Grid container spacing={4}>
<Grid item xs={12} md={6}>
<Card style={{ marginBottom: 24 }}>
<CardContent>
<h4>Small group playtests</h4>
<Typography variant='body1'>Give access to specific users only, which allows you to run small playtests. This option is good for testing whether players understand how to play and find the experience fun.</Typography>
</CardContent>
</Card>
<Card style={{ marginBottom: 24 }}>
<CardContent>
<h4>Limited-time public test</h4>
<Typography variant='body1'>Release a test experience to the public, acquire a small amount of users, then remove the game after a set amount of time (a weekend, week, etc.) This option is great for getting organic growth metrics like D1 Retention and session length.</Typography>
</CardContent>
</Card>
</Grid>
<Grid item xs={12} md={6}>
<Card style={{ marginBottom: 24 }}>
<CardContent>
<h4>Closed group beta</h4>
<Typography variant='body1'>The experience is playable by any user that joins your Group. This option is great for gathering community feedback, long-term retention, and monetization. However, it requires some existing community, and may be more friendly than an open test.</Typography>
</CardContent>
</Card>
<Card style={{ marginBottom: 24 }}>
<CardContent>
<h4>Open beta</h4>
<Typography variant='body1'>The experience is open to everyone, but has a "Beta" tag in the title. This is very common on Roblox; however, there is no practical difference between open beta and a full release beyond setting player expectations.</Typography>
</CardContent>
</Card>
</Grid>
</Grid>
<h2 style={{ marginTop: 48, marginBottom: 24 }}>Keep testing and iterating</h2>
<Grid container spacing={8}>
<Grid item xs={12} md={5}>
<Card style={{ marginBottom: 24 }}>
<CardContent>
<h4>Identify soft metrics</h4>
<Typography variant='body1'>Comparing your analytics to your target [KPIs](https://www.youtube.com/watch?v=RfpMZZFy8Zw) will help you figure out what areas need improvement, whether itʼs retention, engagement, or monetization.</Typography>
</CardContent>
</Card>
<Card style={{ marginBottom: 24 }}>
<CardContent>
<h4>Gather community insight</h4>
<Typography variant='body1'>Once you know what areas needs work, use your community to find out what is causing those problems.</Typography>
</CardContent>
</Card>
<Card style={{ marginBottom: 24 }}>
<CardContent>
<h4>Implement &amp; evaluate</h4>
<Typography variant='body1'>Once you identify a potential cause, make the necessary changes and test again. Go through this cycle until your KPIs are in line with your target.</Typography>
</CardContent>
</Card>
</Grid>
<Grid item xs={12} md={7}>
<img style={{ width: '100%', height: 'auto' }} src="../assets/developer-jumpstart/image13.png" alt="" />
<img style={{ width: '100%', height: 'auto' }} src="../assets/developer-jumpstart/image35.png" alt="" />
</Grid>
</Grid>
<h2 style={{ marginTop: 48, marginBottom: 24 }}>Get community feedback</h2>
<Grid container spacing={8}>
<Grid item xs={12} md={5}>
<Card style={{ marginBottom: 24 }}>
<CardContent>
<h4>Start a community chat server</h4>
<Typography variant='body1'>Be sure to set up your own social chat server, link it to your experience, and have moderation measures in place. This is where your dedicated community members will congregate.</Typography>
</CardContent>
</Card>
<Card style={{ marginBottom: 24 }}>
<CardContent>
<h4>Talk to your users</h4>
<Typography variant='body1'>Ask your users what they think. What do they like? What donʼt they like? What could make it better? Users will be happy to answer, plus it will make them feel like you care.</Typography>
</CardContent>
</Card>
<Card style={{ marginBottom: 24 }}>
<CardContent>
<h4>Watch how users interact</h4>
<Typography variant='body1'>Join your experience to observe what users do and what they talk about in the chat. Are they behaving how you would expect? Do they get confused at certain points? Are they interacting with other players?</Typography>
</CardContent>
</Card>
</Grid>
<Grid item xs={12} md={7}>
<Card style={{ marginBottom: 24 }}>
<CardContent>
<h4>Helpful Channels to Have in Your Community Chat Server</h4>
<h5>#Rules or #FAQ</h5><Typography variant='body1'>Explains how the server works and the expected behavior</Typography><br/><br/>
<h5>#Announcements</h5><Typography variant='body1'>Post any updates or announcements here</Typography><br/><br/>
<h5>#General</h5><Typography variant='body1'>Area for general conversation</Typography><br/><br/>
<h5>#Bugs</h5><Typography variant='body1'>For players to report bugs</Typography><br/><br/>
<h5>#Suggestions</h5><Typography variant='body1'>For players to submit ideas and feedback</Typography><br/><br/>
<h5>#Creative</h5><Typography variant='body1'>For players to submit content & fan art</Typography><br/><br/>
</CardContent>
</Card>
</Grid>
</Grid>
<h2 style={{ marginTop: 48, marginBottom: 24 }}>Be creator-friendly</h2>
<Grid container spacing={8}>
<Grid item xs={12} md={5}>
<Card style={{ marginBottom: 24 }}>
<CardContent>
<h4>Consider streamer needs</h4>
<Typography variant='body1'>Design your game to be streamer-friendly. Ensure players can easily record videos without UI elements getting in the way, and create an experience that's engaging for viewers to watch on platforms like YouTube and Twitch.</Typography>
</CardContent>
</Card>
<Card style={{ marginBottom: 24 }}>
<CardContent>
<h4>Fuel excitement &amp; speculation</h4>
<Typography variant='body1'>Many experiences have built-in hidden secrets, backstories, and "surprise and delight" moments that encourage players to share and discuss the content, leading to more social media engagement.</Typography>
</CardContent>
</Card>
<Card style={{ marginBottom: 24 }}>
<CardContent>
<h4>Create shareable moments</h4>
<Typography variant='body1'>In your experience, is there anything that users would want to share on TikTok or YouTube? Have they created something of their own? Are there achievements or "wow moments" worthy of posting on social media?</Typography>
</CardContent>
</Card>
</Grid>
<Grid item xs={12} md={7}>
<img style={{ width: '100%', height: 'auto' }} src="../assets/developer-jumpstart/image2.jpg" alt="" />
</Grid>
</Grid>
<h2 style={{ marginTop: 48, marginBottom: 24 }}>Build awareness through social media</h2>
<Grid container spacing={8}>
<Grid item xs={12} md={5}>
<Card style={{ marginBottom: 24 }}>
<CardContent>
<h4>Connect with creators</h4>
<Typography variant='body1'>Many Roblox users learn about new experiences from their favorite YouTubers. Getting one or a few of these influencers to play your experience can help get some initial traction.</Typography>
</CardContent>
</Card>
<Card style={{ marginBottom: 24 }}>
<CardContent>
<h4>Find the right influencer</h4>
<Typography variant='body1'>Influencers are more likely to cover your experience if it fits their audience – so do your research. If engaging with an influencer, be sure to follow the FTC's [Endorsement and Testimonial Guides](https://www.ftc.gov/sites/default/files/attachments/press-releases/ftc-publishes-final-guides-governing-endorsements-testimonials/091005revisedendorsementguides.pdf) and consult with your own legal counsel for specific advice.</Typography>
</CardContent>
</Card>
<Card style={{ marginBottom: 24 }}>
<CardContent>
<h4>Try targeted TikTok ads</h4>
<Typography variant='body1'>TikTok has also proven to be a good way to raise awareness off platform. You can use their targeting tools to surface ads to users that are interested in similar content. Check out TikTokʼs [best practices for Roblox developers](https://activity-va.tiktok.com/magic/eco/runtime/release/689e44394a786f02edabc8a7).</Typography>
</CardContent>
</Card>
</Grid>
<Grid item xs={12} md={7}>
<img style={{ width: '100%', height: 'auto' }} src="../assets/developer-jumpstart/image28.png" alt="" />
</Grid>
</Grid>
<h2 style={{ marginTop: 48, marginBottom: 24 }}>Unlock organic growth</h2>
<Grid container spacing={8}>
<Grid item xs={12} md={5}>
<Card style={{ marginBottom: 24 }}>
<CardContent>
<h4>Most users come from Home</h4>
<Typography variant='body1'>Beyond external sources like social media and word of mouth, Home is where a majority of discovery takes place and consists of recommendations that are algorithmically generated to optimize for engagement, long-term retention, and monetization on a per-user basis.</Typography>
</CardContent>
</Card>
<Card style={{ marginBottom: 24 }}>
<CardContent>
<h4>Data-defined placement</h4>
<Typography variant='body1'>We take many factors and signals into account when generating recommendations for someone. Beyond user-focused personalization (age, device, location, etc.) we also look at how well an experience retains players, how much Robux and time players spend, and how often users return to play again.</Typography>
</CardContent>
</Card>
<Card style={{ marginBottom: 24 }}>
<CardContent>
<h4>Spread the word</h4>
<Typography variant='body1'>The best way to maximize how much youʼre surfaced in recommendations is to create a strong experience with solid KPIs. Packaging (icon, thumbnail, media, description) can also help improve D1 retention and play through rate.</Typography>
</CardContent>
</Card>
</Grid>
<Grid item xs={12} md={7}>
<img style={{ width: '60%', height: 'auto' }} src="../assets/developer-jumpstart/image36.png" alt="" />
</Grid>
</Grid>
<h2 style={{ marginTop: 48, marginBottom: 24 }}>Use paid UA to build momentum</h2>
<Grid container spacing={8}>
<Grid item xs={12} md={5}>
<Card style={{ marginBottom: 24 }}>
<CardContent>
<h4>Use sponsored ads</h4>
<Typography variant='body1'>Sponsored Ads appear in the "Sponsored" sort on the home page and within search results. Theyʼre great at getting users into experiences but arenʼt as good at targeting specific users.</Typography><br /><br />
<a href="../production/promotion/ads-manager.md"><Typography variant='buttonLarge'>Learn more about Roblox Ads Manager</Typography></a>
</CardContent>
</Card>
<Card style={{ marginBottom: 24 }}>
<CardContent>
<h4>Use earned Robux</h4>
<Typography variant='body1'>If you do run an ad campaign, try to use Robux youʼve earned rather than purchasing Robux – the exchange rate is higher for purchased Robux.</Typography>
</CardContent>
</Card>
</Grid>
<Grid item xs={12} md={7}>
<img style={{ width: '100%', height: 'auto' }} src="../assets/developer-jumpstart/image32.png" alt="" />
</Grid>
</Grid>
<h2 style={{ marginTop: 48, marginBottom: 24 }}>Keep the content coming</h2>
<Grid container spacing={8}>
<Grid item xs={12} md={5}>
<Card style={{ marginBottom: 24 }}>
<CardContent>
<h4>Update to stay relevant</h4>
<Typography variant='body1'>New content updates keep experiences from becoming stale and give players another reason to come back. They also give content creators new material to cover.</Typography>
</CardContent>
</Card>
<Card style={{ marginBottom: 24 }}>
<CardContent>
<h4>A consistent cadence forms habits</h4>
<Typography variant='body1'>Establishing a consistent content cadence can encourage players to check in regularly. If itʼs sustainable for your team, aim for minor content updates every 1–2 weeks and major system updates every 2–3 months.</Typography>
</CardContent>
</Card>
<Card style={{ marginBottom: 24 }}>
<CardContent>
<h4>Plan for LiveOps from the start</h4>
<Typography variant='body1'>Itʼs important to plan for liveops ahead of time. What would those updates include? How do you plan on delivering these updates regularly? Scope updates to fit your teamʼs capacity.</Typography>
</CardContent>
</Card>
</Grid>
<Grid item xs={12} md={7}>
<img style={{ width: '60%', height: 'auto' }} src="../assets/developer-jumpstart/image4.png" alt="" />
</Grid>
</Grid>
<h2 style={{ marginTop: 48, marginBottom: 24 }}>Generate buzz with limited-time content</h2>
<Grid container spacing={8}>
<Grid item xs={12} md={5}>
<Card style={{ marginBottom: 24 }}>
<CardContent>
<h4>Limited-time events add variety</h4>
<Typography variant='body1'>Running seasonal events keeps your experience feeling fresh. Events can include thematic map updates, battle/season passes, holiday content and limited-time rewards.</Typography>
</CardContent>
</Card>
<Card style={{ marginBottom: 24 }}>
<CardContent>
<h4>Limited rewards create social value</h4>
<Typography variant='body1'>Time-limited reward items create rarity. The rarer an item is, the more social value it has amongst players, driving more of them to seek out and earn those items.</Typography>
</CardContent>
</Card>
<Card style={{ marginBottom: 24 }}>
<CardContent>
<h4>Let players flex</h4>
<Typography variant='body1'>Players will notice when other players have a special item or ability and ask "Howʼd you get that?!" This makes the owner feel special and encourages information sharing, which further increases the value of rare or limited items.</Typography>
</CardContent>
</Card>
</Grid>
<Grid item xs={12} md={7}>
<img style={{ width: '100%', height: 'auto' }} src="../assets/developer-jumpstart/image29.gif" alt="" />
</Grid>
</Grid>
<h2 style={{ marginTop: 48, marginBottom: 24 }}>Plan &amp; promote your updates</h2>
<Grid container spacing={8}>
<Grid item xs={12} md={5}>
<Card style={{ marginBottom: 24 }}>
<CardContent>
<h4>Plan for the long haul</h4>
<Typography variant='body1'>Develop a roadmap outlining your content plans for the next 6 to 12 months, outlining regular content updates and new systems or major features that keep gameplay fresh. A well-defined roadmap will help you stay organized, manage resources, and communicate your vision to both your development team and your players.</Typography>
</CardContent>
</Card>
<Card style={{ marginBottom: 24 }}>
<CardContent>
<h4>Spread the word</h4>
<Typography variant='body1'>Promote your updates across your social media channels and within the experience itself. Build anticipation by teasing new features, showcasing behind-the-scenes development, and engaging with your community.</Typography>
</CardContent>
</Card>
<Card style={{ marginBottom: 24 }}>
<CardContent>
<h4>Use update announcements</h4>
<Typography variant='body1'>The integrated events system lets you create time-based events for your experience. Players can discover your events on the experience's detail page and through an event details page, and they can opt into notifications that they'll receive when your event begins.</Typography>
</CardContent>
</Card>
</Grid>
<Grid item xs={12} md={7}>
<img style={{ width: '100%', height: 'auto' }} src="../assets/developer-jumpstart/image47.png" alt="" />
</Grid>
</Grid>

Some files were not shown because too many files have changed in this diff Show more