From 2a8bd559400f9914accfbb218ae88c8abc4e4070 Mon Sep 17 00:00:00 2001 From: parkervcp Date: Sun, 13 Sep 2020 10:53:02 -0400 Subject: [PATCH] add mordhau wine config Add a new mordhau egg that uses wine to run the server. --- steamcmd_servers/mordhau/README.md | 18 ++-- .../mordhau/egg-mordhau-wine.json | 99 +++++++++++++++++++ 2 files changed, 110 insertions(+), 7 deletions(-) create mode 100644 steamcmd_servers/mordhau/egg-mordhau-wine.json diff --git a/steamcmd_servers/mordhau/README.md b/steamcmd_servers/mordhau/README.md index e7aa78b7..d67ed494 100644 --- a/steamcmd_servers/mordhau/README.md +++ b/steamcmd_servers/mordhau/README.md @@ -1,7 +1,16 @@ -mog#Mordhau +# Mordhau Steam Description MORDHAU is a medieval first & third person multiplayer slasher. Enter a hectic battlefield of up to 64 players as a mercenary in a fictional, but realistic world, where you will get to experience the brutal and satisfying melee combat that will have you always coming back for more. +### Versions + +#### Vanilla +A standard linux mordhau server + +#### Wine +The windows version of the server running in Wine. +This supports some mods that do not work with the linux version of the server. +Uses more resources for the server than the linux version. ### Server Ports Mordhau requires 3 ports @@ -14,15 +23,12 @@ Beacon (default 15000) |---------|---------------| | Game | 7777 | | Query | 27015 | -| Beacon | 15000 | - - +| Beacon | 15000 | ### Map Rotation / Change Config Lots of good information in this [thread](https://mordhau.com/forum/topic/10348/dedicated-server-hosting-guide-linux/?page=1) You'll need to run the server once before the Mordhau/Saved/Config/LinuxServer folder is available - ### Default Map Variable By default the game always starts the same game map and mode. Change this variable to start the server wth your choice of map and mode. For example , Grad/HRD_Grad OR TaigaMap/FL_Taiga @@ -34,8 +40,6 @@ FFA = Deathmatch BR = BattleRoyal TDM = Team Death Match - - Valid types per map Grad/ diff --git a/steamcmd_servers/mordhau/egg-mordhau-wine.json b/steamcmd_servers/mordhau/egg-mordhau-wine.json new file mode 100644 index 00000000..98bba824 --- /dev/null +++ b/steamcmd_servers/mordhau/egg-mordhau-wine.json @@ -0,0 +1,99 @@ +{ + "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", + "meta": { + "version": "PTDL_v1" + }, + "exported_at": "2020-09-13T10:48:47-04:00", + "name": "Mordhau Wine", + "author": "parker@parkervcp.com", + "description": "Mordhau is a multiplayer medieval hack 'n slash video game, developed by Slovenian independent studio Triternion, with a prominent aspect of skill-based competitive play and customization.", + "image": "quay.io\/parkervcp\/pterodactyl-images:debian_wine-5", + "startup": "xvfb-run --auto-servernum --server-args='-screen 0 1024x768x16:32' wine MordhauServer.exe {{DEFAULT_MAP}} -log MaxSlots={{MAX_PLAYERS}} -USEALLAVAILABLECORES -Port={{SERVER_PORT}} -QueryPort={{QUERY_PORT}} -Beaconport={{BEACON_PORT}}", + "config": { + "files": "{\r\n \"Mordhau\/Saved\/Config\/WindowsServer\/Game.ini\": {\r\n \"parser\": \"file\",\r\n \"find\": {\r\n \"AdminPassword=\": \"AdminPassword={{server.build.env.ADMIN_PASSWORD}}\",\r\n \"ServerName=\": \"ServerName={{server.build.env.SERVER_NAME}}\",\r\n \"ServerPassword=\": \"ServerPassword={{server.build.env.GAME_PASSWORD}}\"\r\n }\r\n }\r\n}", + "startup": "{\r\n \"done\": \"UpdateGameServer completed (bWasSuccessful: 1)\"\r\n}", + "logs": "{}", + "stop": "^C" + }, + "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 'debian:buster-slim'\r\n\r\n##\r\n#\r\n# Variables\r\n# STEAM_USER, STEAM_PASS, STEAM_AUTH - Steam user setup. If a user has 2fa enabled it will most likely fail due to timeout. Leave blank for anon install.\r\n# WINDOWS_INSTALL - if it's a windows server you want to install set to 1\r\n# SRCDS_APPID - steam app id ffound here - https:\/\/developer.valvesoftware.com\/wiki\/Dedicated_Servers_List\r\n# EXTRA_FLAGS - when a server has extra glas for things like beta installs or updates.\r\n#\r\n##\r\nDEBIAN_FRONTEND=noninteractive\r\n\r\napt -y update\r\napt -y --no-install-recommends install curl lib32gcc1 ca-certificates\r\n\r\n## just in case someone removed the defaults.\r\nif [ \"${STEAM_USER}\" == \"\" ]; 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\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 +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} $( [[ \"${WINDOWS_INSTALL}\" == \"1\" ]] && printf %s '+@sSteamCmdForcePlatformType windows' ) +force_install_dir \/mnt\/server +app_update ${SRCDS_APPID} ${EXTRA_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", + "container": "debian:buster-slim", + "entrypoint": "bash" + } + }, + "variables": [ + { + "name": "Steam Server App ID", + "description": "", + "env_variable": "SRCDS_APPID", + "default_value": "629800", + "user_viewable": 0, + "user_editable": 0, + "rules": "required|numeric" + }, + { + "name": "Query Port", + "description": "", + "env_variable": "QUERY_PORT", + "default_value": "27015", + "user_viewable": 0, + "user_editable": 0, + "rules": "required|numeric|max:65535" + }, + { + "name": "Beacon Port", + "description": "Mordhau Beacon Port", + "env_variable": "BEACON_PORT", + "default_value": "15000", + "user_viewable": 0, + "user_editable": 0, + "rules": "required|numeric|max:65535" + }, + { + "name": "Windows Install Flag", + "description": "Required for windows game server installs", + "env_variable": "WINDOWS_INSTALL", + "default_value": "1", + "user_viewable": 0, + "user_editable": 0, + "rules": "required|boolean" + }, + { + "name": "Admin Password", + "description": "", + "env_variable": "ADMIN_PASSWORD", + "default_value": "aP@55word", + "user_viewable": 1, + "user_editable": 1, + "rules": "required|string" + }, + { + "name": "Server Name", + "description": "", + "env_variable": "SERVER_NAME", + "default_value": "A Pterodactyl Hosted Server", + "user_viewable": 1, + "user_editable": 1, + "rules": "required|string" + }, + { + "name": "Game Password", + "description": "", + "env_variable": "GAME_PASSWORD", + "default_value": "", + "user_viewable": 1, + "user_editable": 1, + "rules": "nullable|string" + }, + { + "name": "Default Map", + "description": "", + "env_variable": "DEFAULT_MAP", + "default_value": "\/Game\/Mordhau\/Maps\/Contraband\/FFA_Contraband", + "user_viewable": 1, + "user_editable": 1, + "rules": "nullable|string" + } + ] +} \ No newline at end of file