Passer au contenu principal
Version: latest - a1.7.0 ⚖️

Démarrage rapide

Démarrez votre serveur et votre premier Paquet en moins de 10 minutes!

Étape 1 : Télécharger le serveur

Vous avez trois options pour télécharger le serveur nanos world :

  1. Utilisez l'executable (.exe) déjà situé à nanos-world/Server/NanosWorldServer.exe (si vous avez téléchargé le jeu de base).
  2. Téléchargez l'outil nanos world Dedicated Server depuis le client Steam.
  3. Or use SteamCMD to download nanos world Dedicated Server.
tip

Le serveur est aussi simple qu'un seul fichier exécutable NanosWorldServer.exe. Après l'avoir téléchargé, exécutez-le une fois pour générer les dossiers appropriés et initiaux Assets, Packages et le fichier Config.toml , gardez votre serveur ouvert pour suivre ce guide !

Étape 2 : Créer un package basique

  1. Créez un dossier dans Packages/ pour être votre Package, nommons-le mon-package/.
  2. À l'intérieur de mon-package/ créez un dossier appelé Serveur/ et un fichier appelé Index.lua dans Serveur/.
  3. Dans la console de votre serveur, tapez package load mon-package pour charger votre nouveau package et générer le fichier de configuration Package.toml. Vous pouvez éditer ce fichier avec une personnalisation appropriée plus tard.

Étape 3 : Ajout de fonctionnalités de script

Ouvrez le fichier Index.lua dans votre éditeur (nous vous recommandons d'utiliser vscode), et éditons notre premier script :

Packages/my-package/Server/Index.lua
-- Affichons un message dans la console
Package.Log("Chargement de quelques Props =D")

-- Faisons apparaître quelques Props
prop_table = Prop(Vector(200, 0, 0), Rotator(0, 0, 0), "nanos-world::SM_WoodenTable")
prop_chair = Prop(Vector(400, 200, 0), Rotator(0, 0, 0), "nanos-world::SM_WoodenChair")
prop_tire = Prop(Vector(600, 0, 0), Rotator(0, 0, 0), "nanos-world::SM_TireLarge")

Pour appliquer vos modifications, exécutez la commande dans la console du serveur : package reload all.

Étape 4 : Rejoignez votre serveur

tip

Si vous rejoignez votre serveur, vous pouvez déjà voir le résultat 😁

Étape facultative : Apparition d'un personnage pour le joueur

Vous avez peut-être remarqué que vous n’êtes qu’une âme errante qui vole, donnez vous de la chair ! Pour cela, nous devrons interagir avec certains Events.

Ajoutons du code dans votre Index.lua:

my-package/Server/Index.lua
-- Appelé quand les joueurs rejoignent le serveur (exemple: Spawn)
Player.Subscribe("Spawn", function(new_player)
-- Fait apparaître un personnage à la position 0, 0, 0 avec les paramètres du constructeur par défaut
local new_character = Character(Vector(0, 0, 0))

-- Posséder le nouveau personnage
new_player:Possess(new_character)
end)

Pour appliquer vos modifications, exécutez la commande dans la console du serveur : package reload all.

tip

Maintenant si vous rejoignez le serveur, vous allez apparaître dans un personnage !

Finalisation : Détruire le personnage lorsqu'un joueur quitte le serveur

Notez que les personnages ne sont pas automatiquement détruits si le joueur se déconnecte. Pour cela, nous devrons nous abonner lorsque le Joueur quittera le serveur (Destroy) et détruire manuellement le Personnage :

my-package/Server/Index.lua
-- Appelé quand les joueurs rejoignent le serveur (exemple: Spawn)
Player.Subscribe("Spawn", function(new_player)
-- Fait apparaître un personnage à la position 0, 0, 0 avec les paramètres du constructeur par défaut
local new_character = Character(Vector(0, 0, 0))

-- Posséder le nouveau personnage
new_player:Possess(new_character)
end)

-- Quand le joueur quitte le serveur, détruire son personnage
Player.Subscribe("Destroy", function(player)
local character = player:GetControlledCharacter()
if (character) then
character:Destroy()
end
end)

Pour appliquer vos modifications, exécutez la commande dans la console du serveur : package reload all.

Conclusion

Félicitations ! Vous avez terminé votre premier script basique et appris:
  • Comment installer votre serveur
  • Comment configurer un package simple
  • Interaction basique avec les événements d'entité
  • Faire apparaître des Props
  • Apparition & Destruction des personnages

Étape suivante recommandée

Guide des classescore-concepts/scripting/classes-guide