Skip to main content
Version: latest - a1.156.0 โš–๏ธ

Basic Types

Lua Typesโ€‹

info

nanos world runs Lua 5.4. For more information and tutorials, please refer to the Official Lua 5.4 Reference Manual.

numberโ€‹

Numbers can be integers (64-bit, like 10 or -3) or floats (double-precision, like 3.14). Lua converts between them automatically when needed, e.g. 10 / 2 results in the float 5.0 while 10 // 2 (floor division) results in the integer 5. In this documentation we use integer and float to tell which one a function expects or returns.

stringโ€‹

A sequence of characters (bytes), such as "hello" or 'world'. Strings can hold any binary data and are immutable: functions like string.upper return a new string instead of changing the original one. Use .. to join strings, e.g. "Hello " .. player:GetName().

functionโ€‹

Functions are values like any other: they can be stored in variables and tables, passed as parameters and returned by other functions. That's how callbacks work in nanos world, e.g. Player.Subscribe("Spawn", function(player) ... end).

booleanโ€‹

Either true or false. In conditions, only false and nil are considered false, everything else (including 0 and the empty string "") is considered true.

nilโ€‹

Represents the absence of a value. Variables which were never assigned are nil, and many functions return nil when they don't find what you asked for (e.g. Prop.GetByIndex(9999)), so always check for it before using the result.

tableโ€‹

The only data structure in Lua, which works both as an array ({ "a", "b", "c" }, indexed from 1) and as a dictionary ({ name = "John", age = 30 }). Tables grow dynamically and can hold any value, except nil. They are passed by reference: changing a table inside a function changes the original one.

iteratorโ€‹

Iterator allows you to traverse elements of a table with for k, v in ipairs().

anyโ€‹

We use any here in the Docs to represent that any Type can be used.

varargsโ€‹

Variadic list of values.

Numeric Typesโ€‹

Besides the Lua Types, some methods on the API have specific numeric types, those are converted and treated differently internally.

integerโ€‹

Whole numbers without any fractional parts.

floatโ€‹

Floating-point type with decimal points.

Special Typesโ€‹

SpecialPathโ€‹

nanos world supports a special type of Path when loading Textures (.jpg, .png), Sounds (.ogg) or referencing files from WebUI. It allows any Package or WebUI to access files from other Packages or Asset Packs easily.

SpecialPath is a string input which supports the following formats for accessing Assets or Packages files:

Referencing Asset Packs filesโ€‹

assets://[ASSET_PACK_PATH]/[PATH/TO/FILE.jpg]

Referencing Packages filesโ€‹

package://[PACKAGE_PATH]/[PATH/TO/FILE.jpg]

Example accessing images from quaternius Asset Pack:โ€‹

assets://quaternius/Thumbnails/SK_Revolver_01.jpg

Example accessing a .ogg sound from sandbox Package:โ€‹

package://sandbox/Client/my_awesome_audio.ogg

Example accessing a .ttf font files from my-fonts Package:โ€‹

package://my-fonts/Client/Roboto.ttf

tip

SpecialPath input also supports relative and traditional paths!

Steam Avatarโ€‹

Steam Avatar is a special URL which can load Steam Avatars as images on WebUIs and Widgets.

steam-avatar://player_steam_id

This URL can be automatically retrieved with Player:GetAccountIconURL().