diff --git a/README.md b/README.md index 3eaa7bfc..6cd1060f 100644 --- a/README.md +++ b/README.md @@ -261,6 +261,7 @@ If you are reading this it looks like you are looking to add an egg to your serv * [Left 4 Dead 2](game_eggs/steamcmd_servers/left4dead_2) * [Modiverse](game_eggs/steamcmd_servers/modiverse) * [Mordhau](game_eggs/steamcmd_servers/mordhau) +* [Neos VR](game_eggs/steamcmd_servers/neosvr) * [No More Room in Hell](game_eggs/steamcmd_servers/nmrih) * [No One Survived](game_eggs/steamcmd_servers/no_one_survived) * [Onset](game_eggs/steamcmd_servers/onset) diff --git a/game_eggs/README.md b/game_eggs/README.md index e4f2c6f8..3dc06826 100644 --- a/game_eggs/README.md +++ b/game_eggs/README.md @@ -158,6 +158,7 @@ * [Left 4 Dead 2](steamcmd_servers/left4dead_2) * [Modiverse](steamcmd_servers/modiverse) * [Mordhau](steamcmd_servers/mordhau) +* [Neos VR](steamcmd_servers/neosvr) * [No More Room in Hell](steamcmd_servers/nmrih) * [No One Survived](steamcmd_servers/no_one_survived) * [Onset](steamcmd_servers/onset) diff --git a/game_eggs/steamcmd_servers/README.md b/game_eggs/steamcmd_servers/README.md index 2c93490c..6490e0e9 100644 --- a/game_eggs/steamcmd_servers/README.md +++ b/game_eggs/steamcmd_servers/README.md @@ -130,6 +130,9 @@ This is a collection of servers that use SteamCMD to install. [Mordhau](mordhau) +## Neos VR +[Neos VR](neosvr) + ## No More Room in Hell [No More Room in Hell](nmrih) diff --git a/game_eggs/steamcmd_servers/neosvr/Config.json b/game_eggs/steamcmd_servers/neosvr/Config.json new file mode 100644 index 00000000..648a31ca --- /dev/null +++ b/game_eggs/steamcmd_servers/neosvr/Config.json @@ -0,0 +1,48 @@ +{ + "$schema": "https://raw.githubusercontent.com/Neos-Metaverse/JSONSchemas/main/schemas/NeosHeadlessConfig.schema.json", + "universeId": null, + "tickRate": 60.0, + "maxConcurrentAssetTransfers": 4, + "usernameOverride": null, + "loginCredential": "", + "loginPassword": "", + "startWorlds": [{ + "isEnabled": true, + "saveAsOwner": null, + "autoInviteUsernames": null, + "parentSessionIds": null, + "autoInviteMessage": null, + "autoRecover": true, + "idleRestartInterval": -1.0, + "forcedRestartInterval": -1.0, + "saveOnExit": false, + "autosaveInterval": -1.0, + "autoSleep": true, + "sessionName": null, + "customSessionId": null, + "description": null, + "maxUsers": 32, + "accessLevel": "Anyone", + "hideFromPublicListing": null, + "tags": null, + "mobileFriendly": false, + "loadWorldURL": null, + "loadWorldPresetName": "SpaceWorld", + "overrideCorrespondingWorldId": null, + "forcePort": null, + "keepOriginalRoles": false, + "defaultUserRoles": null, + "roleCloudVariable": null, + "allowUserCloudVariable": null, + "denyUserCloudVariable": null, + "requiredUserJoinCloudVariable": null, + "requiredUserJoinCloudVariableDenyMessage": null, + "awayKickMinutes": -1.0 + }], + "dataFolder": null, + "cacheFolder": null, + "logsFolder": null, + "allowedUrlHosts": null, + "autoSpawnItems": null, + "metamovieRoles": null +} \ No newline at end of file diff --git a/game_eggs/steamcmd_servers/neosvr/README.md b/game_eggs/steamcmd_servers/neosvr/README.md new file mode 100644 index 00000000..83007b28 --- /dev/null +++ b/game_eggs/steamcmd_servers/neosvr/README.md @@ -0,0 +1,10 @@ +# Neos VR headless client +## From https://neos.com +Developing Neos, short for neo spatium - new space, a highly collaborative virtual and augmented reality metaverse. + +# Notice + +To use this egg you will need a beta code and a Steam account. Currently the beta code can only acquired by going to the Neos Patreon, subscribing to the "Gunter" level, and linking your Patreon to Discord. Then you will be able to see the #headless-client channel and the password will be pinned in the command after -betapassword. The account will also need to have Neos VR in its library. You can do this by running `app_license_request 740250` in steamcmd if you have never installed Neos VR on this Steam account. +For more information related to configuration go here: https://wiki.neos.com/Headless_Client/Server + +This game does not require any port forwarding, but instead uses UDP NAT hole punching (and/or relay) on a random port. You can force a certain port in the config for direct connections, but most communcation is done via NAT hole punch using LiteNetLib (LNL). \ No newline at end of file diff --git a/game_eggs/steamcmd_servers/neosvr/egg-neos-v-r.json b/game_eggs/steamcmd_servers/neosvr/egg-neos-v-r.json new file mode 100644 index 00000000..a9c11cb2 --- /dev/null +++ b/game_eggs/steamcmd_servers/neosvr/egg-neos-v-r.json @@ -0,0 +1,112 @@ +{ + "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", + "meta": { + "version": "PTDL_v2", + "update_url": null + }, + "exported_at": "2023-06-03T13:33:19-04:00", + "name": "NeosVR", + "author": "espeon@espeon.dev", + "description": "Neos VR is a metaverse engineered for the unknown! It\u2019s one of the most versatile and feature rich metaverses for virtual reality, designed so everybody can find something interesting or useful to do in a social setting.", + "features": null, + "docker_images": { + "Mono": "ghcr.io\/parkervcp\/yolks:mono_latest" + }, + "file_denylist": [], + "startup": "mono Neos.exe -c .\/Config\/Config.json -l .\/Logs $(if {{ENABLE_MODLOADER}}; then echo \"-LoadAssembly .\/NeosModLoaderHeadless.dll\"; fi)", + "config": { + "files": "{}", + "startup": "{\r\n \"done\": \"World running...\"\r\n}", + "logs": "{}", + "stop": "shutdown" + }, + "scripts": { + "installation": { + "script": "#!\/bin\/bash\r\n# steamcmd Base Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\n# Image to install with is 'ghcr.io\/parkervcp\/installers:debian'\r\n\r\n\r\n## just in case someone removed the defaults.\r\nif [[ \"${STEAM_USER}\" == \"\" ]] || [[ \"${STEAM_PASS}\" == \"\" ]]; then\r\n echo -e \"steam user is not set.\\n\"\r\n echo -e \"Using anonymous user.\\n\"\r\n STEAM_USER=anonymous\r\n STEAM_PASS=\"\"\r\n STEAM_AUTH=\"\"\r\nelse\r\n echo -e \"user set to ${STEAM_USER}\"\r\nfi\r\n\r\n## download and install steamcmd\r\ncd \/tmp\r\nmkdir -p \/mnt\/server\/steamcmd\r\ncurl -sSL -o steamcmd.tar.gz https:\/\/steamcdn-a.akamaihd.net\/client\/installer\/steamcmd_linux.tar.gz\r\ntar -xzvf steamcmd.tar.gz -C \/mnt\/server\/steamcmd\r\nmkdir -p \/mnt\/server\/steamapps # Fix steamcmd disk write error when this folder is missing\r\ncd \/mnt\/server\/steamcmd\r\n\r\n# SteamCMD fails otherwise for some reason, even running as root.\r\n# This is changed at the end of the install process anyways.\r\nchown -R root:root \/mnt\r\nexport HOME=\/mnt\/server\r\n\r\n## install game using steamcmd\r\n.\/steamcmd.sh +force_install_dir \/mnt\/server +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} $( [[ \"${WINDOWS_INSTALL}\" == \"1\" ]] && printf %s '+@sSteamCmdForcePlatformType windows' ) +app_update ${SRCDS_APPID} $( [[ -z ${SRCDS_BETAID} ]] || printf %s \"-beta ${SRCDS_BETAID}\" ) $( [[ -z ${SRCDS_BETAPASS} ]] || printf %s \"-betapassword ${SRCDS_BETAPASS}\" ) ${INSTALL_FLAGS} validate +quit ## other flags may be needed depending on install. looking at you cs 1.6\r\n\r\n## set up 32 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk32\r\ncp -v linux32\/steamclient.so ..\/.steam\/sdk32\/steamclient.so\r\n\r\n## set up 64 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk64\r\ncp -v linux64\/steamclient.so ..\/.steam\/sdk64\/steamclient.so\r\n\r\n## add below your custom commands if needed\r\n\r\n## create default config\r\nmkdir -p \/mnt\/server\/Config\r\nrm -rf \/mnt\/server\/Config\/Config.json\r\ncurl -sSL -o \/mnt\/server\/Config\/Config.json https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/game_eggs\/steamcmd_servers\/neosvr\/Config.json\r\n\r\n## install end\r\necho \"-----------------------------------------\"\r\necho \"Installation completed...\"\r\necho \"-----------------------------------------\"", + "container": "ghcr.io\/parkervcp\/installers:debian", + "entrypoint": "bash" + } + }, + "variables": [ + { + "name": "Steam Account User", + "description": "The username for your Steam account.", + "env_variable": "STEAM_USER", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|max:128", + "field_type": "text" + }, + { + "name": "Steam Account Password", + "description": "The password for your Steam account.", + "env_variable": "STEAM_PASS", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|max:128", + "field_type": "text" + }, + { + "name": "Steam Account Token\/Code", + "description": "The Steam Guard code or Login Token emailed to you.", + "env_variable": "STEAM_AUTH", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string", + "field_type": "text" + }, + { + "name": "Enable Mod Loader", + "description": "See: https:\/\/github.com\/neos-modding-group\/NeosModLoader for more information on Neos Mod Loader.", + "env_variable": "ENABLE_MODLOADER", + "default_value": "false", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|in:true,false", + "field_type": "text" + }, + { + "name": "Beta Password", + "description": "This is the \"Beta Password\" that is only acquired by going to the Neos Patreon, subscribing to the \"Gunter\" level, and linking your Patreon to Discord. Then you will be able to see the #headless-client channel and the password will be pinned in the command after -betapassword.", + "env_variable": "SRCDS_BETAPASS", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|max:30", + "field_type": "text" + }, + { + "name": "Beta branch name", + "description": "", + "env_variable": "SRCDS_BETAID", + "default_value": "headless-client", + "user_viewable": false, + "user_editable": false, + "rules": "required|string|", + "field_type": "text" + }, + { + "name": "Auto update", + "description": "Auto update the server on startup", + "env_variable": "AUTO_UPDATE", + "default_value": "1", + "user_viewable": true, + "user_editable": true, + "rules": "required|boolean", + "field_type": "text" + }, + { + "name": "Steam App ID", + "description": "", + "env_variable": "SRCDS_APPID", + "default_value": "740250", + "user_viewable": false, + "user_editable": false, + "rules": "required|string|max:20", + "field_type": "text" + } + ] +} \ No newline at end of file