Difference between revisions of "Headless Client"

From Neos Wiki
Jump to navigation Jump to search
m (update PR link with actual url)
 
(9 intermediate revisions by 4 users not shown)
Line 42: Line 42:
  
 
<!--T:10-->
 
<!--T:10-->
If you see this, you're good to go! You've got a running Headless Client. You'll probably want to create a [[Headless Client/Configuration File|Configuration File]] next.
+
If you see this, you're good to go!  
 +
 
 +
<!--T:15-->
 +
'''You've got a running Headless Client. You'll probably want to create a [[Headless Client/Configuration File|Configuration File]] next.'''
  
 
== Saving Headless Worlds == <!--T:11-->
 
== Saving Headless Worlds == <!--T:11-->
  
 +
<!--T:16-->
 
When you're running a headless client, you may wish to save changes to the world for things like collaborative building. When doing this keep in mind:
 
When you're running a headless client, you may wish to save changes to the world for things like collaborative building. When doing this keep in mind:
  
 +
<!--T:17-->
 
# You must have save access to the world you are trying to save.
 
# You must have save access to the world you are trying to save.
 
#* Simply loading someone else's world via your [[Headless_Client/Configuration_File|configuration file]] might not give you this permissions.
 
#* Simply loading someone else's world via your [[Headless_Client/Configuration_File|configuration file]] might not give you this permissions.
Line 53: Line 58:
 
#* Check the parameters with "save" in them on our [[Headless_Client/Configuration_File|configuration file]] page.
 
#* Check the parameters with "save" in them on our [[Headless_Client/Configuration_File|configuration file]] page.
 
#* Also see [[Headless_Client/Commands|the headless commands reference]] for how to invoke a save.
 
#* Also see [[Headless_Client/Commands|the headless commands reference]] for how to invoke a save.
 +
# For Cloud saving ([[Headless_Client/Configuration_File##SaveAsOwner|saveAsOwner:"CloudUser"]]), you must:
 +
#* Ensure the headless is logged into a user account
 +
#* Ensure the logged in user has cloud storage space for the world and any changes
 +
 +
<!--T:18-->
 +
For a smooth experience '''if you want to save a world from a headless''' it is recommended to:
 +
* Copy worlds you might want to save changes to, to the headless user's account using Save As
 +
** You'll need to log in as the headless user on regular Neos to do this
 +
* Utilize [[Groups]], and load the headless world from a group's storage
 +
** This let's your group work on and save a headless' world without interacting with the headless. The next time it restarts it'll pickup the changes from the group storage.
 +
** When doing this make sure to disable saving on the headless, make all changes outside it.
 +
* Experiment: Create a headless, add a cube to the world, save it, make sure the cube stays there. Don't do a lot of work without validating your setup.
  
 
== Docker == <!--T:12-->
 
