Les mondes de ton serveur
Ton serveur fait tourner les mondes que tu copies dans son dossier des mondes et que tu listes dans sa configuration. Un monde te vient de son créateur sous la forme du dossier créé par le World Publisher : un manifest.json, un dossier par plateforme (StandaloneWindows64, StandaloneLinux64, Android), et, pour ses scripts FL#, scripts/client.wasm et un dossier server.
Ajouter un monde
- Arrête le serveur.
- Copie le dossier entier du monde dans
Config/Worlds, tel que le créateur l’a donné. Le nom du dossier est l’ID du monde :Config/Worlds/Tavernpour le mondeTavern. - Ajoute-le à la liste
Worldsdeserver-config.yaml:
Worlds:
- WorldId: Tavern
Capacity: 20
GraceSeconds: 120
HomeWorld: false
MaxInstances: 0- Lance le serveur. Il vérifie chaque monde et dit à NodeWorld quels mondes il fait tourner : ils apparaissent sur la page de ton serveur dans Explorer.
Un monde sans fichiers pour une plateforme ne peut pas être rejoint depuis cette plateforme : les joueurs sur Quest ont besoin de son dossier Android. Chaque serveur, Windows ou Linux, x86-64 ou ARM64 (un Raspberry Pi…), fait tourner les scripts FL# du monde depuis le même scripts/client.wasm.
Chaque monde est vérifié
Au démarrage, le serveur vérifie chaque monde de la liste comme le fait le jeu des joueurs, toujours (aucun réglage ne le coupe) :
manifest.jsonest au format 4, celui du SDK 0.3.0, et c’est bien le monde de ce dossier ;- chaque fichier listé par le manifeste est là, avec sa taille et son SHA-256.
Un monde qui passe est servi :
World 'Tavern' checked: 7 files match its manifest.Un monde qui échoue n’est pas servi : il est retiré de ce que le serveur dit à NodeWorld et de sa liste de mondes, aucune instance ne démarre, et aucun de ses fichiers n’est envoyé. Le journal dit pourquoi :
World 'Tavern' is not served: its manifest format 3 is older than 4, the oldest this server reads: the world's creator must publish it again with the NodeWorld SDK.
World 'Tavern' is not served: StandaloneWindows64/world.bundle does not match the size and SHA-256 of the manifest: copy the whole package the SDK wrote again.- Format plus ancien que 4 : le monde a été publié avec un SDK antérieur à 0.3.0 ; demande une nouvelle version à son créateur.
- Fichier qui ne correspond pas : un fichier a été changé, manque ou vient d’une autre version ; recopie le dossier du créateur, en entier.
- Format plus récent que ce que lit le serveur : mets le serveur à jour.
Tu es prévenu
À chaque heartbeat, le serveur dit aussi à NodeWorld quels mondes il a refusés et pourquoi. La première fois qu’un monde est refusé pour une raison, toi et les copropriétaires du serveur recevez une notification sur le site, et dans les Notifications du jeu : The Pier n’est pas servi sur Mon serveur, avec la raison et quoi faire. Sur le site, elle ouvre la page de ton serveur dans Mes serveurs, où Mondes refusés liste les mondes que le serveur ne sert pas, chacun avec sa raison, tant qu’ils sont refusés.
La notification ne revient que pour une autre raison, ou si le monde a été servi entre-temps puis refusé à nouveau. Désactive-la sur le site, dans Paramètres, Notifications, Mondes refusés sur mes serveurs.
Le créateur du monde n’est pas prévenu : NodeWorld ne sait pas qui a fait un monde. Ce sont le propriétaire et les copropriétaires du serveur qui sont prévenus, puisque ce sont eux qui republient le monde ou le demandent à son créateur.
Quand une instance démarre, le serveur relit le module FL# du monde et server/scene.json, chacun comparé au manifeste, avant de lancer les scripts du monde. Ils tournent toujours dans le bac à sable FL#, l’interpréteur du serveur, quel que soit l’auteur du monde.
Les joueurs téléchargent le monde depuis ton serveur
La première fois qu’un joueur entre dans un monde, son jeu télécharge les fichiers de sa plateforme depuis ton serveur (par le port du jeu, en TCP), puis les garde. Une nouvelle version du monde est de nouveau téléchargée une fois.
Icônes et mondes d’accueil
- Sur le site, la page de ton serveur dans Mes serveurs liste ses mondes : Importer une icône donne à chaque monde l’image que les joueurs voient dans le menu.
- Un monde avec
HomeWorld: truepeut accueillir les joueurs dans leur monde d’accueil, si ton serveur a Autoriser l’hébergement d’accueil sur le site et qu’un admin l’a validé.
Le nom et la description d’un monde
Les joueurs voient le Display Name et la Description que le créateur a écrits dans le World Publisher, lus dans le manifest.json du monde. Pour les changer, le monde est publié de nouveau depuis le World Publisher : copie son nouveau dossier dans Config/Worlds et redémarre le serveur. Le site ne les change pas.
Les changements des administrateurs de NodeWorld
Les administrateurs de NodeWorld peuvent remplacer le nom ou la description d’un monde, ou décider s’il est un monde d’accueil. Les joueurs voient alors leur valeur, quoi que ton serveur envoie, jusqu’à ce qu’ils la retirent ; ensuite, c’est de nouveau celle de ton serveur.
