This guide covers how to set up your NeosVR headless server on Legion Hosting, configure the Config.json, set up worlds, and manage startup variables. NeosVR is a social VR metaverse with powerful creation tools. For admin commands, mod loader setup, and troubleshooting, see NeosVR Admin Commands.
1. Prerequisites
- A Steam account that owns NeosVR.
- A NeosVR account with headless client access (requires Patreon "Gunter" tier for the beta password).
- Your Steam credentials for the server to download files via SteamCMD.
STEAM_AUTH variable.
2. First Start
- Log in to GPanel and select your NeosVR server.
- Go to the Startup tab and fill in the required variables (see Section 3).
- Set your STEAM_USER, STEAM_PASS, and SRCDS_BETAPASS (headless beta password from the Neos Patreon Discord).
- Return to the Console tab and click Start.
- Wait for the console to display
World running...to confirm the server is ready.
3. GPanel Startup Variables
| Variable | Required | Description |
|---|---|---|
STEAM_USER | Yes | Your Steam account username. |
STEAM_PASS | Yes | Your Steam account password. |
STEAM_AUTH | No | Steam Guard code or login token if 2FA is enabled. |
SRCDS_BETAPASS | Yes | Beta password for the headless client. Found in the Neos Patreon Discord #headless-client channel (requires Gunter tier). |
ENABLE_MODLOADER | No | Enable NeosModLoader. Set to true or false. Default: false. |
AUTO_UPDATE | No | Automatically update the server on startup. Default: 1 (enabled). |
4. World Configuration (Config.json)
The main configuration file is located at:
Config/Config.json
This JSON file controls all world and session settings. Stop the server before editing.
Key Settings
| Setting | Default | Description |
|---|---|---|
tickRate | 60.0 | Server tick rate in Hz. |
maxConcurrentAssetTransfers | 4 | Maximum simultaneous asset downloads. |
loginCredential | (empty) | Your NeosVR username or email for the headless to log in. |
loginPassword | (empty) | Your NeosVR account password. |
World Configuration (startWorlds array)
Each entry in startWorlds defines a world to host. Key world settings:
| Setting | Default | Description |
|---|---|---|
sessionName | null | Name displayed in the session browser. |
maxUsers | 32 | Maximum users in the world. |
accessLevel | Anyone | Who can join: Anyone, RegisteredUsers, ContactsPlus, Contacts, Private. |
loadWorldPresetName | SpaceWorld | Built-in world to load. Options include SpaceWorld, Grid, etc. |
loadWorldURL | null | URL of a custom world record to load instead of a preset. |
autoRecover | true | Automatically recover the world after a crash. |
saveOnExit | false | Save world state when shutting down. |
autosaveInterval | -1.0 | Autosave interval in seconds. -1 = disabled. |
hideFromPublicListing | null | Set to true to hide from the public session list. |
mobileFriendly | false | Mark as mobile-friendly. |
awayKickMinutes | -1.0 | Kick AFK users after this many minutes. -1 = disabled. |
Example Config.json
{
"tickRate": 60.0,
"maxConcurrentAssetTransfers": 4,
"loginCredential": "your-neos-username",
"loginPassword": "your-neos-password",
"startWorlds": [
{
"isEnabled": true,
"autoRecover": true,
"saveOnExit": true,
"autosaveInterval": 300.0,
"sessionName": "My Legion Server",
"maxUsers": 16,
"accessLevel": "Anyone",
"loadWorldPresetName": "SpaceWorld"
}
]
}
5. How to Connect
- Launch NeosVR.
- Open the Session Browser from the dash menu.
- Search for your server by session name.
- Select the session and click Join.
Related Articles
Need Help?
If you run into issues with your NeosVR server that are not covered here, open a support ticket and include your server IP, a description of the problem, and any relevant error messages from the GPanel console.