Passer au contenu principal
Version: bleeding-edge 🩸

Configuration du serveur

Tout ce que vous devez savoir pour configurer votre serveur !

Fichier de configuration du serveur

Le fichier de configuration du serveur Config.toml est généré automatiquement lorsque le serveur est lancé pour la première fois. Ce fichier sera toujours remplacé par le bon modèle après le chargement du serveur.

tip

nanos world Config files use TOML (Tom’s Obvious, Minimal Language), please refer to https://github.com/toml-lang/toml for more information and syntax.

Config.toml
loading...

Settings Detailed

SettingDescription
nameNom du serveur
descriptionDescription du serveur
logoURL de l'image qui sera affichée dans la liste des serveurs
max_playersNombre maximum de joueurs autorisés à rejoindre
passwordMot de passe pour se connecter
ipIP du serveur. Nous recommandons de laisser vide
portPort principal du serveur et port HTTP (UDP/TCP)
query_portServer query Port (UDP)
announceAfficher ou non dans la liste des serveurs
tick_rateFréquence de ticks en ms. Nous recommandons de laisser à 33
log_levelQuel niveau de log afficher
game_modegame-mode package to load - you can only load one game-mode at once.
loading_screenloading-screen package to load - you can only load one loading-screen at once.
packagesscript packages to load
assetsAssets additionnels à charger
mapQuelle map charger
tokenServer Token used for authorize downloads through CLI
banned_idsList of banned nanos account IDs

Map & Niveau

The Map (or Level) is defined in the Server’s config file, this level will be loaded when the player joins the server and the Path is supposed for be or a built-in asset or an asset which is located at Assets/ folder.

nanos world contient (pour le moment) 4 maps incluses :nanos-world::BlankMap,nanos-world::EmptyMap, nanos-world::OceanMap and nanos-world::TestingMap qui peuvent être utilisées dans votre serveur sans avoir à télécharger aucun pack d'asset.

Console du serveur

Commandes intégrées

CommandeDescription
chat [message]Envoie un message dans le chat
map [map_path]Changes the Map, reloads all Packages and reconnect all Players
stopArrête le serveur
package run [package_name] [lua_code]Exécute du code dans un package
package reload [package_name]Recharge un package
package reload allRecharge tous les packages
package unload [package_name]Arrête un package
package load [package_name]Charge un package

Commandes personnalisées

All (non built-in) commands will be sent into an event to the scripting/server-side:

Server/Index.lua
Server.Subscribe("Console", function(my_input)
Package.Log("Console command received: " .. my_input)
end)

Paramètres de ligne de commande

Il est possible de remplacer la configuration du serveur avec les paramètres de ligne de commande. Note : cela ne va pas écrire dans le fichier de configuration.

ParameterType de valeurDescription
--namestringNom du serveur
--descriptionstringDescription du serveur
--logostringLogo du serveur
--passwordstringMot de passe du serveur
--ipstringIP du serveur
--mapstringMap à charger
--portnumber--http_port
--query_portnumberServer Query port
--announce0 or 1Si afficher le serveur dans la liste des serveurs
--game_modestringMode de jeu du serveur
--loading_screenstringÉcran de chargement du serveur
--packagesstring listPackages du serveur
--assetsstring listAssets du serveur
--tokenstringServer authorization token
--max_playersnumberNombre de joueurs autorisés
--save0 or 1Si sauvegarder les paramètres dans Config.toml
--profiling0 or 1Activer les logs de profilage pour le débogage
--auto_download0 or 1Automatically downloads Packages and Assets from Vault if needed
--dedicated_server0 or 1If to start as a Dedicated Server or P2P
--async_log0 or 1If to use async or sync logs (async provides better performance) - default is 1

One-liner Server Configuration

With Command Line Parameters and Command Line Interface (CLI), it is also possible to automate the full server installation, here's an example:

Shell/Linux
# Installs/Updates the server through SteamCMD
steamcmd +force_install_dir /home/nanos-world-server +login anonymous +app_update "1936830 -beta bleeding-edge" validate +quit

# Installs all needed Packages (this will install needed Assets as well)
./NanosWorldServer.sh --cli install package sandbox battlefield-kill-ui ts-fireworks-tools

# Starts the server with all configs set
./NanosWorldServer.sh --name "nanos world Amazing Sandbox" --description "Awesome Sandbox Server" --map "nanos-world::TestingMap" --gamemode "sandbox" --packages "battlefield-kill-ui,ts-fireworks-tools" --port 7777 --query_port 7778 --max_players 32 --logo "https://i.imgur.com/U1rZp5v.png"

Another shorter example:

Shell/Linux
# Starts the server with all configs set and auto downloads the packages and assets if needed
./NanosWorldServer.sh --name "nanos world Amazing Sandbox" --description "Awesome Sandbox Server" --map "nanos-world::TestingMap" --gamemode "sandbox" --packages "battlefield-kill-ui,ts-fireworks-tools" --port 7777 --query_port 7778 --max_players 32 --auto_download 1 --logo "https://i.imgur.com/U1rZp5v.png"

Common Console Messages and Errors

Server Tick too/extreme high! Verify the server performance! Server got stuck for Xms...

It means the server got stuck for X milliseconds. The warning (yellow) is not something to worry about, but too many messages in red) could mean your server infrastructure is not that good or your scripting code is not that optimized.

Usually the server runs at 33 ticks per second (or the value configured at Config.toml), the server runs in an infinite loop in that frequency, and inside that loop all server operations are executed, such as receiving and sending network packets, triggering lua events, executing functions or callbacks, and so on.

If a single tick takes more than 33 milliseconds, this warning will appear up.

tip

In some shared VPS, this warning may appear up more frequently due how the VPS handles the scaling of it's machines, sometimes the provider may think your VPS is "idle" (due nanos world server using extremely low CPU) and may decrease your processing power, causing this warning show up as well.

Assertion Failed: [...] problem (5002) We don't have cert, and self-signed certs not allowed...

This is an internal problem from Steam Library when you attempt to connect to a server too fast (when it has just started). The server automatically fixes it by retrying the connection, there is nothing to worry about.

Lua Stack Error: Should be X, is Y...

This is an internal error and should not supposed to happen. Those are guards set around our Lua Scripting implementation to prevent bad things from happening. If this error appears it means a implementation bug happened. Please communicate immediately with the devs, and if possible how to reproduce that!