💻 Server
Server represents all Server controls in the Server side.

.. It's not possible to spawn new instances.🎒 Examples
-- prints "Server started" when the server is starting
Server.Subscribe("Start", function()
Console.Log("Server started")
end)
-- prints "Server stopped" when the server stops / shutdown
Server.Subscribe("Stop", function()
Console.Log("Server stopped")
end)
-- prints the delta time about every 33 ms
Server.Subscribe("Tick", function(delta_time)
Console.Log("Tick: " .. delta_time)
end)
🗿 Static Functions
| Returns | Name | Description | |
|---|---|---|---|
AddMapSpawnPoint | Adds a spawn point to the current map's spawn points list | ||
BanByAccountID | Ban the player from the server by it's Account ID, ideal for banning from inside PlayerConnect event | ||
ChangeMap | Restarts the server in a new Map, restarts all packages and reconnects all players | ||
| table of string | GetAllValuesKeys | Gets a list of all values keys | |
| integer | GetCompressionLevel | Returns the server Compression Level being used | |
| integer | GetConnectionCount | Returns the number of connected players (including players in the process of connecting) | |
| table of table | GetCustomSettings | Returns the Server Custom Settings passed as parameter or New Game screen | |
| integer | GetDefaultEntityDimension | Returns the default entity dimension | |
| integer | GetDefaultPlayerDimension | Returns the default player dimension | |
| string | GetDescription | Returns the Server Description | |
| Base Entity or nil | GetEntityByID | Returns the entity with the specified ID | |
| string | GetIP | Returns the server Public IP | |
| integer | GetLogLevel | Returns the current log level | |
| string | GetMap | Returns the current Map Package name | |
| string | GetMapAsset | Returns the current Map Asset reference | |
| table | GetMapConfig | Returns a list of the Custom Config of the current map (stored in the MAP_NAME.toml) | |
| table of table | GetMapSpawnPoints | Returns a list of the Spawn Points of the current map (stored in the MAP_NAME.toml) | |
| integer | GetMaxPlayers | Returns the Max Players configured | |
| string | GetName | Returns the Server Name | |
| table of table | GetPackages | Returns a list of Packages running, optionally returns all Packages installed in the server | |
| integer | GetPort | Returns the server Port | |
| integer | GetQueryPort | Returns the server QueryPort | |
| integer | GetTickRate | Returns the Configured Tick Rate | |
| integer | GetTime | Gets the Unix Epoch Time in milliseconds | |
| any | GetValue | Gets a value given a key | |
| string | GetVersion | Returns the server version | |
| boolean | IsAnnounced | Returns if the Server is announced in the Master List | |
| boolean | IsPackageLoaded | Returns if a Package is currently loaded | |
KickByAccountID | Kicks the player from the server by it's Account ID, ideal for kicking from inside PlayerConnect event | ||
| boolean | LoadPackage | Loads a Package | |
| boolean | ReloadPackage | No description provided | |
Restart | Restarts the server, reloading all Packages and reconnecting all Players | ||
SetDefaultEntityDimension | Sets the default server dimension that entities will spawn in | ||
SetDefaultPlayerDimension | Sets the default server dimension that players will spawn in | ||
SetDescription | Sets the description of the server, optionally overrides Config.toml | ||
SetLogo | Sets the logo of the server, optionally overrides Config.toml | ||
SetMaxPlayers | Sets the maximum player slots of the server, optionally overrides Config.toml | ||
SetName | Sets the name of the server, optionally overrides Config.toml | ||
SetPassword | Sets the password of the server, optionally overrides Config.toml | ||
SetValue | Sets a global value in the Server, which can be accessed from anywhere (server side) | ||
Stop | Stops the server | ||
| function | Subscribe | Subscribes for an Event | |
Unban | Unbans a Player by it's account ID | ||
| boolean | UnloadPackage | Unloads a Package | |
Unsubscribe | Unsubscribes from all subscribed Events in this Class and in this Package, optionally passing the function to unsubscribe only that callback |

