Reading your Luau✎
What hover, completion and warnings know about Luau: doc comments, required modules and the place's instances.
Reviewed
Roswaal reads your Luau as well as writing it. In a Luau file opened from the project tree, and in Code Block and Luau Expression, hover, completion and warnings use what it finds.
Doc comments
Hover a name to see what it is. A comment directly above a function, field or local shows with it, written as Moonwave's --[=[ … ]=] or ---, or as a plain --[[ … ]] or -- lines. A comment that is code switched off is left out.
| Moonwave tag | What hover shows |
|---|---|
@param, @return | Their types and descriptions, with the signature |
@class | The description of the table it names |
@prop | A field's type and description |
@interface | A table type's fields, listed with a function that returns it |
@type | A type's description |
@class, @prop, @interface and @type count wherever they stand in the file, as Moonwave reads them.
Required modules
A local that holds a required module knows what the module gives back: hover Flux.state for its signature and comment, or Flux for where the module is. In the Code panel, a dot after it offers the module's members.
| Written | Followed through |
|---|---|
require(ReplicatedStorage.Shared.Util) | The node map, to the file that becomes that instance |
require(script.Parent.Util) | Where this file ends up in the DataModel |
require("./Util"), require("@shared/Util") | The file's own folder, or a .luaurc alias |
require(ReplicatedStorage.Packages.Flux) | Wally's Packages/; see Wally packages |
In Code Block, script is the file the graph compiles to, so script.Parent means what it will in Studio.
The place's instances
Paths like ReplicatedStorage.Shared.Util are checked against the place and the files a node map places. Hover a name for its class and where it is. In the code editor, a dot or :WaitForChild(" offers what is there.
A name neither has is underlined, but only under what is settled before the game runs: ReplicatedStorage, ReplicatedFirst, ServerScriptService, ServerStorage, Lighting, SoundService, Teams and the Starter services. Workspace and Players fill while the game runs, so they are left alone.
Info
Arguments
A method called on something whose type is known is checked against what Roblox says it takes: hull.CFrame:PointToObjectSpace(part.Position.X) hands a number to a method that takes a Vector3, and is underlined. It shows in the code editor, in a file you open to read, and in Script analysis for the node that holds the code.
Types come from the code, from the graph's typed names and from the engine catalogue. Where a type is not known, nothing is said.
Last reviewed 30 September 2026 by @neopolitans