---
title: "Luau comments"
url: /docs/en-us/luau/comments
last_updated: 2026-06-25T22:10:45Z
description: "Comments are text that the Luau parser ignores at runtime."
---

# Luau comments

A **comment** is text that the Luau parser ignores at runtime.

> **Info:** Roblox Studio has a similarly-named [comments](/docs/en-us/projects/collaboration.md#comments) feature that is unrelated to code comments in Luau.
## Single-line comments

You can define single-line comments with a double hyphen (`--`) anywhere outside a string. Single-line comments extend to the end of the line.

Use single line comments for in-line notes. If the comment spans multiple lines, use multiple single-line comments.

You can add and remove single-line comments in the Script Editor with the keyboard shortcut `Ctrl``/` (`⌘``/`).

```lua
-- This condition is really important because the world would blow up if it
-- were missing.
if not foo then
	stopWorldFromBlowingUp()
end
```

## Block comments

You can define multiline block comments with double hyphens and double brackets (`--[[]]`). Use block comments for documenting items:

- Use a block comment at the top of files to describe their purpose.
- Use a block comment before functions or objects to describe their intent.

```lua
--[[
    Shuts off the cosmic moon ray immediately.

    Should only be called within 15 minutes of midnight Mountain Standard
    Time, or the cosmic moon ray may be damaged.
]]
local function stopCosmicMoonRay()
end
```

If necessary, you can nest multiple brackets inside a block comment using the same number of equal signs in both the beginning and ending bracket:

```lua
--[=[
    In-depth detail about cosmic moon ray: [[[TOP SECRET]]]
]=]
```

## Comment directives

Luau uses comments that start with `!` to control features like [type checking](/docs/en-us/luau/type-checking.md), [native code generation](/docs/en-us/luau/native-code-gen.md), and [linting](https://luau.org/lint).

```lua
--!strict
--!nonstrict
--!nocheck
--!native
--!nolint
--!optimize 0|1|2
```

For linting, Roblox Studio enables the following subset of warning codes from the [Luau linter](https://luau.org/lint): 1, 2, 3, 6, 10, 11, 12, 13, 14, 15, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28.

The `--!optimize` directive controls the optimization level of the Luau compiler for the script:

- 0 disables optimizations.
- 1 enables basic optimizations (default in Studio testing).
- 2 enables further optimizations (default in live experiences).

Exact optimizations aren't published and are subject to change. We recommend using the default values unless you have a specific reason not to.

## To-do comments

Roblox Studio supports special `TODO` comments. Studio bolds any text following `TODO` (until broken by a space):

```lua
-- TODO: Finish the function below so that it actually does what its name implies.
local function stopWorldFromBlowingUp()
end
```

Use `TODO` comments to keep track of and communicate issues within your code.