From 4d17f33093850b9c9f48789d4064395f0c0ef726 Mon Sep 17 00:00:00 2001 From: Red-Thirten Date: Wed, 5 Jun 2024 20:44:38 -0700 Subject: [PATCH] [DayZ] Stable Native Linux Update - Updates the DayZ (Experimental) Egg to be focused on the Stable branch of the DayZ dedicated server that now supports Linux natively. While I would no longer like to maintain the Egg to support the Experimental branch of the server, it should still be possible to run this branch by changing the "[Advanced] DayZ Dedicated Server App ID" variable. - The Egg should now support running mods more reliably. - Updated the Egg's README to have updated and better information. - Updated the master README to reflect the Egg's directory change. --- README.md | 2 +- dayz-experimental/README.md | 84 ------------ dayz/README.md | 122 ++++++++++++++++++ .../egg-day-z.json | 65 ++++++---- .../egg-pterodactyl-day-z.json | 86 ++++++------ 5 files changed, 209 insertions(+), 150 deletions(-) delete mode 100644 dayz-experimental/README.md create mode 100644 dayz/README.md rename dayz-experimental/egg-day-z--experimental.json => dayz/egg-day-z.json (79%) rename dayz-experimental/egg-pterodactyl-day-z--experimental.json => dayz/egg-pterodactyl-day-z.json (73%) diff --git a/README.md b/README.md index a4cc66a8..adfa9d72 100644 --- a/README.md +++ b/README.md @@ -32,7 +32,7 @@ * [Counter-Strike](counter_strike) * [Craftopia](craftopia) * [Cryofall](cryofall) -* [DayZ (Experimental)](dayz-experimental) +* [DayZ](dayz) * [DDNet](ddnet) * [Dead Matter](dead_matter) * [Don't Starve Together](dont_starve) diff --git a/dayz-experimental/README.md b/dayz-experimental/README.md deleted file mode 100644 index 57b69c35..00000000 --- a/dayz-experimental/README.md +++ /dev/null @@ -1,84 +0,0 @@ -# DayZ (Experimental) - -**Author's Notice:** This egg ***only*** works with the experimental branch of DayZ (Standalone), and it will ***only*** accept players who are running the experimental client! At time of writing (May 2022), there is ***no*** native Linux server binary for the Stable branch, and compatibility with Wine is poor for the Windows binary. - -___ - -## Authors / Contributors - - - - - - - -
- -
Red-Thirten -
-
- 💻 - 🔨 -
- - - -___ - -### Game Description - -From Bohemia Interactive's [Website](https://dayz.com/): -> How long can you survive a post-apocalyptic world? A land overrun with an infected "zombie" population, where you compete with other survivors for limited resources. Will you team up with strangers and stay strong together? Or play as a lone wolf to avoid betrayal? This is DayZ – this is your story. -___ - -### Egg Capabilities - -- Able to download server updates on startup -- Able to download, update, and load Steam Workshop mods on startup (\*see [Installation/System Requirements](#installationsystem-requirements)) - - Also accepts server-side only mods. - - Checks for mod updates against their Steam Workshop page's last update for quick and efficient update checks. - - Automatically moves mod `.bikey`'s to the `/keys/` directory. - - Note: These features only work with mods in the `@workshopID#` format. Manually uploaded mods are not automatically updated. -- Multiple basic settings found within the `serverDZ.cfg` file can be easily set from the server's Startup tab - - Server name, passwords, disable third person, persistant time, and more... -- Max Players is configurable and able to be host enforced (\*see [Recommended Egg Modifications](#recommended-egg-modifications)) -- Additional [DayZ startup parameters](https://community.bistudio.com/wiki/DayZ:Server_Configuration#Launch_Parameters) can be added to fine-tune performance -- [WHMCS](https://www.whmcs.com/) compatible (\*see [Recommended Egg Modifications](#recommended-egg-modifications)) - -___ - -### Server Ports - -Default server ports are listed below, but the Main port can be any port. - -| Port | Default (UDP) | -|---------|---------| -| **DayZ Game (Main)** | 2302 | -| Steam Query (Optional?) | 27016 | - -___ - -### Installation/System Requirements - -| | Bare Minimum | Recommended | -|---------|---------|---------| -| Processor | Recent x86/64 (AMD/Intel) processor. No 32-bit or ARM support. | ---- | -| RAM | 4096 MiB | 8192 MiB | -| Storage | 3 GB | 7+ GB (depends on how many mods are installed) | -| Network | 0.512 Mbit/s/player | 1-5 Mbit/s/player | -| Host OS | Most stable Linux OS branches should work | Using the latest kernel version for your installed OS can prevent some edge-case installation/boot issues. | -| Game Ownership | Not required to start. | Required for automatic Steam Workshop mod downloading to work. However, this is optional functionality, and mods can be manually uploaded to the server if desired. Hosts may feel free to change the "Disable Mod Downloads/Updates" variable to `1` if they would not like to offer it's functionality to clients. | - -___ - -### Recommended Egg Modifications - -The following are highly recommended variable modifications you can make to the egg after importing it to your panel. While viewing this egg, simply go to the "Variables" tab of the egg editor to make these changes. - -#### Default Steam Username & Password - -- To make deploying servers easy (**or if you are using WHMCS**), it is recommended to edit the default values of "Steam Username" and "Steam Password" to your Steam account dedicated for hosting. This will make all newly installed servers use these credentials. **DO NOT** make these fields visible to the end user so that they can use their own Steam accounts; the panel will save their Steam credentials in **plain text**, which is a BIG NO NO for security and privacy. - -#### Restrict Max Players - -- If you would like to restrict the maximum number of players that can join your client's server, you can change the permissions of the "Max Players" variable so that clients can only view this value (and not edit it). It's default value can also be changed, or the value can be changed on a server-by-server basis as desired. diff --git a/dayz/README.md b/dayz/README.md new file mode 100644 index 00000000..9dfa13c1 --- /dev/null +++ b/dayz/README.md @@ -0,0 +1,122 @@ +# DayZ + +> [!NOTE] +> This Egg is for the standalone version of DayZ ***only***. It is not for the DayZ mod on Arma 2 or Arma 3. + +___ + +## Authors / Contributors + + + + + + + + + +
+ +
Red-Thirten +
+
+ 💻 + 🔨 +
+ +
Moondarker +
+
+ 💻 + 💡 +
+ +
Brophy +
+
+ 💻 + 💡 +
+ + + +___ + +### Game Description + +From Bohemia Interactive's [Website](https://dayz.com/): +> How long can you survive a post-apocalyptic world? A land overrun with an infected "zombie" population, where you compete with other survivors for limited resources. Will you team up with strangers and stay strong together? Or play as a lone wolf to avoid betrayal? This is DayZ – this is your story. +___ + +### Egg Capabilities + +- Able to download server updates on startup +- Able to download, update, and load Steam Workshop mods on startup (\*see [Installation/System Requirements](#installationsystem-requirements)) + - Also accepts server-side only mods. + - Checks for mod updates against their Steam Workshop page's last update for quick and efficient update checks. + - Automatically moves mod `.bikey`'s to the `/keys/` directory. + - Note: These features only work with mods in the `@workshopID#` format. Manually uploaded mods are not automatically updated. +- Multiple basic settings found within the `serverDZ.cfg` file can be easily set from the server's Startup tab + - Server name, passwords, disable third person, persistant time, and more... +- Max Players is configurable and able to be host enforced (\*see [Recommended Egg Modifications](#recommended-egg-modifications)) +- Additional [DayZ startup parameters](https://community.bistudio.com/wiki/DayZ:Server_Configuration#Launch_Parameters) can be added to fine-tune performance +- [WHMCS](https://www.whmcs.com/) compatible (\*see [Recommended Egg Modifications](#recommended-egg-modifications)) + +___ + +### Server Ports + +Default server ports are listed below, but all ports can be changed freely. + +| Port | Default (UDP) | +|---------|---------| +| **DayZ Game (Main)** | 2302 | +| Steam Query | 27016 | + +___ + +### Installation/System Requirements + +> [!IMPORTANT] +> A real, valid Steam account is required to install this game server. + +> [!WARNING] +> Steam Guard **must** be completely **turned off** for the server and mods to download efficiently. See [Running With Steam Guard Enabled](#running-with-steam-guard-enabled) for an unofficial workaround. + +| | Bare Minimum | Recommended | +|---------|---------|---------| +| Processor | Recent x86/64 (AMD/Intel) processor. No 32-bit or ARM support. | Avoid CPU Pinning; may cause issues. | +| RAM | 4096-5120 MiB | 8192 MiB | +| Storage | 3072 MiB | 7168+ MiB (depends on how many mods are installed) | +| Network | 0.512 Mbit/s/player | 1-5 Mbit/s/player | +| Host OS | Most stable Linux OS branches should work | Using the latest kernel version for your installed OS can prevent some edge-case installation/boot issues. | +| Game Ownership | Not required to install game server. | Required for automatic Steam Workshop mod downloading to work. However, this is optional functionality, and mods can be manually uploaded to the server if desired. Hosts may feel free to change the "Disable Mod Downloads/Updates" variable to `1` if they would not like to offer it's functionality to clients. | + +___ + +### Recommended Egg Modifications + +The following are highly recommended variable modifications you can make to the egg after importing it to your panel. While viewing this egg, simply go to the "Variables" tab of the egg editor to make these changes. + +#### Default Steam Username & Password + +- To make deploying servers easy (**or if you are using WHMCS**), it is recommended to edit the default values of "Steam Username" and "Steam Password" to your Steam account dedicated for hosting. This will make all newly installed servers use these credentials. **DO NOT** make these fields visible to the end user so that they can use their own Steam accounts; the panel will save their Steam credentials in **plain text**, which is a BIG NO NO for security and privacy. + +#### Restrict Max Players + +- If you would like to restrict the maximum number of players that can join your client's server, you can change the permissions of the "Max Players" variable so that clients can only view this value (and not edit it). It's default value can also be changed, or the value can be changed on a server-by-server basis as desired. + +___ + +### Running With Steam Guard Enabled + +> [!CAUTION] +> The following is ***highly discouraged*** for production environments or even private use. It should only be used if you *really* don't want to disable Steam Guard and don't plan on updating your server/mods often. Support will not be given to those with Steam Guard enabled. Additionally, using this method, you are at risk of rate limiting your account if something goes wrong. + +1. Edit the Egg so the Input Rules of the "Steam Username" and "Steam Password" Variables are `nullable|string`. +2. Create a new server as normal, but set "Steam Username" to be `anonymous` and "Steam Password" to be blank. This will cause the installer to successfully install SteamCMD but fail to install the DayZ server; this is intentional. +3. Once the server is created, go to the Startup tab. Change "Steam Username" and "Steam Password" to be your real Steam account and password. Also, enable "[Repair] Validate Server Files" (this only needs to be enabled for the first boot). +4. Start the server. The console will eventually appear to freeze on the line: `Loading Steam API...OK`. You will likely receive a Steam Guard request for login at this time. Approve this request just to be safe, but this will not log you in. Next, obtain a valid Steam Guard code, enter it into the console, and press Enter to submit it. This should log you in. It is successful if you see: `Two-factor code:OK`. The server will then download for the first time. Note: It may glitch and not display installation progress; be patient while it downloads and verifies. + - If you have mods to install, you will have to repeat this process of obtaining and entering in a *new* Steam Guard code for *every* mod. +5. Stop the server after it starts. Open the file `serverDZ.cfg` and add `steamQueryPort = 2305;` to the end of the file. (If the file was empty when you opened it for whatever reason, grab the default contents [here](https://community.bistudio.com/wiki/DayZ:Server_Configuration#Main_Parameters)) +6. The server is now ready for a "normal" boot. However, it is recommended you disable the "Automatic Updates" Startup Variable until you need to update again. Otherwise, you will have to go through the process of entering in Steam Guard codes again every boot. diff --git a/dayz-experimental/egg-day-z--experimental.json b/dayz/egg-day-z.json similarity index 79% rename from dayz-experimental/egg-day-z--experimental.json rename to dayz/egg-day-z.json index f7dad42b..cd09fd81 100644 --- a/dayz-experimental/egg-day-z--experimental.json +++ b/dayz/egg-day-z.json @@ -4,9 +4,9 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2024-06-01T00:04:08+00:00", - "name": "DayZ (Experimental)", - "author": "rehlmgaming@gmail.com", + "exported_at": "2024-06-05T20:20:54-07:00", + "name": "DayZ", + "author": "red_thirten@yahoo.com", "uuid": "ef7d4603-175b-4c7c-a827-516a6c19c101", "description": "How long can you survive a post-apocalyptic world? A land overrun with an infected \"zombie\" population, where you compete with other survivors for limited resources. Will you team up with strangers and stay strong together? Or play as a lone wolf to avoid betrayal? This is DayZ \u2013 this is your story.", "features": [ @@ -16,40 +16,51 @@ "ghcr.io\/parkervcp\/games:dayz": "ghcr.io\/parkervcp\/games:dayz" }, "file_denylist": [], - "startup": ".\/{{SERVER_BINARY}} -ip=0.0.0.0 -port={{SERVER_PORT}} -profiles=.\/serverprofile -BEpath=.\/ -config=serverDZ.cfg -mod=\\\"{{CLIENT_MODS}}\\\" -serverMod=\\\"{{SERVERMODS}}\\\" \\\"{{STARTUP_PARAMS}}\\\"", + "startup": ".\/{{SERVER_BINARY}} -port={{SERVER_PORT}} -profiles=profiles -BEpath=battleye -config=serverDZ.cfg -mod={{CLIENT_MODS}} -serverMod={{SERVERMODS}} {{STARTUP_PARAMS}}", "config": { - "files": "{\r\n \"serverDZ.cfg\": {\r\n \"parser\": \"file\",\r\n \"find\": {\r\n \"hostname =\": \"hostname = \\\"{{env.SERVER_HOSTNAME}}\\\";\",\r\n \"password =\": \"password = \\\"{{env.SERVER_PASSWORD}}\\\";\",\r\n \"passwordAdmin =\": \"passwordAdmin = \\\"{{env.ADMIN_PASSWORD}}\\\";\",\r\n \"maxPlayers\": \"maxPlayers = {{env.MAX_PLAYERS}};\",\r\n \"verifySignatures\": \"verifySignatures = {{env.VERIFY_SIGNATURES}};\",\r\n \"forceSameBuild\": \"forceSameBuild = {{env.ENFORCE_BUILD}};\",\r\n \"disableVoN\": \"disableVoN = {{env.DISABLE_VON}};\",\r\n \"vonCodecQuality\": \"vonCodecQuality = {{env.VON_QUALITY}};\",\r\n \"disable3rdPerson\": \"disable3rdPerson = {{env.DISABLE_THIRD}};\",\r\n \"disableCrosshair\": \"disableCrosshair = {{env.DISABLE_CROSSHAIR}};\",\r\n \"disablePersonalLight\": \"disablePersonalLight = {{env.DISABLE_PERSONAL_LIGHT}};\",\r\n \"lightingConfig\": \"lightingConfig = {{env.LIGHTING_CONFIG}};\",\r\n \"serverTimeAcceleration\": \"serverTimeAcceleration = {{env.TIME_MULT}};\",\r\n \"serverNightTimeAcceleration\": \"serverNightTimeAcceleration = {{env.NIGHT_MULT}};\",\r\n \"serverTimePersistent\": \"serverTimePersistent = {{env.PERSISTENT_TIME}};\"\r\n }\r\n }\r\n}", + "files": "{\r\n \"serverDZ.cfg\": {\r\n \"parser\": \"file\",\r\n \"find\": {\r\n \"hostname =\": \"hostname = \\\"{{env.SERVER_HOSTNAME}}\\\";\",\r\n \"password =\": \"password = \\\"{{env.SERVER_PASSWORD}}\\\";\",\r\n \"passwordAdmin =\": \"passwordAdmin = \\\"{{env.ADMIN_PASSWORD}}\\\";\",\r\n \"maxPlayers\": \"maxPlayers = {{env.MAX_PLAYERS}};\",\r\n \"verifySignatures\": \"verifySignatures = {{env.VERIFY_SIGNATURES}};\",\r\n \"forceSameBuild\": \"forceSameBuild = {{env.ENFORCE_BUILD}};\",\r\n \"disableVoN\": \"disableVoN = {{env.DISABLE_VON}};\",\r\n \"vonCodecQuality\": \"vonCodecQuality = {{env.VON_QUALITY}};\",\r\n \"disable3rdPerson\": \"disable3rdPerson = {{env.DISABLE_THIRD}};\",\r\n \"disableCrosshair\": \"disableCrosshair = {{env.DISABLE_CROSSHAIR}};\",\r\n \"disablePersonalLight\": \"disablePersonalLight = {{env.DISABLE_PERSONAL_LIGHT}};\",\r\n \"lightingConfig\": \"lightingConfig = {{env.LIGHTING_CONFIG}};\",\r\n \"serverTimeAcceleration\": \"serverTimeAcceleration = {{env.TIME_MULT}};\",\r\n \"serverNightTimeAcceleration\": \"serverNightTimeAcceleration = {{env.NIGHT_MULT}};\",\r\n \"serverTimePersistent\": \"serverTimePersistent = {{env.PERSISTENT_TIME}};\",\r\n \"steamQueryPort\": \"steamQueryPort = {{env.QUERY_PORT}};\"\r\n }\r\n }\r\n}", "startup": "{\r\n \"done\": \"Mission read.\"\r\n}", "logs": "{}", "stop": "^C" }, "scripts": { "installation": { - "script": "#!\/bin\/bash\r\n\r\n## File: Pterodactyl DayZ (Experimental) Egg - egg-dayz-experimental.json\r\n## Author: David Wolfe (Red-Thirten)\r\n## Date: 2022\/05\/26\r\n## License: MIT License\r\n## Image to install with is 'ghcr.io\/parkervcp\/installers:debian'\r\n\r\n\r\n# Download and install SteamCMD\r\ncd \/tmp\r\nmkdir -p \/mnt\/server\/steamcmd \/mnt\/server\/steamapps\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 server using SteamCMD\r\n.\/steamcmd.sh +force_install_dir \/mnt\/server \"+login \\\"${STEAM_USER}\\\" \\\"${STEAM_PASS}\\\"\" +app_update ${STEAMCMD_APPID} ${STEAMCMD_EXTRA_FLAGS} validate +quit\r\n\r\n# Set up 32 and 64 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk{32,64}\r\ncp -v linux32\/steamclient.so \/mnt\/server\/.steam\/sdk32\/steamclient.so\r\ncp -v linux64\/steamclient.so \/mnt\/server\/.steam\/sdk64\/steamclient.so\r\n\r\n\r\n## install end\r\necho \"-----------------------------------------\"\r\necho \"Installation completed...\"\r\necho \"-----------------------------------------\"", + "script": "#!\/bin\/bash\r\n\r\n## File: DayZ Egg - egg-dayz.json\r\n## Author: David Wolfe (Red-Thirten)\r\n## Date: 2024\/06\/05\r\n## License: MIT License\r\n## Image to install with is 'ghcr.io\/parkervcp\/installers:debian'\r\n\r\n## Download and install SteamCMD\r\nexport HOME=\/mnt\/server\r\ncd \/tmp\r\nmkdir -p $HOME\/steamcmd $HOME\/steamapps\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 $HOME\/steamcmd\r\ncd $HOME\/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\n\r\n# Install\/Verify game server using SteamCMD\r\n.\/steamcmd.sh +force_install_dir $HOME \"+login \\\"${STEAM_USER}\\\" \\\"${STEAM_PASS}\\\"\" +app_update ${STEAMCMD_APPID} $( [[ -z ${STEAMCMD_BETAID} ]] || printf %s \"-beta ${STEAMCMD_BETAID}\" ) $( [[ -z ${STEAMCMD_BETAPASS} ]] || printf %s \"-betapassword ${STEAMCMD_BETAPASS}\" ) ${INSTALL_FLAGS} validate +quit\r\n\r\n# Set up 32 and 64 bit libraries\r\nmkdir -p $HOME\/.steam\/sdk{32,64}\r\ncp -v linux32\/steamclient.so $HOME\/.steam\/sdk32\/steamclient.so\r\ncp -v linux64\/steamclient.so $HOME\/.steam\/sdk64\/steamclient.so\r\n\r\n## DayZ Setup\r\ncd $HOME\r\n\r\n# Check for successful installation\r\nif [ ! -f DayZServer ] || [ ! -f serverDZ.cfg ]; then\r\n echo -e \"\\n\\n[ERROR] SteamCMD failed to install the DayZ Dedicated Server!\"\r\n echo -e \"\\tTry reinstalling the server again.\\n\"\r\n exit 1\r\nfi\r\n\r\n# Add required steamQueryPort parameter to end of default serverDZ.cfg (if it's missing)\r\nif ! grep -q \"steamQueryPort\" serverDZ.cfg; then\r\n echo -e '\\nAdding required additional parameters to end of default \"serverDZ.cfg\"...'\r\ncat >> serverDZ.cfg << EOL\r\n\r\n\r\nsteamQueryPort = 2305;\r\nEOL\r\nfi\r\n\r\necho -e \"\\nDayZ Dedicated Server successfully installed!\\n\"", "container": "ghcr.io\/parkervcp\/installers:debian", "entrypoint": "\/bin\/bash" } }, "variables": [ + { + "name": "[Host] Steam Query Port", + "description": "UDP port for Steam server list features. Helps the server be visible in the client server browser.", + "env_variable": "QUERY_PORT", + "default_value": "2305", + "user_viewable": true, + "user_editable": false, + "rules": "required|integer|between:1024,65536", + "sort": null, + "field_type": "text" + }, { "name": "Steam Username", - "description": "Used for installation and updates. \"anonymous\" username can be used for server download, but a real account that owns DayZ is required for mod downloads. For security reasons it is recommended that you create a new Steam account just for your dedicated servers. *This info is not visible to the server owner.*", + "description": "Used for installation and updates. Account does not need to own DayZ, but MUST BE a VALID Steam account (anonymous login cannot be used). For security reasons it is recommended that you create a new Steam account just for your dedicated servers. *This info is not visible to the server owner.*", "env_variable": "STEAM_USER", - "default_value": "anonymous", + "default_value": "", "user_viewable": false, "user_editable": false, - "rules": "required|string", + "rules": "required|string|not_in:anonymous", "sort": null, "field_type": "text" }, { "name": "Steam Password", - "description": "Used for installation and updates. Steam Guard MUST be completely TURNED OFF for mod downloads to work. *This info is not visible to the server owner, BUT IS stored in PLAIN TEXT. It is NOT advised to use a personal account; best to use a dummy account.*", + "description": "Used for installation and updates. Steam Guard MUST be completely TURNED OFF for the server and mods to download efficiently. *This info is not visible to the server owner, BUT IS stored in PLAIN TEXT. It is NOT advised to use a personal account; best to use a dummy account.*", "env_variable": "STEAM_PASS", "default_value": "", "user_viewable": false, "user_editable": false, - "rules": "nullable|string", + "rules": "required|string", "sort": null, "field_type": "text" }, @@ -75,6 +86,17 @@ "sort": null, "field_type": "text" }, + { + "name": "Automatic Updates", + "description": "Quickly checks for any server or mod updates on startup, and updates if necessary.", + "env_variable": "UPDATE_SERVER", + "default_value": "1", + "user_viewable": true, + "user_editable": true, + "rules": "boolean", + "sort": null, + "field_type": "text" + }, { "name": "Server Name", "description": "Name of the server that will appear in the server list.", @@ -119,17 +141,6 @@ "sort": null, "field_type": "text" }, - { - "name": "Automatic Updates", - "description": "Quickly checks for any server or mod updates on startup, and updates if necessary.", - "env_variable": "UPDATE_SERVER", - "default_value": "1", - "user_viewable": true, - "user_editable": true, - "rules": "boolean", - "sort": null, - "field_type": "text" - }, { "name": "Modlist File (Exported from DayZ Launcher)", "description": "Filename for an exported modlist. This file will be parsed for mod installation and loading. Upload your HTML file to the root directory (eg. \/home\/container\/modlist.html). Leave blank to disable loading mods from a modlist.", @@ -310,7 +321,7 @@ "name": "[Advanced] Extra Startup Parameters", "description": "See https:\/\/community.bistudio.com\/wiki\/DayZ:Server_Configuration#Launch_Parameters for more info on valid flags for this field.", "env_variable": "STARTUP_PARAMS", - "default_value": "-doLogs -limitFPS=120", + "default_value": "-dologs -adminlog -netlog -freezecheck", "user_viewable": true, "user_editable": true, "rules": "nullable|string", @@ -329,13 +340,13 @@ "field_type": "text" }, { - "name": "[Advanced] DayZ SA Dedicated Server App ID", - "description": "Used for installation and updates. Rarely needs to be changed. Only the Experimental app ID currently works.", + "name": "[Advanced] DayZ Dedicated Server App ID", + "description": "Used for installation and updates. Rarely needs to be changed. 223350 is for Stable branch and 1042420 is for experimental branch. Changing branches may require deleting all server files and reinstalling.", "env_variable": "STEAMCMD_APPID", - "default_value": "1042420", + "default_value": "223350", "user_viewable": true, "user_editable": false, - "rules": "required|integer", + "rules": "required|integer|in:223350,1042420", "sort": null, "field_type": "text" } diff --git a/dayz-experimental/egg-pterodactyl-day-z--experimental.json b/dayz/egg-pterodactyl-day-z.json similarity index 73% rename from dayz-experimental/egg-pterodactyl-day-z--experimental.json rename to dayz/egg-pterodactyl-day-z.json index 8d880dee..e2e80e94 100644 --- a/dayz-experimental/egg-pterodactyl-day-z--experimental.json +++ b/dayz/egg-pterodactyl-day-z.json @@ -1,58 +1,68 @@ { - "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PANEL", + "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", "meta": { - "update_url": null, - "version": "PTDL_v2" + "version": "PTDL_v2", + "update_url": null }, - "exported_at": "2024-06-01T00:04:08+00:00", - "name": "DayZ (Experimental)", - "author": "rehlmgaming@gmail.com", - "description": "How long can you survive a post-apocalyptic world? A land overrun with an infected \"zombie\" population, where you compete with other survivors for limited resources. Will you team up with strangers and stay strong together? Or play as a lone wolf to avoid betrayal? This is DayZ – this is your story.", + "exported_at": "2024-06-05T20:20:54-07:00", + "name": "DayZ", + "author": "red_thirten@yahoo.com", + "description": "How long can you survive a post-apocalyptic world? A land overrun with an infected \"zombie\" population, where you compete with other survivors for limited resources. Will you team up with strangers and stay strong together? Or play as a lone wolf to avoid betrayal? This is DayZ \u2013 this is your story.", "features": [ "steam_disk_space" ], "docker_images": { - "ghcr.io/parkervcp/games:dayz": "ghcr.io/parkervcp/games:dayz" + "ghcr.io\/parkervcp\/games:dayz": "ghcr.io\/parkervcp\/games:dayz" }, "file_denylist": [], - "startup": "./{{SERVER_BINARY}} -ip=0.0.0.0 -port={{SERVER_PORT}} -profiles=./serverprofile -BEpath=./ -config=serverDZ.cfg -mod=\\\"{{CLIENT_MODS}}\\\" -serverMod=\\\"{{SERVERMODS}}\\\" \\\"{{STARTUP_PARAMS}}\\\"", + "startup": ".\/{{SERVER_BINARY}} -port={{SERVER_PORT}} -profiles=profiles -BEpath=battleye -config=serverDZ.cfg -mod={{CLIENT_MODS}} -serverMod={{SERVERMODS}} {{STARTUP_PARAMS}}", "config": { - "files": "{\r\n \"serverDZ.cfg\": {\r\n \"parser\": \"file\",\r\n \"find\": {\r\n \"hostname =\": \"hostname = \\\"{{env.SERVER_HOSTNAME}}\\\";\",\r\n \"password =\": \"password = \\\"{{env.SERVER_PASSWORD}}\\\";\",\r\n \"passwordAdmin =\": \"passwordAdmin = \\\"{{env.ADMIN_PASSWORD}}\\\";\",\r\n \"maxPlayers\": \"maxPlayers = {{env.MAX_PLAYERS}};\",\r\n \"verifySignatures\": \"verifySignatures = {{env.VERIFY_SIGNATURES}};\",\r\n \"forceSameBuild\": \"forceSameBuild = {{env.ENFORCE_BUILD}};\",\r\n \"disableVoN\": \"disableVoN = {{env.DISABLE_VON}};\",\r\n \"vonCodecQuality\": \"vonCodecQuality = {{env.VON_QUALITY}};\",\r\n \"disable3rdPerson\": \"disable3rdPerson = {{env.DISABLE_THIRD}};\",\r\n \"disableCrosshair\": \"disableCrosshair = {{env.DISABLE_CROSSHAIR}};\",\r\n \"disablePersonalLight\": \"disablePersonalLight = {{env.DISABLE_PERSONAL_LIGHT}};\",\r\n \"lightingConfig\": \"lightingConfig = {{env.LIGHTING_CONFIG}};\",\r\n \"serverTimeAcceleration\": \"serverTimeAcceleration = {{env.TIME_MULT}};\",\r\n \"serverNightTimeAcceleration\": \"serverNightTimeAcceleration = {{env.NIGHT_MULT}};\",\r\n \"serverTimePersistent\": \"serverTimePersistent = {{env.PERSISTENT_TIME}};\"\r\n }\r\n }\r\n}", - "logs": "{}", + "files": "{\r\n \"serverDZ.cfg\": {\r\n \"parser\": \"file\",\r\n \"find\": {\r\n \"hostname =\": \"hostname = \\\"{{env.SERVER_HOSTNAME}}\\\";\",\r\n \"password =\": \"password = \\\"{{env.SERVER_PASSWORD}}\\\";\",\r\n \"passwordAdmin =\": \"passwordAdmin = \\\"{{env.ADMIN_PASSWORD}}\\\";\",\r\n \"maxPlayers\": \"maxPlayers = {{env.MAX_PLAYERS}};\",\r\n \"verifySignatures\": \"verifySignatures = {{env.VERIFY_SIGNATURES}};\",\r\n \"forceSameBuild\": \"forceSameBuild = {{env.ENFORCE_BUILD}};\",\r\n \"disableVoN\": \"disableVoN = {{env.DISABLE_VON}};\",\r\n \"vonCodecQuality\": \"vonCodecQuality = {{env.VON_QUALITY}};\",\r\n \"disable3rdPerson\": \"disable3rdPerson = {{env.DISABLE_THIRD}};\",\r\n \"disableCrosshair\": \"disableCrosshair = {{env.DISABLE_CROSSHAIR}};\",\r\n \"disablePersonalLight\": \"disablePersonalLight = {{env.DISABLE_PERSONAL_LIGHT}};\",\r\n \"lightingConfig\": \"lightingConfig = {{env.LIGHTING_CONFIG}};\",\r\n \"serverTimeAcceleration\": \"serverTimeAcceleration = {{env.TIME_MULT}};\",\r\n \"serverNightTimeAcceleration\": \"serverNightTimeAcceleration = {{env.NIGHT_MULT}};\",\r\n \"serverTimePersistent\": \"serverTimePersistent = {{env.PERSISTENT_TIME}};\",\r\n \"steamQueryPort\": \"steamQueryPort = {{env.QUERY_PORT}};\"\r\n }\r\n }\r\n}", "startup": "{\r\n \"done\": \"Mission read.\"\r\n}", + "logs": "{}", "stop": "^C" }, "scripts": { "installation": { - "container": "ghcr.io/parkervcp/installers:debian", - "entrypoint": "/bin/bash", - "script": "#!/bin/bash\r\n\r\n## File: Pterodactyl DayZ (Experimental) Egg - egg-dayz-experimental.json\r\n## Author: David Wolfe (Red-Thirten)\r\n## Date: 2022/05/26\r\n## License: MIT License\r\n## Image to install with is 'ghcr.io/parkervcp/installers:debian'\r\n\r\n\r\n# Download and install SteamCMD\r\ncd /tmp\r\nmkdir -p /mnt/server/steamcmd /mnt/server/steamapps\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 server using SteamCMD\r\n./steamcmd.sh +force_install_dir /mnt/server \"+login \\\"${STEAM_USER}\\\" \\\"${STEAM_PASS}\\\"\" +app_update ${STEAMCMD_APPID} ${STEAMCMD_EXTRA_FLAGS} validate +quit\r\n\r\n# Set up 32 and 64 bit libraries\r\nmkdir -p /mnt/server/.steam/sdk{32,64}\r\ncp -v linux32/steamclient.so /mnt/server/.steam/sdk32/steamclient.so\r\ncp -v linux64/steamclient.so /mnt/server/.steam/sdk64/steamclient.so\r\n\r\n\r\n## install end\r\necho \"-----------------------------------------\"\r\necho \"Installation completed...\"\r\necho \"-----------------------------------------\"" + "script": "#!\/bin\/bash\r\n\r\n## File: DayZ Egg - egg-dayz.json\r\n## Author: David Wolfe (Red-Thirten)\r\n## Date: 2024\/06\/05\r\n## License: MIT License\r\n## Image to install with is 'ghcr.io\/parkervcp\/installers:debian'\r\n\r\n## Download and install SteamCMD\r\nexport HOME=\/mnt\/server\r\ncd \/tmp\r\nmkdir -p $HOME\/steamcmd $HOME\/steamapps\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 $HOME\/steamcmd\r\ncd $HOME\/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\n\r\n# Install\/Verify game server using SteamCMD\r\n.\/steamcmd.sh +force_install_dir $HOME \"+login \\\"${STEAM_USER}\\\" \\\"${STEAM_PASS}\\\"\" +app_update ${STEAMCMD_APPID} $( [[ -z ${STEAMCMD_BETAID} ]] || printf %s \"-beta ${STEAMCMD_BETAID}\" ) $( [[ -z ${STEAMCMD_BETAPASS} ]] || printf %s \"-betapassword ${STEAMCMD_BETAPASS}\" ) ${INSTALL_FLAGS} validate +quit\r\n\r\n# Set up 32 and 64 bit libraries\r\nmkdir -p $HOME\/.steam\/sdk{32,64}\r\ncp -v linux32\/steamclient.so $HOME\/.steam\/sdk32\/steamclient.so\r\ncp -v linux64\/steamclient.so $HOME\/.steam\/sdk64\/steamclient.so\r\n\r\n## DayZ Setup\r\ncd $HOME\r\n\r\n# Check for successful installation\r\nif [ ! -f DayZServer ] || [ ! -f serverDZ.cfg ]; then\r\n echo -e \"\\n\\n[ERROR] SteamCMD failed to install the DayZ Dedicated Server!\"\r\n echo -e \"\\tTry reinstalling the server again.\\n\"\r\n exit 1\r\nfi\r\n\r\n# Add required steamQueryPort parameter to end of default serverDZ.cfg (if it's missing)\r\nif ! grep -q \"steamQueryPort\" serverDZ.cfg; then\r\n echo -e '\\nAdding required additional parameters to end of default \"serverDZ.cfg\"...'\r\ncat >> serverDZ.cfg << EOL\r\n\r\n\r\nsteamQueryPort = 2305;\r\nEOL\r\nfi\r\n\r\necho -e \"\\nDayZ Dedicated Server successfully installed!\\n\"", + "container": "ghcr.io\/parkervcp\/installers:debian", + "entrypoint": "\/bin\/bash" } }, "variables": [ + { + "name": "[Host] Steam Query Port", + "description": "UDP port for Steam server list features. Helps the server be visible in the client server browser.", + "env_variable": "QUERY_PORT", + "default_value": "2305", + "user_viewable": true, + "user_editable": false, + "rules": "required|integer|between:1024,65536", + "field_type": "text" + }, { "name": "Steam Username", - "description": "Used for installation and updates. \"anonymous\" username can be used for server download, but a real account that owns DayZ is required for mod downloads. For security reasons it is recommended that you create a new Steam account just for your dedicated servers. *This info is not visible to the server owner.*", + "description": "Used for installation and updates. Account does not need to own DayZ, but MUST BE a VALID Steam account (anonymous login cannot be used). For security reasons it is recommended that you create a new Steam account just for your dedicated servers. *This info is not visible to the server owner.*", "env_variable": "STEAM_USER", - "default_value": "anonymous", + "default_value": "", "user_viewable": false, "user_editable": false, - "rules": "required|string", + "rules": "required|string|not_in:anonymous", "field_type": "text" }, { "name": "Steam Password", - "description": "Used for installation and updates. Steam Guard MUST be completely TURNED OFF for mod downloads to work. *This info is not visible to the server owner, BUT IS stored in PLAIN TEXT. It is NOT advised to use a personal account; best to use a dummy account.*", + "description": "Used for installation and updates. Steam Guard MUST be completely TURNED OFF for the server and mods to download efficiently. *This info is not visible to the server owner, BUT IS stored in PLAIN TEXT. It is NOT advised to use a personal account; best to use a dummy account.*", "env_variable": "STEAM_PASS", "default_value": "", "user_viewable": false, "user_editable": false, - "rules": "nullable|string", + "rules": "required|string", "field_type": "text" }, { - "name": "Disable Mod Downloads/Updates", - "description": "If the Steam account does not own the base DayZ game, Steam Workshop mod downloads/updates will not work. If so, this setting allows disabling of this feature to avoid errors. (1 ON | 0 OFF)", + "name": "Disable Mod Downloads\/Updates", + "description": "If the Steam account does not own the base DayZ game, Steam Workshop mod downloads\/updates will not work. If so, this setting allows disabling of this feature to avoid errors. (1 ON | 0 OFF)", "env_variable": "DISABLE_MOD_UPDATES", "default_value": "0", "user_viewable": false, @@ -70,6 +80,16 @@ "rules": "required|integer", "field_type": "text" }, + { + "name": "Automatic Updates", + "description": "Quickly checks for any server or mod updates on startup, and updates if necessary.", + "env_variable": "UPDATE_SERVER", + "default_value": "1", + "user_viewable": true, + "user_editable": true, + "rules": "boolean", + "field_type": "text" + }, { "name": "Server Name", "description": "Name of the server that will appear in the server list.", @@ -110,19 +130,9 @@ "rules": "nullable|string", "field_type": "text" }, - { - "name": "Automatic Updates", - "description": "Quickly checks for any server or mod updates on startup, and updates if necessary.", - "env_variable": "UPDATE_SERVER", - "default_value": "1", - "user_viewable": true, - "user_editable": true, - "rules": "boolean", - "field_type": "text" - }, { "name": "Modlist File (Exported from DayZ Launcher)", - "description": "Filename for an exported modlist. This file will be parsed for mod installation and loading. Upload your HTML file to the root directory (eg. /home/container/modlist.html). Leave blank to disable loading mods from a modlist.", + "description": "Filename for an exported modlist. This file will be parsed for mod installation and loading. Upload your HTML file to the root directory (eg. \/home\/container\/modlist.html). Leave blank to disable loading mods from a modlist.", "env_variable": "MOD_FILE", "default_value": "modlist.html", "user_viewable": true, @@ -282,9 +292,9 @@ }, { "name": "[Advanced] Extra Startup Parameters", - "description": "See https://community.bistudio.com/wiki/DayZ:Server_Configuration#Launch_Parameters for more info on valid flags for this field.", + "description": "See https:\/\/community.bistudio.com\/wiki\/DayZ:Server_Configuration#Launch_Parameters for more info on valid flags for this field.", "env_variable": "STARTUP_PARAMS", - "default_value": "-doLogs -limitFPS=120", + "default_value": "-dologs -adminlog -netlog -freezecheck", "user_viewable": true, "user_editable": true, "rules": "nullable|string", @@ -301,13 +311,13 @@ "field_type": "text" }, { - "name": "[Advanced] DayZ SA Dedicated Server App ID", - "description": "Used for installation and updates. Rarely needs to be changed. Only the Experimental app ID currently works.", + "name": "[Advanced] DayZ Dedicated Server App ID", + "description": "Used for installation and updates. Rarely needs to be changed. 223350 is for Stable branch and 1042420 is for experimental branch. Changing branches may require deleting all server files and reinstalling.", "env_variable": "STEAMCMD_APPID", - "default_value": "1042420", + "default_value": "223350", "user_viewable": true, "user_editable": false, - "rules": "required|integer", + "rules": "required|integer|in:223350,1042420", "field_type": "text" } ]