Skip to main content
Version: latest - a1.19.x ⚖️

Paketleitfaden

Pakete sind Teile/Komponenten deines Servers, die beispielsweise Lua-Skripte ausführen, um mit dem Spiel zu interagieren.

Jedes Paket ist isoliert und hat seine eigene Lua Virtual Machine. Dies bedeutet, dass jeder seinen eigenen globalen Anwendungsbereich hat und nicht direkt auf andere Daten zugreifen kann.

Ordnerstruktur

Alle Pakete müssen unter den Ordner Server/Packages/ liegen. Jedes Paket ist ein Ordner unter diesem Pfad.

Ein Paket muss dabei folgende Ordner enthalten: Server, Client und Shared. Nur Client und Shared Ordner werden an die Clients gesendet und geladen, sobald diese sich mit dem Server verbinden.

Jedes Package (Paket) muss eine Datei namens Index.lua besitzen. Dabei sollte die Datei in den Ordnern Server, Client oder Shared hinterlegt werden. Dies ist die einzige Datei, welche ausgelöst wird, sobald das Paket geladen wird. Auf dieser Weise ist diese Datei verantwortlich für die Aufnahme anderer Dateien und das Starten der Funktionalitäten.

Server Folder
NanosWorldServer.exe
Packages/
├── My_Package_01/
│ ├── Server/
│ │ ├── Index.lua
│ │ └── *.lua
│ ├── Client/
│ │ └── *.lua
│ ├── Shared/
│ │ └── *.lua
│ └── Package.toml
├── My_Package_02/
│ ├── Package.toml
│ └── ...
Assets/
Config.toml

Paketkonfiguration

Pakete haben eine Konfigurationsdatei im Stammverzeichnis des Paket-Ordners, genannt Package.toml. In dieser Datei können alle relevanten Einstellungen für das Paket hinterlegt werden:

Package.toml
loading...

Einstellungen detailliert

EinstellungBeschreibung
nameFreundlicher Name des Pakets
autorAuthor(s) of the Package
versionVersion des Pakets - siehe SemVer
bildURL des Bildes im Tresor anzeigen
typeTyp des Pakets - siehe Paketarten
force_no_map_scriptEnabling this will force the map-script (if any) to do NOT load
auto_cleanupAktivieren wird alle Entitäten dieses Pakets zerstören, wenn es entlädt
packages_requirementsListe der Pakete, die zuerst geladen werden müssen
assets_requirementsListe der zu ladenden Asset-Pakete beim Laden dieses Pakets
compatible_mapsList of Maps compatible/recommended to work with this Package

Paketarten

In nanos world we have 4 kind of packages: script, game-mode, library and loading-screen, each one with with a specific functionality and an unique purpose.

TypeBeschreibung
scriptNormales Paket, wird seine Skripte ausführen und beim Start eine neue Lua VM erzeugen.
game-modeLike script but you can only load one game-mode package at once.
Useful when you are creating full games which cannot be loaded with other full games packages.
libraryIt will not load a Lua VM. Should be loaded through Package.RequirePackage from other Packages.
Useful when you are creating a library or framework and want it being loaded on clients as well, or when you need to set this as dependency of other packages.
loading-screenSpecial Package which will be loaded during player's loading screen.
Those packages must have an Index.html in the root.
Please refer to Loading Screen for more information.
tip

If you are creating a Tool or some Addon package, make it script!

If you are creating a Library, a Framework or some Utility package, make it library!

Wenn Sie ein einzigartiges und komplettes <0>Spiel</0> mit mehreren Funktionen erstellen, die nicht durcheinanderbringen gebracht werden sollen, falls jemand zwei volle Spiele lädt, dann machen Sie es <1>game-mode</1>!

Ignoring Client Folders

Sometimes you want to ignore some folders from being sent to the clients (e.g. auto generated folders from Node.js HTML ones).

So, to make the server ignore it you just need to add an .ignore file in the root of that folder. Simple as that 😉.