Headless klient/server
Headless klienti jsou verze Neosu postrádající grafické uživatelské rozhraní, což jim umožňuje běžet efektivně ve scénářích kde není potřeba renderovat (jako například při použití jako server). Uživatelé Neos Pro a patroni třídy a výše mají přístup k headless klientu. Podívejte se na piny v kanálu #headless-client v Neos Discord serveru, nebo kontaktujte Neos administrátora pro získání vašeho kódu.
Instalace
Metoda 1
Pomocí Steamu:
- Jděte do Steamu, otevřete vlastnosti Neosu a přejděte na záložku Beta verze
- Použijte váš kód pro aktivaci beta větve
- Přepněte na větev headless-client
Metoda 2
Pomocí SteamCMD:
- Vložte následující příkaz do SteamCMD:
app_update 740250 -beta headless-client -betapassword your_code
Konfigurace
Potom co Steam dokončí aktualizaci, otevřte instalační složku. Headless klient najdete v podsložce Headless Client. Můžete použít soubor Config/DefaultConfig.json pro konfiguraci světa po spuštění nebo pro přihlášení serveru do účtu (prosíme, nepoužívejte váš hlavní Neos účet). Zde je ukázková modifikace, kterou můžete použít a modifikovat:
{ "comment": "", "tickRate": 60.0, "maxConcurrentAssetTransfers": 4, "usernameOverride": null, "loginCredential": null, "loginPassword": null, "startWorlds": [ { "isEnabled": true, "sessionName": "", "customSessionId": null, "description": null, "maxUsers": 12, "accessLevel": "Anyone", "hideFromPublicListing": false, "tags": [ "test1", ], "mobileFriendly": false, "loadWorldURL": "", "saveAsOwner": null, "loadWorldPresetName": null, "forcePort": null, "keepOriginalRoles": false, "defaultUserRoles": { "User": "Admin" }, "autoInviteUsernames": null, "autoInviteMessage": null, "autoRecover": true, "idleRestartInterval": -1.0, "forcedRestartInterval": -1.0, "saveOnExit": false, "autosaveInterval": -1.0, "awayKickMinutes": -1.0, "autoSleep": true } ], "dataFolder": null, "cacheFolder": null, "allowedUrlHosts": null, "autoSpawnItems": null, "metamovieRoles": null }
- Atribut
loadWorldPresetName
načte svět založený na šabloně Neos světa. Dostupné šablony jsou "SpaceWorld", "Basic Empty", "GridSpace", "Microworld", "Testing Scaling", "ScratchSpace", "ScratchSpace (mobile)", "Instancing Test", "Physical Locomotion Test" a "UIX Test".
- Atribut
"defaultUserRoles"
definuje uživatele a přístupovou úroveň pro svět. Formát je "USERNAME": "ROLE". Dostupné role jsou "Admin", "Builder", "Moderator", "Guest", and "Spectator". - Spusťte spustitelný soubor pro spuštění klienta.
- The
"loginCredential"
attribute defines the Neos account to run the server with. It is recommended to create a separate account to run the server as if you wish to join your own server - it is not possible to join a server running with the same account on the client and server.
- Run the executable to start the client.
Konfigurace pro Lokální nebo Cloudové uložení světa
Ke konfiguraci Headless klienta pro funkci lokálního serveru uložiště, nastavte svět na "saveAsOwner" : "LocalMachine"
(bude nahrazeno poprvním spuštění unikátní startWorldURL
), "saveOnExit" : true
, a váš požadovaný autoSaveInterval
.
Pokud chcetet data světa uložit do cloudu (validní dedikovaný Neos účet bude potřeba), nastavte "saveAsOwner" : "CloudUser"
.
Prosíme používejte příkaz shutdown
pro uložení všech neuložených změn při ukončení.
Ukázka konfiguračního souboru:
{ "tickRate": 60.0, "usernameOverride": null, "loginCredential": null, "loginPassword": null, "startWorlds": [ { "sessionName": "My World 1", "description": null, "maxUsers": 32, "accessLevel": "LAN", "tags": null, "mobileFriendly": false, "loadWorldPresetName": "BasicEmpty", "saveAsOwner" : "LocalMachine", "autoRecover": true, "saveOnExit" : true, "autoSaveInterval" : 240, "forcedRestartInterval": -1.0 } ], "dataFolder": null, "cacheFolder": null }
Configration using Cloud Variables
For more details for Cloud Variables, see Cloud Variables.
- The
roleCloudVariable
allows auto-assigning a role based on a cloud variable.- This lets you define a cloud variable and assign value to users to determine their role in given world.
- The variable needs to be of type string. The value you assign equals the name of the role you want to grant to given user.
- It is STRONGLY recommended to make sure you're using cloud variable that you can write into on behalf of other users (
definition_owner
), otherwise users might be able to assign themselves a high permission role. - If no value is set for given user, the usual method to determine default role is used
- The
allowUserCloudVariable
allows using cloud variable to always allow user into a session.- The cloud variable needs to be of type bool and set to true for given user.
- This is equivalent of the user being sent an invite - they can join regardless of MaxUsers limit and even if the session is set to Private (they need to obtain).
- Same recommendations as above apply, please make sure you use the right cloud variables that you have proper control over.
- The
denyUserCloudVariable
allows denying join access to users via a cloud variable.- This functions similarly to
allowUserCloudVariable
, except when the value for given user is true, they will be denied access - This always takes precedence over other variables
- This functions similarly to
- The
requiredUserJoinCloudVariable
to world startup configuration, which requires a cloud variable to be set to true for given user so they can join- You can set a custom deny message via requiredUserJoinCloudVariableDenyMessage
- If the variable isn't set to true for given user, they won't be allowed access
- Setting the variable to true won't automatically grant access (unlike
allowUserCloudVariable
) and will still need to pass other rules - public access, session user limit and so on allowUserCloudVariable
takes precedence over this one, allowing to always allow given user access- This variable is useful for controlling access to a session, without bypassing the session max user limit and providing a custom message
Příkazy
Podívejte se na stránku Příkazy Headless klienta pro seznam příkazů.