backupRoswaal has moved to roswaal.app. These pages are a backup copy.Go to roswaal.app

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 tagWhat hover shows
@param, @returnTheir types and descriptions, with the signature
@classThe description of the table it names
@propA field's type and description
@interfaceA table type's fields, listed with a function that returns it
@typeA 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.

WrittenFollowed 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

Instance checks are for Roblox. A Lune script has no DataModel to check against.

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