AddMapSpawnPoint
Adds a spawn point to the current map's spawn points list
Server.AddMapSpawnPoint(location, rotation?)
| Type | Parameter | Default | Description |
|---|---|---|---|
| Vector | location | Required parameter | Spawn location |
| Rotator | rotation? | Rotator() | Spawn rotation |
See also GetMapSpawnPoints.

BanByAccountID
Ban the player from the server by it's Account ID, ideal for banning from inside PlayerConnect event
Server.BanByAccountID(player_account_id, reason)
| Type | Parameter | Default | Description |
|---|---|---|---|
| string | player_account_id | Required parameter | No description provided |
| string | reason | Required parameter | No description provided |

ChangeMap
Restarts the server in a new Map, restarts all packages and reconnects all players
Server.ChangeMap(map_path)
| Type | Parameter | Default | Description |
|---|---|---|---|
| string | map_path | Required parameter | The new map to load |

GetAllValuesKeys
Gets a list of all values keys
— Returns table of string (a list with all values keys).
local ret = Server.GetAllValuesKeys()

GetCompressionLevel
Returns the server Compression Level being used
— Returns integer (the server Compression Level).
local ret = Server.GetCompressionLevel()

GetConnectionCount
Returns the number of connected players (including players in the process of connecting)
— Returns integer.
local ret = Server.GetConnectionCount()

GetCustomSettings
Returns the Server Custom Settings passed as parameter or New Game screen
— Returns table of table (a list of the Custom Settings with this format).
local ret = Server.GetCustomSettings()

GetDefaultEntityDimension
Returns the default entity dimension
— Returns integer.
local ret = Server.GetDefaultEntityDimension()
See also SetDefaultEntityDimension.

GetDefaultPlayerDimension
Returns the default player dimension
— Returns integer.
local ret = Server.GetDefaultPlayerDimension()
See also SetDefaultPlayerDimension.

GetDescription
Returns the Server Description
— Returns string (the Server Description).
local ret = Server.GetDescription()
See also SetDescription.

GetEntityByID
Returns the entity with the specified ID
— Returns Base Entity or nil (the entity).
local ret = Server.GetEntityByID(entity_id)
| Type | Parameter | Default | Description |
|---|---|---|---|
| integer | entity_id | Required parameter | No description provided |

GetIP
Returns the server Public IP
— Returns string (the server Public IP).
local ret = Server.GetIP()

GetLogLevel
Returns the current log level
— Returns integer (the log level).
local ret = Server.GetLogLevel()

GetMap
Returns the current Map Package name
— Returns string (the current map package).
local ret = Server.GetMap()

GetMapAsset
Returns the current Map Asset reference
— Returns string (the current map asset).
local ret = Server.GetMapAsset()

GetMapConfig
Returns a list of the Custom Config of the current map (stored in the MAP_NAME.toml)
— Returns table (a list of the Custom Config of the current map).
local ret = Server.GetMapConfig()

GetMapSpawnPoints
Returns a list of the Spawn Points of the current map (stored in the MAP_NAME.toml)
— Returns table of table (a list of the Spawn Points of the current map with this format).
local ret = Server.GetMapSpawnPoints()
See also AddMapSpawnPoint.

GetMaxPlayers
Returns the Max Players configured
— Returns integer (the max players configured).
local ret = Server.GetMaxPlayers()
See also SetMaxPlayers.

GetName
Returns the Server Name
— Returns string (The Server Name).
local ret = Server.GetName()
See also SetName.

GetPackages
Returns a list of Packages running, optionally returns all Packages installed in the server
— Returns table of table (a list of Packages data with this format).
local ret = Server.GetPackages(only_loaded?, package_type_filter?)
| Type | Parameter | Default | Description |
|---|---|---|---|
| boolean | only_loaded? | true | Set to true the function return only loaded and running packages. Caution: setting to false will retrieve Packages list from disk, which is a slow operation! |
| PackageType | package_type_filter? | -1 | Which Package type to return. Leave it default (-1) to return all types. |

GetPort
Returns the server Port
— Returns integer (the server Port).
local ret = Server.GetPort()

GetQueryPort
Returns the server QueryPort
— Returns integer (the server QueryPort).
local ret = Server.GetQueryPort()

GetTickRate
Returns the Configured Tick Rate
— Returns integer (the server Tick Rate).
local ret = Server.GetTickRate()