== Docker == <!--T:12-->
It is also possible to run Headless Clients within Docker or even a Kubernetes setup. A community member Shadow Panther has some [https://github.com/shadowpanther/neosvr-headless publicly available files] for this.
+
It is also possible to run Headless Clients within Docker or even a Kubernetes setup. A few community members have publicly available files to help setup your Docker instance. Please review any of the following to see which one will fit your needs:
 +
 
 +
<!--T:19-->
 +
* [https://github.com/shadowpanther/neosvr-headless Shadow Panther's Dockerfile]
 +
* [https://github.com/bontebok/neosvr-headless Rucio's Dockerfile]
 +
* [https://github.com/hazre/neosvr-headless Hazre's Dockerfile]
  
 
== Pterodactyl == <!--T:13-->
 
== Pterodactyl == <!--T:13-->
We also have some community members looking at adding Neos Headless Client support to [https://pterodactyl.io/ Pterodactyl], which is a Game Server management panel. See [https://github.com/parkervcp/eggs/pull/1173 their PR] for more info.
+
We also have some community members looking at adding Neos Headless Client support to [https://pterodactyl.io/ Pterodactyl], which is a Game Server management panel. See [https://github.com/parkervcp/eggs/tree/master/game_eggs/steamcmd_servers/neosvr their repo] for more info.
  
 
== See Also == <!--T:14-->
 
== See Also == <!--T:14-->

Latest revision as of 10:36, 7 August 2023

Other languages:
English • ‎日本語 • ‎한국어

Headless Clients are versions of Neos that lack a graphical user interface, allowing them to run efficiently in scenarios where rendering is not needed (such as when used as a server). It is common to use a Headless Client to run events or servers for large volume applications within Neos. Headless Clients can run on Windows and Linux servers wherever they may be, including your own computer.

Access to Headless Client Builds

The Headless Client feature is currently in preview and due to this you will need to have a Neos Pro License or to be a Neos Patreon at the Gunter level or higher. Once this is done, check the pins in the #headless-client channel in the Neos Discord server, or contact a Neos administrator to get your access code.

Getting the Headless Client Files

There are two options for getting the files required to run a headless client:

  1. Using Steam's Graphical Interface
  2. Using Steam's Command Line Interface - Common for within Docker files and Linux servers.

Using Steam's Graphical Interface

  1. Open Steam
  2. Find Neos in your Installed Games list
  3. Right Click Neos and select "Properties"
  4. Click the "Betas" option in the window which appears
  5. Enter your code from the pinned message on the "#headless-client" channel into the "beta access code" field.
  6. This will grant you access to the headless-client build.
  7. Switch to the headless-client build

Using Steam's Command Line Interface

  1. install SteamCMD
  2. Run Steam CMD with: steamcmd
  3. Paste the following command into SteamCMD: app_update 740250 -beta headless-client -betapassword <beta access code>

Running a Headless Client

First, look for the files you've installed. Look for Neos.exe:

  • For SteamCMD it will be in the location which you downloaded the files to with SteamCMD
  • For Steam's GUI it will be in the regular Steam installation folder for Neos inside a folder called "HeadlessClient"

Once you've found them you can try running the "Neos.exe" file in there:

  • For Windows just double click it
  • For Linux you'll need mono: mono Neos.exe

This will run a default Neos Headless, as we haven't specified any configuration properties it will just open a default world using a non-logged in user. This isn't that useful but it does verify that everything is installed and setup correctly. After it starts up you should see "World Running" and something along the lines of "<your computers name> World 0>_".

If you see this, you're good to go!

You've got a running Headless Client. You'll probably want to create a Configuration File next.

Saving Headless Worlds

When you're running a headless client, you may wish to save changes to the world for things like collaborative building. When doing this keep in mind:

  1. You must have save access to the world you are trying to save.
    • Simply loading someone else's world via your configuration file might not give you this permissions.
  2. Saving must be configured or invoked, saving is not automatic.
  3. For Cloud saving (saveAsOwner:"CloudUser"), you must:
    • Ensure the headless is logged into a user account
    • Ensure the logged in user has cloud storage space for the world and any changes

For a smooth experience if you want to save a world from a headless it is recommended to:

  • Copy worlds you might want to save changes to, to the headless user's account using Save As
    • You'll need to log in as the headless user on regular Neos to do this
  • Utilize Groups, and load the headless world from a group's storage
    • This let's your group work on and save a headless' world without interacting with the headless. The next time it restarts it'll pickup the changes from the group storage.
    • When doing this make sure to disable saving on the headless, make all changes outside it.
  • Experiment: Create a headless, add a cube to the world, save it, make sure the cube stays there. Don't do a lot of work without validating your setup.

Docker

It is also possible to run Headless Clients within Docker or even a Kubernetes setup. A few community members have publicly available files to help setup your Docker instance. Please review any of the following to see which one will fit your needs:

Pterodactyl

We also have some community members looking at adding Neos Headless Client support to Pterodactyl, which is a Game Server management panel. See their repo for more info.

See Also