Globals
In Lua scripting, Globals are essential values or variables that can be accessed from any part of the script without the need to pass them explicitly. They are context-specific and readily available. On the other hand, a Service in Lua script is like a toolbox of static functions that offer convenient utilities for developers to use in their scripts.
Properties
The 'self' property is used to access the current script's instance. This is always the owning script of the object as a Class.LuaBehaviour. This is the primary way to get many of the core Unity MonoBehaviour methods and properties like self.gameObject
, self:Update
and self:OnTriggerEnter
. It is highly recommended to familiarize yourself with the Class.LuaBehaviour documentation to understand how to use the 'self' property.
local objectName = self.gameObject.name
print("My name is: " .. objectName)
The 'client' property is used to access the current client instance. This is useful for when you want to access the client's information like the client.localPlayer
property or client.PlayerConnected
event. Read the Class.GameClient documentation to learn more.
local localPlayer = client.localPlayer
print("My name is: " .. localPlayer.name)
The 'server' property is used to access the current server instance. This is useful for when you want to access the server' information like the server.PlayerConnected
event. Read the Class.GameServer documentation to learn more.
server.PlayerConnected:Connect(function(player)
print("Player connected: " .. player.name)
end)
The 'scene' property is used to access the currently active scene.
scene.PlayerJoined:Connect(function(scene, player)
print("Player joined: " .. player.name)
end)
Methods
Defers the execution of a function to the next frame. This is useful for when you want to run a function after the current frame has finished.
defer(function()
print("This will run in the next frame")
end)
Parameters
callback
The function to run in the next frame.
Returns
Gets a 'Module' typed script by name as a singleton behaviour, giving access to the hierarchy it is within.
Using the require method to retrieve a module will automatically load the singleton instance of the behaviour. This is equivalent to using Find and GetComponent to retrieve the behaviour.
local myModuleScript = require("MyModuleScript")
Parameters
path
The script name of the module to load.
Returns
The module that was loaded.
Gets the string representation of the type of the object. This is useful for debugging and logging as well as learning about what types are being returned by complex methods.
local v = Vector3.new(1, 2, 3)
print(typeof(v)) -- prints "Vector3" instead of "userdata" or "(1, 2, 3)"
Returns
The Type of the object. In question.
Gets the string representation of the object if one has defined one. This is useful for debugging and logging.
local v = Vector3.new(1, 2, 3)
print(tostring(v)) -- prints "(1, 2, 3)" instead of "userdata" or "Vector3"