GetTime
Gets the Unix Epoch Time in milliseconds
— Returns integer (the unix timestamp).
local ret = Server.GetTime()

GetValue
Gets a value given a key
— Returns any (Value at key or fallback if key doesn't exist).
local ret = Server.GetValue(key, fallback)
| Type | Parameter | Default | Description |
|---|---|---|---|
| string | key | Required parameter | Key |
| any | fallback | Required parameter | Fallback Value if key doesn't exist |
See also GetAllValuesKeys, SetValue.

GetVersion
Returns the server version
— Returns string (the server version).
local ret = Server.GetVersion()

IsAnnounced
Returns if the Server is announced in the Master List
— Returns boolean (if the Server is announced in the Master List).
local ret = Server.IsAnnounced()

IsPackageLoaded
Returns if a Package is currently loaded
— Returns boolean (If the package is loaded).
local ret = Server.IsPackageLoaded(package_name)
| Type | Parameter | Default | Description |
|---|---|---|---|
| string | package_name | Required parameter | No description provided |

KickByAccountID
Kicks the player from the server by it's Account ID, ideal for kicking from inside PlayerConnect event
Server.KickByAccountID(player_account_id, reason)
| Type | Parameter | Default | Description |
|---|---|---|---|
| string | player_account_id | Required parameter | No description provided |
| string | reason | Required parameter | No description provided |

LoadPackage
Loads a Package
— Returns boolean (if the Package was loaded).
local ret = Server.LoadPackage(package_folder_name)
| Type | Parameter | Default | Description |
|---|---|---|---|
| string | package_folder_name | Required parameter | The package to load |
See also ReloadPackage, UnloadPackage.

ReloadPackage
Reloads a Package
Note: the package is effectively reloaded in the next server tick
— Returns boolean (if the Package was found).
local ret = Server.ReloadPackage(package_folder_name)
| Type | Parameter | Default | Description |
|---|---|---|---|
| string | package_folder_name | Required parameter | The package to reload |
See also LoadPackage, UnloadPackage.

Restart
Restarts the server, reloading all Packages and reconnecting all Players
Server.Restart()

SetDefaultEntityDimension
Sets the default server dimension that entities will spawn in. You can change it before spawning an entity and restore it afterwards to just spawn a specific entity directly on it
Server.SetDefaultEntityDimension(default_dimension)
| Type | Parameter | Default | Description |
|---|---|---|---|
| integer | default_dimension | Required parameter | No description provided |
See also GetDefaultEntityDimension.

SetDefaultPlayerDimension
Sets the default server dimension that players will spawn in
Server.SetDefaultPlayerDimension(default_dimension)
| Type | Parameter | Default | Description |
|---|---|---|---|
| integer | default_dimension | Required parameter | No description provided |
See also GetDefaultPlayerDimension.

SetDescription
Sets the description of the server, optionally overrides Config.toml
Server.SetDescription(description, persist_to_config_file?)
| Type | Parameter | Default | Description |
|---|---|---|---|
| string | description | Required parameter | The new description |
| boolean | persist_to_config_file? | false | Persist to config file |
See also GetDescription.

SetLogo
Sets the logo of the server, optionally overrides Config.toml
Server.SetLogo(logo_url, persist_to_config_file?)
| Type | Parameter | Default | Description |
|---|---|---|---|
| string | logo_url | Required parameter | The new logo |
| boolean | persist_to_config_file? | false | Persist to config file |

SetMaxPlayers
Sets the maximum player slots of the server, optionally overrides Config.toml
Server.SetMaxPlayers(max_players, persist_to_config_file?)
| Type | Parameter | Default | Description |
|---|---|---|---|
| integer | max_players | Required parameter | The maximum players |
| boolean | persist_to_config_file? | false | Persist to config file |
See also GetMaxPlayers.

SetName
Sets the name of the server, optionally overrides Config.toml
Server.SetName(name, persist_to_config_file?)
| Type | Parameter | Default | Description |
|---|---|---|---|
| string | name | Required parameter | The new name |
| boolean | persist_to_config_file? | false | Persist to config file |
See also GetName.

SetPassword
Sets the password of the server, optionally overrides Config.toml
Server.SetPassword(password, persist_to_config_file?)
| Type | Parameter | Default | Description |
|---|---|---|---|
| string | password | Required parameter | The new password |
| boolean | persist_to_config_file? | false | Persist to config file |

SetValue
Sets a global value in the Server, which can be accessed from anywhere (server side)
Server.SetValue(key, value, sync_on_client?)
| Type | Parameter | Default | Description |
|---|---|---|---|
| string | key | Required parameter | Key |
| any | value | Required parameter | Value |
| boolean | sync_on_client? | false | If enabled will sync this value through all clients, accessible through Client.GetValue() static class. |
See also GetAllValuesKeys, GetValue.

Stop
Stops the server
Server.Stop()

Subscribe
Subscribes for an Event
— Returns function (the function callback itself).
local ret = Server.Subscribe(event_name, function)
| Type | Parameter | Default | Description |
|---|---|---|---|
| string | event_name | Required parameter | The name of the Event |
| function | function | Required parameter | Callback function |

Unban
Unbans a Player by it's account ID
Server.Unban(account_id)
| Type | Parameter | Default | Description |
|---|---|---|---|
| string | account_id | Required parameter | nanos account ID |

UnloadPackage
Unloads a Package
Note: the package is effectively unloaded in the next server tick
— Returns boolean (if the Package was found).
local ret = Server.UnloadPackage(package_folder_name)
| Type | Parameter | Default | Description |
|---|---|---|---|
| string | package_folder_name | Required parameter | The package you want unload |
See also LoadPackage, ReloadPackage.

Unsubscribe
Unsubscribes from all subscribed Events in this Class and in this Package, optionally passing the function to unsubscribe only that callback
Server.Unsubscribe(event_name, function?)
| Type | Parameter | Default | Description |
|---|---|---|---|
| string | event_name | Required parameter | The name of the Events |
| function | function? | nil | Callback function |
🚀 Events
| Name | Description | |
|---|---|---|
ChangeMap | Called when the map changes | |
PlayerConnect | Called when a player is attempting to connect to the server | |
PlayerDisconnect | Called when a player is disconnecting from the server | |
Restart | Server has been restarted | |
Start | Server has been started | |
Stop | Server has been stopped | |
Tick | Triggered every 33ms by default |

ChangeMap
Called when the map changes. This is always called just before Restart event
Server.Subscribe("ChangeMap", function(old_map, new_map)
-- ChangeMap was called
end)

PlayerConnect
Called when a player is attempting to connect to the server
Use Server.KickByAccountID() or Server.BanByAccountID() to kick or ban the player from inside this event.
Server.Subscribe("PlayerConnect", function(IP, player_account_ID, player_name, player_steam_ID)
-- PlayerConnect was called
end)
| Type | Argument | Description |
|---|---|---|
| string | IP | IP of the player |
| string | player_account_ID | Account ID of the player |
| string | player_name | Player name |
| string | player_steam_ID | SteamID of the player |
See also KickByAccountID, BanByAccountID, PlayerDisconnect.

PlayerDisconnect
Called when a player is disconnecting from the server
Server.Subscribe("PlayerDisconnect", function(IP, player_account_ID, player_name, player_steam_ID, disconnect_reason)
-- PlayerDisconnect was called
end)
| Type | Argument | Description |
|---|---|---|
| string | IP | IP of the player |
| string | player_account_ID | Account ID of the player |
| string | player_name | Player name |
| string | player_steam_ID | SteamID of the player |
| string | disconnect_reason | Reason for disconnection |
See also PlayerConnect.

Restart
Server has been restarted
Server.Subscribe("Restart", function()
-- Restart was called
end)

Start
Server has been started
Server.Subscribe("Start", function()
-- Start was called
end)

Stop
Server has been stopped
Server.Subscribe("Stop", function()
-- Stop was called
end)

Tick
Triggered every 33ms by default
Caution: Only small operations should be performed here, otherwise this can lead to server lag and delays
Server.Subscribe("Tick", function(delta_time)
-- Tick was called
end)
| Type | Argument | Description |
|---|---|---|
| float | delta_time | No description provided |