mirror of
https://github.com/rojo-rbx/rojo.git
synced 2026-10-23 05:51:39 +00:00
update rules
This commit is contained in:
parent
31350cd701
commit
cc2c828757
156 changed files with 4981 additions and 1497 deletions
|
|
@ -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
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
||||
|
|
|
|||
|
|
@ -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 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 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 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.
|
||||
|
|
|
|||
|
|
@ -0,0 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:5e744bcca5cdbd072dcd60d7ac7ea57f5120535b8e0dc6c61a340bc8a48dd5f4
|
||||
size 353059568
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:76c9082a4d6c2a018367281b9d334921db46ea941b169f13ac2bc11abf0dc797
|
||||
size 2750997
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:70810ab723611ddfaa3e5eb4c083957305705fe0a3bccf0172e6ff74b4a61317
|
||||
size 145292
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:ad871abf054b942f18d6b9706a5809538379cc7cfe510644d1f68d3fe3425633
|
||||
size 129402
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:30cf0564de491feab8d562b24a16591965cfa97b59e3a132c113aa6b3eb7d319
|
||||
size 70941
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:a81ba2a1a2e2ae0fc885058c915e331893ceed912cac1254c4915826b436028f
|
||||
size 46340
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:7117ccf49dc072e89b0e69a90ef1e2d83ea22ace7d7ae65ae436bab6ee13a966
|
||||
size 1117027
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:918668cbcd41fbc173b2e35aaccd399ec033c00d30d074e8bf891a645d136376
|
||||
size 265039
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:955470e94499f57a24c36af154443329edcb2bf8f71f0c761866a4c21911b3dd
|
||||
size 240939
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:eb8622fb891b867d642ba45e843a643e43653ebdd8cd2ea36b3402c98a048a51
|
||||
size 315796
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:8a3e9bc7a72e6e9a1cc62fbd4c1709b3af9360eb9688d7490638dc5d247019d5
|
||||
size 2013316
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:bccbd83910720f1a5152a02b0d4441782df19453430a0345f71d1f658404de3d
|
||||
size 187780
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:41e4e5f7450f9e1be7500a2d7a8f14c6856fad50ef59d71e7ca572b58e135490
|
||||
size 1077476
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:98057fe1a1cc8175a7f052267a3638d48a3e0f42270ed98ddf8e836c73e0d744
|
||||
size 267557
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:a0786316db482ee25364af853eed51876bfb81ab4786db17323ef265af5d56eb
|
||||
size 173660
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:c16bd7f4c9bc37a637ad009313c0c5a751f2fd29561408db9aba40845a7b57c5
|
||||
size 844696
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:85e1fd035de78a8ffc2bdc305c34b88bb3deebb4239f6c0f021d4d5750e92f60
|
||||
size 18031730
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:aeb52ab29ae4c9a793a197451da5884dc2cb2a0baa9a31c971398c1b50b8ba38
|
||||
size 109093
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:5188fc9bcaedd345b0fbbe4e183c55f6bac3e72262a28d6b1ac14dbfb50f3c6c
|
||||
size 216460
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:4f1198144379ee88204a500159dfb499b3ccee6a8e68f5cee5a9defa99286b20
|
||||
size 54884
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:36d924b74162a2e6421db3cc0c4223da87a5a99a4f119e80cf18b97eb17d65d7
|
||||
size 1066242
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:e0b6f5c9d068ee3122a35c67c7628f0b1ab4493e23f6b68a0606150fc2b6c3cd
|
||||
size 4925536
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:1bf17a0b5e3ca1b7fa73def2a9bfd85df21708757cda49ce98c3ff860673f8d0
|
||||
size 40765240
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:e36b717e5562c5c9a66b2f00eaa9750b397e28959f7f505ec8324f96159a5e39
|
||||
size 178534
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:7150cf017752c682801bfdef709bf5e6638cee34e859f4cb4b36c9628c64ac38
|
||||
size 236647
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:d52a00914cfdce2fc0442eba7a54ded193247f2626a46a6bee5230d2bfbe585b
|
||||
size 69756
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:fefd29af09fa54e9209f0ae93f8797892b15ba9819fac43e337f8496076ce1de
|
||||
size 53332
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:85374f4c89ae4ebfe67614c0f8c230db1cf8c372bd72ae4d7ed5ce4caee14f8e
|
||||
size 18755456
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:bd88fe5badff1d52f8028fe644b5f89176f4f67d0c375d0239835355c67a7ffb
|
||||
size 262639
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:d5581bfe016052d6e52c601022394d7a10e80682a14e6b8dc7e5c51c826f4525
|
||||
size 44798
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:98e6bc16697cc21c923c0b35e213482eed92f47f7cd6325d4b87921cf1d4ee63
|
||||
size 167126
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:e480949344eb622abf5ce522690c9628f2a580e1797d33a83a5be0415dc13bf9
|
||||
size 3029750
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:1fa29deefd40bd2d9483815031f5538cf703fe2648aff8834bcd680de78d633b
|
||||
size 126616
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:b795366ded7792a4964e5c59645662031a48318954d63e2612e1fa0f964ef936
|
||||
size 450824
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:c8c27305fada5e8a1aa1733246a5b87b8ea2acd866180f7dac34a1e61c3f0523
|
||||
size 165418
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:765565deb33074ea5f93660873936db067a762630332e6d1bd392ea90be20b02
|
||||
size 109376
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:1a0ad3f6b427d71bab4256847590b2e692af1e035e332de9ae030254894262e0
|
||||
size 589826
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:dfd9f13a0f2ee429276c7455ce8d5dca41c328c1ca5b11fab9e2ee2243accb06
|
||||
size 3676154
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:d1b005bc03997530b3aceaeb3df017e8d0869bba7e697e67e5c5702feee9ab88
|
||||
size 57886
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:af9f634df41ce54f01123fb11dd1af2b5e3e8093d4c7fb986255fbe5a0b99cd9
|
||||
size 5249243
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:c1309d258d20fd2dcad61a0b612be42a856c036ed54bd27d6b75c05fb3853bfe
|
||||
size 187533
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:021edfda621770d17c7f861efbf5b4ad4ac1c51182dc3edc8b4a40c933c20420
|
||||
size 93610
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:5f9bb8633adb5593d6bd33111eb8ca7972b60b01851dac73e1ba82b6defa3f86
|
||||
size 1241629
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:c3779cfcb818207d45783f5431026138fdfe2e5617bbf139e3a272ce460e2e9b
|
||||
size 189270
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:ff2210aa55c0f7ad127ba18efb26995eeed0376dadf08420a1c81e94f132adcf
|
||||
size 3877158
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:14c12a3464c1c970c31912f0444cf59b3a574d5ab97df815feee6ba60d06c9c7
|
||||
size 441294
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:df4f13605002ceb2702ee7fa6dcc31412746866f7c521b2b8dab808e28780cac
|
||||
size 1360643
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:557c74590d011bf49a046f1061dc5155a2399766a02a21fcfd1b83632fddcb6a
|
||||
size 89372
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:b4d943dff04c4dce79616390951e8793ff2a857c00779b530be51b9684192b33
|
||||
size 390456
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:961d4deca1a44e6a48a263f7b1618b676d9f0e3e9c2944063f428dcf5a7b08a0
|
||||
size 816454
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:af0eddb5a616851447e16211881c8c184da7104cfd39a45b4d628d33afefbd51
|
||||
size 2293973
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:d63ea8c9322f391075b3730c8989bde2dc9f835c26c06d6cacf9565034f433ff
|
||||
size 163176
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:ff2210aa55c0f7ad127ba18efb26995eeed0376dadf08420a1c81e94f132adcf
|
||||
size 3877158
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:8fd2373256bbfdc236ed4223cb47e524a74df36a422802a0574649c390575bcd
|
||||
size 967928
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:b9acf01a291a3cece8ea76493c539c25fea1a52a0051d374836aa15b5c9e4d34
|
||||
size 6343420
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:dbea877a77568ddb929d83f3319ab4c01dc5604456402395215551e062a70b99
|
||||
size 401951
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:a79478787194f8a64dc7752c13dee1e2090c59fa5a06b26a54c3fa7096a27974
|
||||
size 5267580
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:38d66b8622b26a10f3165b6376cede8bef4d642e295ab39e1317ba4fd1555e8f
|
||||
size 207939
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:9c47b9a886f16e9a2fab955c09b162a9b834132ea51d539764b83545bd99a029
|
||||
size 176093
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:e9084b7c51326b59ea314aa6a7d05b1081f2cb3bd3a8bf146956e08af5e8ae19
|
||||
size 120982
|
||||
|
|
@ -1,3 +0,0 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:7b18ede5dcd31e8940590903ea63d41eb9a488bf7dfd25c019a706c5856e5db6
|
||||
size 3107410
|
||||
|
|
@ -1,3 +0,0 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:817a09c90efeb87129dd7ef5f244bf0af24cb60c9fa7d080f515e9906009fc6e
|
||||
size 3164377
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:e513e39d96822e66c3fe244e007598748f93c97935be7e52042991fc08cccbee
|
||||
size 2611787
|
||||
|
|
@ -1,3 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:cb424364a43fe2221737def0da9f369563a83721b6dd87a2514f5208246d0e5c
|
||||
size 2207883
|
||||
oid sha256:330bd3b467d10e3e34d15f39d5998eac18b33c503dcaa4aa44ab259706129e35
|
||||
size 2182967
|
||||
|
|
|
|||
|
|
@ -1,3 +0,0 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:ab84f5f35233337f7197e4880b8f27248144dbe202c7dde0f3ea1cfbb7dbb21c
|
||||
size 1787417
|
||||
|
|
@ -1,3 +0,0 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:ce8d7cdaba541e2184176e4fec21313a8a81f58a0656c1785e2a2c15acfcbe7f
|
||||
size 1808094
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:174e9f04557d08cf029a1e37ef0458e299bb733aef2d9feb590a0b0ffa64d0be
|
||||
size 2420977
|
||||
|
|
@ -1,3 +0,0 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:e03d8b657e4b522e87abd70286de2b8b55708425b34bcacc9d47646b9df5b187
|
||||
size 2576298
|
||||
|
|
@ -1,3 +0,0 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:7ae52275fa02a9f488a570a9e67e4639e60087288d09ce93d49cd9e00550f12c
|
||||
size 2375207
|
||||
|
|
@ -1,3 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:211fac7fb009995450a0a4b619face50489d13221349ab329b93d6220c4dc54e
|
||||
size 2162434
|
||||
oid sha256:4b1dd6cd61d3235363abd42e675341e5b42f2bfa5fff22edffdbf4fa0052facf
|
||||
size 2203263
|
||||
|
|
|
|||
|
|
@ -1,3 +0,0 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:825e29647b74e80d23d72932a2f487369b5545f2cd1fdd1e4f4a595c4e53666c
|
||||
size 1986224
|
||||
|
|
@ -1,3 +0,0 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:667504455207cf83b81bfd20fe3185b0bb819f27a74a73c2b10385820bf6a716
|
||||
size 2023964
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:9ef0359b130a8526cd3cf392e26160afa2be69a2206f7238313ab90fa9b72f89
|
||||
size 2621444
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:f3eb2fe7964c8b5d07d055a4dcbf777c153020787623d604a00d96d578b9831f
|
||||
size 2023529
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:088dcca05844079c82a2166f27138659b6bc9059e3f227ee994936706ac7fef3
|
||||
size 1662204
|
||||
|
|
@ -1,3 +0,0 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:3439a9b306fe3baba52e6271f657273a7faaaf7b32d98a6a8f369a78ddc13bb6
|
||||
size 2993628
|
||||
|
|
@ -1,3 +0,0 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:d49c29ad0f6685e8f34591928ecf0681fb4664d5b483a6f74d3addcbd552c9d7
|
||||
size 2344763
|
||||
|
|
@ -1,3 +0,0 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:b466865f8b9e39310fe413f721cef3df389f650a5aa404dca734c2a59e48deb3
|
||||
size 1384988
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:c8d8026eab69003f0c77ee09bc64fb0f346ce400b30663e6c0bba468ddca2ce5
|
||||
size 2386795
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:7c27938037a8804590118d1e7702b0de9b0ecff322c23e7eb99bb3b5adcf0895
|
||||
size 2477896
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:48eb94241539bce1f9a9c1ccfd5b2f3b8ea6e297573aa25f48dd69797dffffd0
|
||||
size 2584327
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:b9fad20a7b321d98119fbb9ef7e1d026993d861274788407220f1e1ed33af345
|
||||
size 107640
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:03509d1ddf8ae09e3aec8edfd5b385a09e1d5c5908f81da26582a1f2a1cedcfc
|
||||
size 32339
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:a284a2d6ef727f788cc258ce965b09f3923a165cb74d5992267524551999847c
|
||||
size 107638
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:46b4962e6aa9e61129fd9e5cad812d3165e23825063c5b38d493d70b55bf5203
|
||||
size 137385
|
||||
|
|
@ -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¹</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¹</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>¹ 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>¹ 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>
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
))}
|
||||
194
.cursor/rules/roblox/en-us/get-started/creating.md
Normal file
194
.cursor/rules/roblox/en-us/get-started/creating.md
Normal 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>
|
||||
))}
|
||||
|
|
@ -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>
|
||||
104
.cursor/rules/roblox/en-us/get-started/index.md
Normal file
104
.cursor/rules/roblox/en-us/get-started/index.md
Normal 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>
|
||||
257
.cursor/rules/roblox/en-us/get-started/monetization.md
Normal file
257
.cursor/rules/roblox/en-us/get-started/monetization.md
Normal 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 & 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>
|
||||
98
.cursor/rules/roblox/en-us/get-started/resources.md
Normal file
98
.cursor/rules/roblox/en-us/get-started/resources.md
Normal 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>
|
||||
554
.cursor/rules/roblox/en-us/get-started/strategies.md
Normal file
554
.cursor/rules/roblox/en-us/get-started/strategies.md
Normal 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 & 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 & 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 & 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 & 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 & 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 & 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>
|
||||
207
.cursor/rules/roblox/en-us/get-started/tools.md
Normal file
207
.cursor/rules/roblox/en-us/get-started/tools.md
Normal file
|
|
@ -0,0 +1,207 @@
|
|||
---
|
||||
title: What tools does Roblox provide?
|
||||
description: Roblox Studio, Creator Hub, AI Assistant, matchmaking, discovery, and more.
|
||||
hideInPageNavigation: true
|
||||
fullWidth: true
|
||||
---
|
||||
|
||||
<h2 style={{ marginTop: 24, marginBottom: 24 }}>Dive into Roblox Studio</h2>
|
||||
<Grid container spacing={8}>
|
||||
<Grid item xs={12} md={5}>
|
||||
<Card style={{ marginBottom: 24 }}>
|
||||
<CardContent>
|
||||
<h4>Your one-stop shop</h4>
|
||||
<Typography variant='body1'>Create 3D environments, add animations, build physics simulations, and program game logic with Lua.</Typography>
|
||||
</CardContent>
|
||||
</Card>
|
||||
<Card style={{ marginBottom: 24 }}>
|
||||
<CardContent>
|
||||
<h4>Collaborate with Team Create</h4>
|
||||
<Typography variant='body1'>Multiple users can access and edit the same project simultaneously, making it easier to collaborate and communicate with teammates.</Typography>
|
||||
</CardContent>
|
||||
</Card>
|
||||
<Card style={{ marginBottom: 24 }}>
|
||||
<CardContent>
|
||||
<h4>Test and publish directly from Studio</h4>
|
||||
<Typography variant='body1'>Test your creations and quickly iterate, then when youʼre ready, publish to Roblox with the click of a button.</Typography>
|
||||
</CardContent>
|
||||
</Card>
|
||||
</Grid>
|
||||
<Grid item xs={12} md={7}>
|
||||
<img style={{ width: '100%', height: 'auto' }} src="../assets/developer-jumpstart/image8.png" alt="" />
|
||||
</Grid>
|
||||
</Grid>
|
||||
|
||||
<h2 style={{ marginTop: 48, marginBottom: 24 }}>Learn and grow with Creator Hub</h2>
|
||||
<Grid container spacing={8}>
|
||||
<Grid item xs={12} md={5}>
|
||||
<Card style={{ marginBottom: 24 }}>
|
||||
<CardContent>
|
||||
<h4>Creator Dashboard</h4>
|
||||
<Typography variant='body1'>Access your experienceʼs engagement, retention, and monetization KPIs, free of charge.</Typography>
|
||||
</CardContent>
|
||||
</Card>
|
||||
<Card style={{ marginBottom: 24 }}>
|
||||
<CardContent>
|
||||
<h4>Documentation</h4>
|
||||
<Typography variant='body1'>Hit the ground running with articles, tutorials and videos on topics ranging from design and implementation to analytics and LiveOps.</Typography>
|
||||
</CardContent>
|
||||
</Card>
|
||||
<Card style={{ marginBottom: 24 }}>
|
||||
<CardContent>
|
||||
<h4>Developer Forum</h4>
|
||||
<Typography variant='body1'>Get advice from the community, file a bug report, and learn about the latest Roblox updates.</Typography>
|
||||
</CardContent>
|
||||
</Card>
|
||||
</Grid>
|
||||
<Grid item xs={12} md={7}>
|
||||
<img style={{ width: '100%', height: 'auto' }} src="../assets/developer-jumpstart/image46.png" alt="" />
|
||||
</Grid>
|
||||
</Grid>
|
||||
|
||||
<h2 style={{ marginTop: 48, marginBottom: 24 }}>Creator Hub: Marketplace and Talent Hub</h2>
|
||||
<Grid container spacing={8}>
|
||||
<Grid item xs={12} md={5}>
|
||||
<Card style={{ marginBottom: 24 }}>
|
||||
<CardContent>
|
||||
<h4>Marketplace</h4>
|
||||
<Typography variant='body1'>Find all the <a href="https://create.roblox.com/store/models" target="_blank">assets</a> you need, from royalty-free music to community-made models and helpful plugins.</Typography>
|
||||
</CardContent>
|
||||
</Card>
|
||||
<Card style={{ marginBottom: 24 }}>
|
||||
<CardContent>
|
||||
<h4>Talent Hub</h4>
|
||||
<Typography variant='body1'>Whether youʼre searching for artists, programmers or designers, you can find them and review their work on <a href="https://create.roblox.com/talent" target="_blank">Talent Hub</a>.</Typography>
|
||||
</CardContent>
|
||||
</Card>
|
||||
</Grid>
|
||||
<Grid item xs={12} md={7}>
|
||||
<img style={{ width: '60%', height: 'auto' }} src="../assets/developer-jumpstart/image26.png" alt="" />
|
||||
</Grid>
|
||||
</Grid>
|
||||
|
||||
<h2 style={{ marginTop: 48, marginBottom: 24 }}>Meet your AI assistant</h2>
|
||||
<Grid container spacing={8}>
|
||||
<Grid item xs={12} md={5}>
|
||||
<Card style={{ marginBottom: 24 }}>
|
||||
<CardContent>
|
||||
<h4>Supercharge your workflow</h4>
|
||||
<Typography variant='body1'>Our <a href="../assistant/guide.md">AI Assistant</a> revolutionizes your development process by providing instant, context-aware support. Get immediate answers to your Roblox questions, generate and modify code snippets, and insert assets directly into your game, all within Studio.</Typography>
|
||||
</CardContent>
|
||||
</Card>
|
||||
<Card style={{ marginBottom: 24 }}>
|
||||
<CardContent>
|
||||
<h4>Automate the mundane</h4>
|
||||
<Typography variant='body1'>AI Assistant empowers you to automate common actions such as bulk property modifications. By handling these time-consuming chores, Assistant frees you to concentrate on the higher-level design and innovative gameplay elements that make your experiences truly unique.</Typography>
|
||||
</CardContent>
|
||||
</Card>
|
||||
</Grid>
|
||||
<Grid item xs={12} md={7}>
|
||||
<img style={{ width: '60%', height: 'auto' }} src="../assets/developer-jumpstart/image21.png" alt="" />
|
||||
</Grid>
|
||||
</Grid>
|
||||
|
||||
<h2 style={{ marginTop: 48, marginBottom: 24 }}>Imagine it, generate it</h2>
|
||||
<Grid container spacing={8}>
|
||||
<Grid item xs={12} md={5}>
|
||||
<Card style={{ marginBottom: 24 }}>
|
||||
<CardContent>
|
||||
<h4>Generate 3D worlds</h4>
|
||||
<Typography variant='body1'><a href="https://about.roblox.com/newsroom/2025/03/introducing-roblox-cube" target="_blank">Roblox Cube</a> is a groundbreaking generative AI system that lets you create 3D models and environments directly from text prompts, reducing the time and effort required for 3D asset creation.</Typography>
|
||||
</CardContent>
|
||||
</Card>
|
||||
<Card style={{ marginBottom: 24 }}>
|
||||
<CardContent>
|
||||
<h4>Unlock player creativity</h4>
|
||||
<Typography variant='body1'>Cube empowers your players to personalize their gameplay in exciting new ways. By enabling the generation of unique 3D content within experiences, Cube opens the door for deeper player engagement and self-expression.</Typography>
|
||||
</CardContent>
|
||||
</Card>
|
||||
</Grid>
|
||||
<Grid item xs={12} md={7}>
|
||||
<img style={{ width: '100%', height: 'auto' }} src="../assets/developer-jumpstart/image23.gif" alt="" />
|
||||
</Grid>
|
||||
</Grid>
|
||||
|
||||
<h2 style={{ marginTop: 48, marginBottom: 24 }}>Master matchmaking</h2>
|
||||
<Grid container spacing={8}>
|
||||
<Grid item xs={12} md={5}>
|
||||
<Card style={{ marginBottom: 24 }}>
|
||||
<CardContent>
|
||||
<h4>Fine-tune with signal control</h4>
|
||||
<Typography variant='body1'>Adjust the weight of [matchmaking](../matchmaking/customize-matchmaking.md) signals such as friends, occupancy, latency, and play history. Define up to two custom signals based on player attributes like skill level or game mode preference.</Typography>
|
||||
</CardContent>
|
||||
</Card>
|
||||
<Card style={{ marginBottom: 24 }}>
|
||||
<CardContent>
|
||||
<h4>Configure and preview</h4>
|
||||
<Typography variant='body1'>The intuitive interface in Creator Hub lets you configure your settings with ease, and the built-in preview and test feature allows you to see the impact of your changes before they go live.</Typography>
|
||||
</CardContent>
|
||||
</Card>
|
||||
<Card style={{ marginBottom: 24 }}>
|
||||
<CardContent>
|
||||
<h4>Optimize with integrated analytics</h4>
|
||||
<Typography variant='body1'>The dedicated analytics dashboard provides in-depth insights into signal metrics over time, allowing you to monitor the impact of your configurations on the player experience.</Typography>
|
||||
</CardContent>
|
||||
</Card>
|
||||
</Grid>
|
||||
<Grid item xs={12} md={7}>
|
||||
<img style={{ width: '100%', height: 'auto' }} src="../assets/developer-jumpstart/image40.png" alt="" />
|
||||
<img style={{ width: '100%', height: 'auto' }} src="../assets/developer-jumpstart/image43.png" alt="" />
|
||||
</Grid>
|
||||
</Grid>
|
||||
|
||||
<h2 style={{ marginTop: 48, marginBottom: 24 }}>Unlock the power of discovery</h2>
|
||||
<Grid container spacing={8}>
|
||||
<Grid item xs={12} md={5}>
|
||||
<Card style={{ marginBottom: 24 }}>
|
||||
<CardContent>
|
||||
<h4>Targeted discovery</h4>
|
||||
<Typography variant='body1'>Roblox's "Recommended for You" algorithm intelligently connects each user with their ideal experiences, fostering deep engagement, social interaction, and repeat plays.</Typography>
|
||||
</CardContent>
|
||||
</Card>
|
||||
<Card style={{ marginBottom: 24 }}>
|
||||
<CardContent>
|
||||
<h4>Objective ranking</h4>
|
||||
<Typography variant='body1'>Experiences are ranked by key performance indicators like playtime and Robux spent. The Home Recommendations dashboard displays the relevant analytics for informed decision-making.</Typography>
|
||||
</CardContent>
|
||||
</Card>
|
||||
<Card style={{ marginBottom: 24 }}>
|
||||
<CardContent>
|
||||
<h4>Quality content</h4>
|
||||
<Typography variant='body1'>Roblox is committed to continuously improving search functionality to better understand user intent and showcase the highest-quality content, ensuring that exceptional experiences get the attention they deserve.</Typography>
|
||||
</CardContent>
|
||||
</Card>
|
||||
</Grid>
|
||||
<Grid item xs={12} md={7}>
|
||||
<img style={{ width: '100%', height: 'auto' }} src="../assets/developer-jumpstart/image5.png" alt="" />
|
||||
</Grid>
|
||||
</Grid>
|
||||
|
||||
<h2 style={{ marginTop: 48, marginBottom: 24 }}>Supercharge your growth</h2>
|
||||
<Grid container spacing={8}>
|
||||
<Grid item xs={12} md={5}>
|
||||
<Card style={{ marginBottom: 24 }}>
|
||||
<CardContent>
|
||||
<h4>Targeted user acquisition</h4>
|
||||
<Typography variant='body1'>Roblox <a href="../production/promotion/advertise-on-roblox.md" target="_blank">Sponsored Ads</a> empower you to reach the players most likely to engage with your experience. With comprehensive audience selection options, you can tailor your campaigns to specific demographics and interests, delivering maximum impact and driving high-quality traffic to your game.</Typography>
|
||||
</CardContent>
|
||||
</Card>
|
||||
<Card style={{ marginBottom: 24 }}>
|
||||
<CardContent>
|
||||
<h4>Managed promotions</h4>
|
||||
<Typography variant='body1'>Take control of your advertising strategy with flexible campaign scheduling and daily budget options. Roblox provides the tools you need to manage your ad spend effectively and track performance.</Typography>
|
||||
</CardContent>
|
||||
</Card>
|
||||
</Grid>
|
||||
<Grid item xs={12} md={7}>
|
||||
<img style={{ width: '100%', height: 'auto' }} src="../assets/developer-jumpstart/image3.png" alt="" />
|
||||
</Grid>
|
||||
</Grid>
|
||||
|
||||
<Grid container spacing={8} style={{ marginTop: 24 }}>
|
||||
<Grid item xs={12}>
|
||||
<Button variant="contained" color="primary" href="https://create.roblox.com" style={{ marginRight: 16 }}>Go to Creator Hub</Button>
|
||||
<a href="../studio"><Typography variant='buttonLarge'>Studio documentation</Typography></a><br />
|
||||
<a href="../tutorials/first-experience"><Typography variant='buttonLarge'>First experience tutorial</Typography></a>
|
||||
</Grid>
|
||||
</Grid>
|
||||
132
.cursor/rules/roblox/en-us/get-started/why-build-on-roblox.md
Normal file
132
.cursor/rules/roblox/en-us/get-started/why-build-on-roblox.md
Normal file
|
|
@ -0,0 +1,132 @@
|
|||
---
|
||||
title: Why should I develop on Roblox?
|
||||
description: Reasons to build on the Roblox platform—audience, tools, and opportunity.
|
||||
hideInPageNavigation: true
|
||||
fullWidth: true
|
||||
---
|
||||
|
||||
<h2 style={{ marginTop: 24, marginBottom: 24 }}>Where imagination meets a global audience</h2>
|
||||
<Grid container spacing={8}>
|
||||
<Grid item xs={12} md={5}>
|
||||
<Card style={{ marginBottom: 24 }}>
|
||||
<CardContent>
|
||||
<h4>Massive global reach</h4>
|
||||
<Typography variant='body1'>Tap into a platform with 111.8 million daily active users (DAU), spanning 180 countries and 17 languages.</Typography><br /><br />
|
||||
<Typography variant='caption'><i>*As of Q1 2025</i></Typography>
|
||||
</CardContent>
|
||||
</Card>
|
||||
<Card style={{ marginBottom: 24 }}>
|
||||
<CardContent>
|
||||
<h4>Deep user engagement</h4>
|
||||
<Typography variant='body1'>Capture attention on a platform where users spend an average of 2.7 hours per day, totaling 27.4 billion hours of engagement.</Typography><br /><br />
|
||||
<Typography variant='caption'><i>*As of Q1 2025</i></Typography>
|
||||
</CardContent>
|
||||
</Card>
|
||||
<Card style={{ marginBottom: 24 }}>
|
||||
<CardContent>
|
||||
<h4>Proven developer success</h4>
|
||||
<Typography variant='body1'>On average, the top 10,000 developers earned over $97,000 in 2024.</Typography>
|
||||
</CardContent>
|
||||
</Card>
|
||||
</Grid>
|
||||
<Grid item xs={12} md={7}>
|
||||
<img
|
||||
style={{ width: '100%', height: 'auto' }}
|
||||
src="../assets/developer-jumpstart/image51.png"
|
||||
alt=""
|
||||
/>
|
||||
<Typography variant='caption1'><i>DAU by Region (in millions)</i></Typography>
|
||||
</Grid>
|
||||
</Grid>
|
||||
|
||||
<h2 style={{ marginTop: 48, marginBottom: 24 }}>Robust tools with no upfront costs</h2>
|
||||
<Grid container spacing={8}>
|
||||
<Grid item xs={12} md={5}>
|
||||
<Card style={{ marginBottom: 24 }}>
|
||||
<CardContent>
|
||||
<h4>Hit the ground running</h4>
|
||||
<Typography variant='body1'>We provide services, developer support, and free tools such as <a href="../studio/index.md">Roblox Studio</a> to help you get started immediately.</Typography>
|
||||
</CardContent>
|
||||
</Card>
|
||||
<Card style={{ marginBottom: 24 }}>
|
||||
<CardContent>
|
||||
<h4>Keep it simple</h4>
|
||||
<Typography variant='body1'>We cover all hosting, storage, customer support, localization, payment processing, and platform fees, allowing you to focus on developing your experience.</Typography>
|
||||
</CardContent>
|
||||
</Card>
|
||||
</Grid>
|
||||
<Grid item xs={12} md={7}>
|
||||
<img
|
||||
style={{ width: '100%', height: 'auto' }}
|
||||
src="../assets/landing/get-started/studio.png"
|
||||
alt=""
|
||||
/>
|
||||
</Grid>
|
||||
</Grid>
|
||||
|
||||
<h2 style={{ marginTop: 48, marginBottom: 24 }}>Multiplayer made easy</h2>
|
||||
<Grid container spacing={8}>
|
||||
<Grid item xs={12} md={5}>
|
||||
<Card style={{ marginBottom: 24 }}>
|
||||
<CardContent>
|
||||
<h4>Out of the box multiplayer</h4>
|
||||
<Typography variant='body1'>All experiences support multiplayer out of the gate. No need to write complicated backend code, no need to set up or pay for your own servers.</Typography>
|
||||
</CardContent>
|
||||
</Card>
|
||||
<Card style={{ marginBottom: 24 }}>
|
||||
<CardContent>
|
||||
<h4>Servers support up to 100 players</h4>
|
||||
<Typography variant='body1'>You donʼt need a big team to create a big game. Creating large multiplayer experiences has never been easier.</Typography>
|
||||
</CardContent>
|
||||
</Card>
|
||||
<Card style={{ marginBottom: 24 }}>
|
||||
<CardContent>
|
||||
<h4>Scale as you grow</h4>
|
||||
<Typography variant='body1'>Weʼve significantly increased the limits on free data storage and now offer creators the option to <a href="https://create.roblox.com/docs/en-us/cloud-services/extended-services.md" target="_blank">purchase additional service usage</a> to support even larger experiences.</Typography>
|
||||
</CardContent>
|
||||
</Card>
|
||||
</Grid>
|
||||
<Grid item xs={12} md={7}>
|
||||
<img
|
||||
style={{ width: '100%', height: 'auto' }}
|
||||
src="../assets/developer-jumpstart/image27.png"
|
||||
alt=""
|
||||
/>
|
||||
</Grid>
|
||||
</Grid>
|
||||
|
||||
<h2 style={{ marginTop: 48, marginBottom: 24 }}>Publish, analyze, and iterate with ease</h2>
|
||||
<Grid container spacing={8}>
|
||||
<Grid item xs={12} md={5}>
|
||||
<Card style={{ marginBottom: 24 }}>
|
||||
<CardContent>
|
||||
<h4>No publishing approvals</h4>
|
||||
<Typography variant='body1'>Assets are automatically moderated, so you can modify and publish your experience immediately across console, desktop, and mobile devices.</Typography>
|
||||
</CardContent>
|
||||
</Card>
|
||||
<Card style={{ marginBottom: 24 }}>
|
||||
<CardContent>
|
||||
<h4>Get deep insights</h4>
|
||||
<Typography variant='body1'>Built-in Roblox analytics give you access to key retention, engagement, and monetization KPIs for free with no setup required.</Typography>
|
||||
</CardContent>
|
||||
</Card>
|
||||
<Card style={{ marginBottom: 24 }}>
|
||||
<CardContent>
|
||||
<h4>Track your traffic</h4>
|
||||
<Typography variant='body1'>Acquire users with our paid UA system and get insights into how users are finding your game to optimize your UA strategy.</Typography>
|
||||
</CardContent>
|
||||
</Card>
|
||||
</Grid>
|
||||
<Grid item xs={12} md={7}>
|
||||
<img
|
||||
style={{ width: '100%', height: 'auto' }}
|
||||
src="../assets/developer-jumpstart/image12.png"
|
||||
alt=""
|
||||
/>
|
||||
<img
|
||||
style={{ width: '100%', height: 'auto' }}
|
||||
src="../assets/developer-jumpstart/image31.png"
|
||||
alt=""
|
||||
/>
|
||||
</Grid>
|
||||
</Grid>
|
||||
|
|
@ -6,7 +6,7 @@ description: Comments are text that the Luau parser ignores at runtime.
|
|||
A **comment** is text that the Luau parser ignores at runtime.
|
||||
|
||||
<Alert severity="info">
|
||||
Roblox Studio has a similarly-named [comments](../projects/collaboration.md#studio-comments) feature that is unrelated to code comments in Luau.
|
||||
Roblox Studio has a similarly-named [comments](../projects/collaboration.md#comments) feature that is unrelated to code comments in Luau.
|
||||
</Alert>
|
||||
|
||||
## Single-line comments
|
||||
|
|
|
|||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue