Skip to content
Merged
Show file tree
Hide file tree
Changes from 6 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 1 addition & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -91,7 +91,7 @@ If your contribution doesn't fit within these categories or covers a particularl

Try to limit your edits to one class or feature so that the pull request is easier to review. Bug fixes and smaller improvements have a higher likelihood of fast approval. Large guides often require significant back-and-forth before publication.

To avoid formatting issues, we recommend text editors like github.dev that let you preview Markdown as you write it. For prose, try to follow the guidelines in [STYLE.md](STYLE.md). For code samples, use the [Lua Style Guide](https://roblox.github.io/lua-style-guide/).
To avoid formatting issues, we recommend text editors like github.dev that let you preview Markdown as you write it. For prose, try to follow the guidelines in [STYLE.md](STYLE.md). For code samples, use the [Luau Style Guide](https://roblox.github.io/lua-style-guide/).

To view a page fully formatted per what we see on the `main` branch, replace the entire URL from `content/` and before. Files with the basename `index` should have that name removed. For example, the page for "https://github.com/Roblox/creator-docs/blob/main/content/en-us/avatar/index.md" is rendered at "https://create.roblox.com/docs/en-us/avatar".

Expand All @@ -103,4 +103,3 @@ To view a page fully formatted per what we see on the `main` branch, replace the
## Code of Conduct

To maintain an open, welcoming, diverse, inclusive, and healthy community, this project enforces an adapted version of the Contributor Covenant. For more information, see [CODE_OF_CONDUCT.md](CODE_OF_CONDUCT.md).

6 changes: 3 additions & 3 deletions STYLE.md
Original file line number Diff line number Diff line change
Expand Up @@ -137,7 +137,7 @@ To link to a page in the Roblox Engine API, use the following syntax patterns. T

- `` `Enum.Name` ``

- **Lua/Roblox Globals**
- **Luau and Roblox Globals**

- `` `Global.LuaGlobals.Function()` ``
- `` `Global.RobloxGlobals.Function()` ``
Expand Down Expand Up @@ -241,8 +241,8 @@ The reference documentation files come in five types:
- Classes — core classes such as `BasePart`, `Model`, `Humanoid`, `DataStoreService`, etc.
- Data types — data types such as `Color3`, `CFrame`, `UDim2`, `Vector3`, etc.
- Enums — Enums such as `CameraType`, `FontSize`, `ScreenInsets`, etc.
- Globals — Lua and Roblox globals.
- Libraries — Lua libraries such as `math`, `string`, and `table`.
- Globals — Luau and Roblox globals.
- Libraries — Luau libraries such as `math`, `string`, and `table`.

Internal tooling generates the structure of most files. Don't add new constructors, properties, methods, or events—just fill in the details. In most situations, you should only edit `summary`, `description`, and `deprecation_message`.

Expand Down
2 changes: 1 addition & 1 deletion content/common/navigation/engine/reference.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -5552,7 +5552,7 @@ navigation:
path: /reference/engine/globals
source: /reference/engine/globals.md
section:
- title: Lua Globals
- title: Luau Globals
path: /reference/engine/globals/LuaGlobals
type: engineapi
source: /reference/engine/globals/LuaGlobals.yaml
Expand Down
4 changes: 2 additions & 2 deletions content/en-us/characters/r6-to-r15-adapter.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ It's important to understand how the adapter uses [adapter parts](#adapter-parts

## Adapter parts

The R6 to R15 Adapter implements a Lua-script injection when an avatar spawns that creates adapter parts.
The R6 to R15 Adapter implements a Luau script injection when an avatar spawns that creates adapter parts.

These are invisible `Class.MeshPart|MeshParts` that have the exact same name as R6 body parts and are welded to their corresponding R15 body parts. The scripts allow adapter parts to accept R6-based script interactions and forward them to the appropriate R15 parts.

Expand All @@ -40,7 +40,7 @@ In a majority of cases, the R6 to R15 Adapter works out-of-the-box with the syst

### Game security

Some R6 experiences with active cheat detection can interpret the Lua-script injection as an attempt to circumvent the security.
Some R6 experiences with active cheat detection can interpret the Luau script injection as an attempt to circumvent the security.

Since the default behavior of R6 avatars is to spawn with all their parts already in place, many experiences tend to flag changes in body parts as potential exploits. In experiences with the adapter enabled, the R15 avatars spawn with their default bodies before changing body parts based on their saved avatar body parts and accessories.

Expand Down
4 changes: 2 additions & 2 deletions content/en-us/chat/in-experience-text-chat.md
Original file line number Diff line number Diff line change
Expand Up @@ -225,7 +225,7 @@ Both the [chat window](../chat/chat-window.md) and [bubble chat](../chat/bubble-

### Migrate speaker "extra data"

The legacy Lua chat system allowed devleopers to use `SetExtraData` on the `Speaker` class. This data was used to format the name color, chat color, or to apply name tags for a given speaker.
The legacy Luau chat system allowed developers to use `SetExtraData` on the `Speaker` class. This data was used to format the name color, chat color, or to apply name tags for a given speaker.

```lua title='Legacy Chat System SetExtraData'
-- An example of setting extra data on a speaker in the legacy chat system
Expand All @@ -239,7 +239,7 @@ end)

TextChatService does not have a direct equivalent to `SetExtraData`. Instead, use [TextChatService callbacks](#text-chat-hooks-and-callbacks) such as `Class.TextChatService.OnWindowAdded` to customize the appearance of messages using rich text based on the `TextSource` of the message.

The following is an example of emulating legacy Lua chat's "extra data" by access attributes on the TextSource's `Class.Player`:
The following is an example of emulating legacy Luau chat's "extra data" by access attributes on the TextSource's `Class.Player`:

```lua title='TextChatService SetAttributes'
local Players = game:GetService("Players")
Expand Down
4 changes: 2 additions & 2 deletions content/en-us/chat/legacy/client-side-chat-modules.md
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,7 @@ The **ChatWindow** is the main chat module of the Legacy Chat System's client si

## ChatBar

The **ChatBar** handles client-side text entry for the Lua Chat System. There are two key components of the ChatBar:
The **ChatBar** handles client-side text entry for the Luau Chat System. There are two key components of the ChatBar:

- **ChatBar** , a `TextBox` , where the player inputs messages and commands (highlighted in orange)
- **MessageMode** , a `TextLabel` , which can display information about the message being sent (highlighted in green)
Expand Down Expand Up @@ -301,7 +301,7 @@ Whisper chat and team chat use ChatCustomState to indicate to the player where t

## ChatSettings

The **ChatSettings** is a dictionary of settings for the client-side of the Lua Chat System. They are stored in a `ModuleScript` named _ChatSettings_ , which can be found inside of the `Chat` game service, under the `Folder` named _ClientChatModules_ . The module may be required and its properties can be changed during run-time.
The **ChatSettings** is a dictionary of settings for the client-side of the Luau Chat System. They are stored in a `ModuleScript` named _ChatSettings_ , which can be found inside of the `Chat` game service, under the `Folder` named _ClientChatModules_ . The module may be required and its properties can be changed during run-time.

To change a setting, require this module using a `LocalScript` in the following manner:

Expand Down
4 changes: 2 additions & 2 deletions content/en-us/chat/legacy/server-side-chat-modules.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,12 +18,12 @@ You can use the following chat modules to support server-side behaviors of the [

## ChatService

**ChatService** is a singleton object that handles the server-side behavior of the Lua Chat System, such as [ChatChannels](#chatchannel) and [ChatSpeakers](#chatspeaker).
**ChatService** is a singleton object that handles the server-side behavior of the Luau Chat System, such as [ChatChannels](#chatchannel) and [ChatSpeakers](#chatspeaker).

All `ModuleScript` s within the **ChatModules** folder should return a function, and that function will be called with the ChatService singleton.

<Alert severity="warning">
ChatService chat module is different from the `Class.Chat` engine service hosting the Lua code responsible for running the Legacy Chat System.
ChatService chat module is different from the `Class.Chat` engine service hosting the Luau code responsible for running the Legacy Chat System.
</Alert>

### Methods
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ description: When to use standard data stores, ordered data stores, and memory s

To store data, you can use [data stores](./data-stores/index.md) with the `Class.DataStoreService` or [memory stores](./memory-stores/index.md) with the `Class.MemoryStoreService`.

Alternatively, you can also use Lua types and variables to [store data in-memory in Lua](#when-to-use-in-memory-storage-in-lua), without using the data or memory store services.
Alternatively, you can also use Luau types and variables to [store data in-memory in Luau](#when-to-use-in-memory-storage-in-luau), without using the data or memory store services.

## When to use data stores

Expand Down Expand Up @@ -71,14 +71,14 @@ Although memory stores store temporary data, they also support permanent feature
</tbody>
</table>

## When to use in-memory storage in Lua
## When to use in-memory storage in Luau

You can use in-memory storage in Lua to store temporary data that needs to be accessed with minimal latency and without the cost of making external service calls to data stores or memory stores. There are no extra steps required to set up in-memory storage as it's already built in by default in Lua.
You can use in-memory storage in Luau to store temporary data that needs to be accessed with minimal latency and without the cost of making external service calls to data stores or memory stores. There are no extra steps required to set up in-memory storage as it's already built in by default in Lua.

<table>
<thead>
<td width="15%"></td>
<td width="30%">**In-memory storage in Lua**</td>
<td width="30%">**In-memory storage in Luau**</td>
<td width="30%"></td>
</thead>
<tbody>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -374,7 +374,7 @@ Data stores limit how much data can be used per entry.

The data store name, key name, and [scope](../../cloud-services/data-stores/manage-data-stores.md#scopes) must all be under a certain character length. Use `Library.string.len()` to check their length.

The data (key value) is also stored as a string, regardless of its initial type. You can check the size of the data with the `Class.HttpService:JSONEncode()|JSONEncode()` function, which converts Lua data into a serialized JSON table.
The data (key value) is also stored as a string, regardless of its initial type. You can check the size of the data with the `Class.HttpService:JSONEncode()|JSONEncode()` function, which converts Luau data into a serialized JSON table.

<table>
<thead>
Expand Down
2 changes: 1 addition & 1 deletion content/en-us/cloud-services/data-stores/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ local experienceStore = DataStoreService:GetDataStore("PlayerExperience")

## Create data

A data store is essentially a dictionary, similar to a Lua table. A unique **key** indexes each value in the data store, like a user's unique `Class.Player.UserId` or a named string for an experience promo.
A data store is essentially a dictionary, similar to a Luau table. A unique **key** indexes each value in the data store, like a user's unique `Class.Player.UserId` or a named string for an experience promo.

<table>
<thead>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -236,9 +236,9 @@ Disabling caching is useful if you have multiple servers writing to a key with h

## Serialization

The `Class.DataStoreService` stores data in JSON format. When you save Lua data in Studio, Roblox uses a process called serialization to convert that data into JSON to save it in data stores. Roblox then converts your data back to Lua and returns it to you in another process called deserialization.
The `Class.DataStoreService` stores data in JSON format. When you save Luau data in Studio, Roblox uses a process called serialization to convert that data into JSON to save it in data stores. Roblox then converts your data back to Luau and returns it to you in another process called deserialization.

Serialization and deserialization support the following Lua data types:
Serialization and deserialization support the following Luau data types:

- [Nil](../../luau/nil.md)
- [Booleans](../../luau/booleans.md)
Expand All @@ -255,7 +255,7 @@ If you try to store a data type that serialization doesn't support, you either:
- Fail in storing that data type and get an error message.
- Succeed in storing that data type as `nil`.

To debug why your data type is being stored as `nil`, you can use the `Class.HttpService.JSONEncode|JSONEncode` function. When you pass your Lua data type into this function, you receive it back in the format Roblox would have stored it with data stores, which lets you preview and investigate the returned data.
To debug why your data type is being stored as `nil`, you can use the `Class.HttpService.JSONEncode|JSONEncode` function. When you pass your Luau data type into this function, you receive it back in the format Roblox would have stored it with data stores, which lets you preview and investigate the returned data.

<Alert severity="info">
Serialization doesn't happen when you use the [DataStore Open Cloud API](/cloud/reference/DataStore) because that data is already sent to Roblox in JSON format and doesn't need to be converted.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -100,7 +100,7 @@ These methods, when called:

1. Add the request to a queue. Each key has its own queue, where requests are processed in order and in series. The requesting thread yields until the request has completed.

This functionality is based on the `ThreadQueue` class, which is a coroutine-based task scheduler and rate limiter. Rather than returning a promise, `ThreadQueue` yields the current thread until the operation is complete and throws an error if it fails. This is more consistent with idiomatic asynchronous Lua patterns.
This functionality is based on the `ThreadQueue` class, which is a coroutine-based task scheduler and rate limiter. Rather than returning a promise, `ThreadQueue` yields the current thread until the operation is complete and throws an error if it fails. This is more consistent with idiomatic asynchronous Luau patterns.

1. If a request fails, it retries with a configurable exponential backoff. These retries form part of the callback submitted to the `ThreadQueue`, so they are guaranteed to complete before the next request in the queue for this key begins.

Expand Down
2 changes: 1 addition & 1 deletion content/en-us/cloud/guides/data-store-api-handling.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ Like all Open Cloud APIs, data store endpoints require all requests to include t

All endpoints have two types of universe level throttling: **request-per-minute throttling** and **throughput throttling**. With every experience, **request-per-minute throttling** allows you to send a certain number of requests per minute, and **throughput throttling** allows you to send a certain amount of data per minute, regardless of the number of API keys.

Unlike the Lua API, these limits currently do not scale based on user counts. Exceeding these limits causes the endpoint to return `429 Too Many Requests`.
Unlike the Luau API, these limits currently do not scale based on user counts. Exceeding these limits causes the endpoint to return `429 Too Many Requests`.

### Standard data stores throttling limits

Expand Down
2 changes: 1 addition & 1 deletion content/en-us/cloud/guides/usage-messaging.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ Limit | Description

Before you can publish a message to your experience's live servers, you must set up a **topic**, which is a customized message channel that is accessible from multiple servers. After defining a topic, you subscribe users to the topic in order to receive your incoming messages.

Currently, you can only define a topic in Studio and use Lua `Class.MessagingService:SubscribeAsync()` to subscribe users to it. The following code sample subscribes any user to a topic when they join the experience:
Currently, you can only define a topic in Studio and use the Luau API `Class.MessagingService:SubscribeAsync()` to subscribe users to it. The following code sample subscribes any user to a topic when they join the experience:

```lua title= 'Set up and Subscribe Users to a Topic'
local MessagingService = game:GetService("MessagingService")
Expand Down
2 changes: 1 addition & 1 deletion content/en-us/education/adventure-game-series/landing.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ Create an adventure game where players explore a world to find items to harvest
<tr>
<td><b>Prerequisites</b></td>
<td>
Have an understanding of the following Lua concepts: variables, conditional (if/else) statements, and typing functions.
Have an understanding of the following Luau concepts: variables, conditional (if/else) statements, and typing functions.

Feel comfortable working with the world creation tools in Roblox, such as making parts or creating terrain.
</td>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
title: Customize and share
prev: /education/build-it-play-it-galactic-speedway/take-the-challenge-2
next: /education/build-it-play-it-galactic-speedway/going-for-a-race
description: Learn how to modify a Lua script in Roblox Studio to customize how your spaceship handles and flies in the Build It Play It Galactic Speedway challenge.
description: Learn how to modify a Luau script in Roblox Studio to customize how your spaceship handles and flies in the Build It Play It Galactic Speedway challenge.
---

<img
Expand All @@ -13,7 +13,7 @@ This last lesson is all about putting the final touches on the driftspeeder, suc

## Modify the Engine

To change a driftspeeder's speed or how quickly it can turn, you'll open the **_Settings_** script. In Roblox, code is typed inside of scripts using the coding language Lua. Games often have separate scripts for each thing the game needs to do.
To change a driftspeeder's speed or how quickly it can turn, you'll open the **_Settings_** script. In Roblox, code is typed inside of scripts using the coding language [Luau](https://luau.org). Games often have separate scripts for each thing the game needs to do.

1. Click on your speeder.
2. In the **Explorer**, look for the **_Garage_** folder and your driftspeeder.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
title: Add scripts
prev: /education/build-it-play-it-mansion-of-wonder/using-particles-for-actions
next: /education/build-it-play-it-mansion-of-wonder/next-steps-advanced
description: Learn how to use Lua code to manipulate beams and emitters to add tutorial mechanics to your game in the Roblox Build It Play It Mansion of Wonder.
description: Learn how to use Luau code to manipulate beams and emitters to add tutorial mechanics to your game in the Roblox Build It Play It Mansion of Wonder.
---

Time to bring all this work together! Now that you've created the beam and particle components, you'll add in three premade scripts. These scripts manage the tutorial by telling components when to do what. For example, the scripts will create beams for new players and emit particles whenever they interact with goals.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ next: /education/build-it-play-it-story-games/coding-a-question
prev: /education/build-it-play-it-story-games/first-challenge
---

In Roblox, code is typed inside of **scripts** using the coding language Lua. Games often have separate scripts for each thing the game needs to do. The library template already has a script named **StoryManager** which you'll add more code to for your word game.
In Roblox, code is typed inside of **scripts** using the coding language [Luau](https://luau.org). Games often have separate scripts for each thing the game needs to do. The library template already has a script named **StoryManager** which you'll add more code to for your word game.

## Find the StoryManager

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -120,7 +120,7 @@ width="100%" />

Students can primarily use Roblox to play or create. One method is using **virtual learning experiences** where students play on Roblox. They can go on virtual field trips, explore natural settings, and interact with simulations of real-world phenomena.

Additionally, Roblox can be used for **code and creation** with Roblox Studio. In Studio, students can design virtual environments or learn computer science with Lua, a text-based coding language similar to Python.
Additionally, Roblox can be used for **code and creation** with Roblox Studio. In Studio, students can design virtual environments or learn computer science with Luau, a text-based coding language similar to Python and Lua.

### Advantages of Roblox

Expand Down
Loading
Loading