From 77ee6507beb313d34ddceb5050567ad68a26a6e1 Mon Sep 17 00:00:00 2001 From: Jordan Adams Date: Sun, 25 Aug 2024 05:17:03 -0400 Subject: [PATCH] Added Nazi Zombies: Portable egg (#18) * Added Nazi Zombies: Portable egg * Added Nazi Zombies: Portable entry to the main README.md * Removed SERVER_BINARY variable and hardcoded binary name, added the port the game uses to the README.md and renamed the egg to pterodactyl naming format * Removed old file as git didn't detect it was moved and delete the original (leaving a ghost file) * add Pelican egg and cleanup * Changed 'Port' section to table and made README more in line with other README's in the repository. --------- Co-authored-by: Quinten <67589015+QuintenQVD0@users.noreply.github.com> --- README.md | 1 + nazi_zombies_portable/README.md | 19 +++++ .../egg-nazi-zombies-portable.json | 77 +++++++++++++++++++ ...gg-pterodactyl-nazi-zombies--portable.json | 72 +++++++++++++++++ 4 files changed, 169 insertions(+) create mode 100644 nazi_zombies_portable/README.md create mode 100644 nazi_zombies_portable/egg-nazi-zombies-portable.json create mode 100644 nazi_zombies_portable/egg-pterodactyl-nazi-zombies--portable.json diff --git a/README.md b/README.md index a33b6430..8a092f3a 100644 --- a/README.md +++ b/README.md @@ -60,6 +60,7 @@ * [Mindustry](mindustry) * [Minetest](minetest) * [Medal of Honor: Allied Assault](mohaa) +* [Nazi Zombies: Portable](nazi_zombies_portable) * [Neverwinter Nights: Enhanced Edition](neverwinter_nights_ee) * [OpenArena](openarena) * [OpenRA](openra) diff --git a/nazi_zombies_portable/README.md b/nazi_zombies_portable/README.md new file mode 100644 index 00000000..9d1ad672 --- /dev/null +++ b/nazi_zombies_portable/README.md @@ -0,0 +1,19 @@ +# Nazi Zombies: Portable (NZ:P) + +Nazi Zombies: Portable is a project that allows you to play Call of Duty: Zombies on a LOT of devices/platforms, from Windows to Linux to Browser to Nintendo Switch to PSP to PlayStation VITA (you get the idea). +It is based on the FTEQW engine and this egg can be used as a plain FTEQW egg if you desire. + +## Server Ports + +| Port | default | +|-------------------------------|---------| +| Game WS/TCP (for Web Clients) | 27500 | +| Game UDP (for Native Clients) | 27500 | + +### Notes + +Resources pertaining to NZ:P Native Client download, browser release and documentation. + +* [NZ:P Native](https://github.com/nzp-team/nzportable/releases) +* [NZ:P Browser](https://nzp.gay) +* [NZ:P Documentation](https://docs.nzp.gay) diff --git a/nazi_zombies_portable/egg-nazi-zombies-portable.json b/nazi_zombies_portable/egg-nazi-zombies-portable.json new file mode 100644 index 00000000..a8c60845 --- /dev/null +++ b/nazi_zombies_portable/egg-nazi-zombies-portable.json @@ -0,0 +1,77 @@ +{ + "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PANEL", + "meta": { + "version": "PTDL_v2", + "update_url": null + }, + "exported_at": "2024-06-24T08:55:54+00:00", + "name": "Nazi Zombies: Portable", + "author": "jordanadamsbusiness@outlook.com", + "uuid": "8569960f-865d-40ad-bdb0-aff8368f1e5a", + "description": "NZ:P (Nazi Zombies: Portable) is based off of the FTEQW (Fore Thought Engine Quake World). This egg is specifically made for use with NZ:P (just downloads assets and QuakeC from NZ:P repositories) but there is nothing stopping you from using it as a general FTEQW egg given the NZ:P fork of FTEQW only added fog to the client (and added SDL which caused issues with arguments being eaten preventing dedicated flag from being read) which is why upstream FTEQW is used.", + "features": null, + "docker_images": { + "Debian": "ghcr.io\/parkervcp\/yolks:debian" + }, + "file_denylist": [], + "startup": ".\/fteqw-sv64 -dedicated +sv_port {{SERVER_PORT}} +sv_port_tcp {{SERVER_PORT}} +com_protocolname {{PROTOCOL}} +sv_mintic {{TICKRATE}} +map {{MAP}} {{GAME_ARGS}}", + "config": { + "files": "{}", + "startup": "{\r\n \"done\": \"======== Nazi Zombies Portable Initialized ========\"\r\n}", + "logs": "{}", + "stop": "quit" + }, + "scripts": { + "installation": { + "script": "#!\/bin\/ash\r\n# Nazi Zombies: Portable (NZ:P) Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\n\r\n# FTEQW (Engine)\r\ncurl -sSL -o fteqw-sv_linux64.zip https:\/\/www.fteqw.org\/dl\/fteqw-sv_linux64.zip\r\nunzip -o fteqw-sv_linux64.zip -d \/mnt\/server\r\n\r\n# Assets\r\nASSETS_LATEST_VERSION=$(curl -L -s -H 'Accept: application\/json' https:\/\/github.com\/nzp-team\/assets\/releases\/latest | jq -r '.tag_name')\r\ncurl -sSL -o pc-nzp-assets.zip \"https:\/\/github.com\/nzp-team\/assets\/releases\/download\/$ASSETS_LATEST_VERSION\/pc-nzp-assets.zip\"\r\nunzip -o pc-nzp-assets.zip -d \/mnt\/server\r\n\r\n# QuakeC\r\nQUAKEC_LATEST_VERSION=$(curl -L -s -H 'Accept: application\/json' https:\/\/github.com\/nzp-team\/quakec\/releases\/latest | jq -r '.tag_name')\r\ncurl -sSL -o fte-nzp-qc.zip \"https:\/\/github.com\/nzp-team\/quakec\/releases\/download\/$QUAKEC_LATEST_VERSION\/fte-nzp-qc.zip\"\r\ncurl -sSL -o standard-nzp-qc.zip \"https:\/\/github.com\/nzp-team\/quakec\/releases\/download\/$QUAKEC_LATEST_VERSION\/standard-nzp-qc.zip\"\r\nunzip -o fte-nzp-qc.zip -d \/mnt\/server\/nzp\r\nunzip -o standard-nzp-qc.zip -d \/mnt\/server\/nzp\r\n\r\n# CHMOD (not needed but be certain)\r\nchmod +x \/mnt\/server\/fteqw-sv64\r\n# Cleanup\r\nrm fteqw-sv_linux64.zip pc-nzp-assets.zip fte-nzp-qc.zip standard-nzp-qc.zip\r\n\r\n## install end\r\necho \"-----------------------------------------\"\r\necho \"Installation completed...\"\r\necho \"-----------------------------------------\"", + "container": "ghcr.io\/parkervcp\/installers:alpine", + "entrypoint": "ash" + } + }, + "variables": [ + { + "sort": null, + "name": "Protocol", + "description": "NZ:P Native Clients - `NZP-REBOOT`.\r\nNZ:P Web Clients - `NZP-REBOOT-WEB`.\r\n\r\nHit your \"`\/~\" key on your keyboard, this will open console, then you will type `connect ip:port` for native clients, for web clients you would type `connect ws:\/\/ip:port`. In addition, you MUST be on the HTTP version of the website you are playing the web client on, otherwise the browser will block the request", + "env_variable": "PROTOCOL", + "default_value": "NZP-REBOOT", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|max:50", + "field_type": "text" + }, + { + "sort": null, + "name": "Tickrate", + "description": "Think of this like fps, the default value is 1 frame per 45 ms (0.045 seconds) which is ~22 fps, 30 fps is ~33.3 ms, 60 fps is ~16.6ms, the reason the tickrate is low is due to zombies being bandwidth heavy (especially in the higher rounds), take caution when changing this, but if you up the tickrate, it may fix physics bugs like zombies getting stuck on terrain.", + "env_variable": "TICKRATE", + "default_value": "0.045", + "user_viewable": true, + "user_editable": true, + "rules": "required|numeric|max:20", + "field_type": "text" + }, + { + "sort": null, + "name": "Map", + "description": "The map to load, you can find a list via `listmaps`, default map is ndu otherwise known as \"Nacht der Untoten\"", + "env_variable": "MAP", + "default_value": "ndu", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|max:20", + "field_type": "text" + }, + { + "sort": null, + "name": "Additional Game Arguments", + "description": "`+cvar value` is the format for changing the cvars", + "env_variable": "GAME_ARGS", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string|max:200", + "field_type": "text" + } + ] +} \ No newline at end of file diff --git a/nazi_zombies_portable/egg-pterodactyl-nazi-zombies--portable.json b/nazi_zombies_portable/egg-pterodactyl-nazi-zombies--portable.json new file mode 100644 index 00000000..07da42b7 --- /dev/null +++ b/nazi_zombies_portable/egg-pterodactyl-nazi-zombies--portable.json @@ -0,0 +1,72 @@ +{ + "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PANEL", + "meta": { + "version": "PTDL_v2", + "update_url": null + }, + "exported_at": "2024-06-24T10:54:48+02:00", + "name": "Nazi Zombies: Portable", + "author": "jordanadamsbusiness@outlook.com", + "description": "NZ:P (Nazi Zombies: Portable) is based off of the FTEQW (Fore Thought Engine Quake World). This egg is specifically made for use with NZ:P (just downloads assets and QuakeC from NZ:P repositories) but there is nothing stopping you from using it as a general FTEQW egg given the NZ:P fork of FTEQW only added fog to the client (and added SDL which caused issues with arguments being eaten preventing dedicated flag from being read) which is why upstream FTEQW is used.", + "features": null, + "docker_images": { + "Debian": "ghcr.io\/parkervcp\/yolks:debian" + }, + "file_denylist": [], + "startup": ".\/fteqw-sv64 -dedicated +sv_port {{SERVER_PORT}} +sv_port_tcp {{SERVER_PORT}} +com_protocolname {{PROTOCOL}} +sv_mintic {{TICKRATE}} +map {{MAP}} {{GAME_ARGS}}", + "config": { + "files": "{}", + "startup": "{\r\n \"done\": \"======== Nazi Zombies Portable Initialized ========\"\r\n}", + "logs": "{}", + "stop": "quit" + }, + "scripts": { + "installation": { + "script": "#!\/bin\/ash\r\n# Nazi Zombies: Portable (NZ:P) Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\n\r\n# FTEQW (Engine)\r\ncurl -sSL -o fteqw-sv_linux64.zip https:\/\/www.fteqw.org\/dl\/fteqw-sv_linux64.zip\r\nunzip -o fteqw-sv_linux64.zip -d \/mnt\/server\r\n\r\n# Assets\r\nASSETS_LATEST_VERSION=$(curl -L -s -H 'Accept: application\/json' https:\/\/github.com\/nzp-team\/assets\/releases\/latest | jq -r '.tag_name')\r\ncurl -sSL -o pc-nzp-assets.zip \"https:\/\/github.com\/nzp-team\/assets\/releases\/download\/$ASSETS_LATEST_VERSION\/pc-nzp-assets.zip\"\r\nunzip -o pc-nzp-assets.zip -d \/mnt\/server\r\n\r\n# QuakeC\r\nQUAKEC_LATEST_VERSION=$(curl -L -s -H 'Accept: application\/json' https:\/\/github.com\/nzp-team\/quakec\/releases\/latest | jq -r '.tag_name')\r\ncurl -sSL -o fte-nzp-qc.zip \"https:\/\/github.com\/nzp-team\/quakec\/releases\/download\/$QUAKEC_LATEST_VERSION\/fte-nzp-qc.zip\"\r\ncurl -sSL -o standard-nzp-qc.zip \"https:\/\/github.com\/nzp-team\/quakec\/releases\/download\/$QUAKEC_LATEST_VERSION\/standard-nzp-qc.zip\"\r\nunzip -o fte-nzp-qc.zip -d \/mnt\/server\/nzp\r\nunzip -o standard-nzp-qc.zip -d \/mnt\/server\/nzp\r\n\r\n# CHMOD (not needed but be certain)\r\nchmod +x \/mnt\/server\/fteqw-sv64\r\n# Cleanup\r\nrm fteqw-sv_linux64.zip pc-nzp-assets.zip fte-nzp-qc.zip standard-nzp-qc.zip\r\n\r\n## install end\r\necho \"-----------------------------------------\"\r\necho \"Installation completed...\"\r\necho \"-----------------------------------------\"", + "container": "ghcr.io\/parkervcp\/installers:alpine", + "entrypoint": "ash" + } + }, + "variables": [ + { + "name": "Protocol", + "description": "NZ:P Native Clients - `NZP-REBOOT`.\r\nNZ:P Web Clients - `NZP-REBOOT-WEB`.\r\n\r\nHit your \"`\/~\" key on your keyboard, this will open console, then you will type `connect ip:port` for native clients, for web clients you would type `connect ws:\/\/ip:port`. In addition, you MUST be on the HTTP version of the website you are playing the web client on, otherwise the browser will block the request", + "env_variable": "PROTOCOL", + "default_value": "NZP-REBOOT", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|max:50", + "field_type": "text" + }, + { + "name": "Tickrate", + "description": "Think of this like fps, the default value is 1 frame per 45 ms (0.045 seconds) which is ~22 fps, 30 fps is ~33.3 ms, 60 fps is ~16.6ms, the reason the tickrate is low is due to zombies being bandwidth heavy (especially in the higher rounds), take caution when changing this, but if you up the tickrate, it may fix physics bugs like zombies getting stuck on terrain.", + "env_variable": "TICKRATE", + "default_value": "0.045", + "user_viewable": true, + "user_editable": true, + "rules": "required|numeric|max:20", + "field_type": "text" + }, + { + "name": "Map", + "description": "The map to load, you can find a list via `listmaps`, default map is ndu otherwise known as \"Nacht der Untoten\"", + "env_variable": "MAP", + "default_value": "ndu", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|max:20", + "field_type": "text" + }, + { + "name": "Additional Game Arguments", + "description": "`+cvar value` is the format for changing the cvars", + "env_variable": "GAME_ARGS", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string|max:200", + "field_type": "text" + } + ] +} \ No newline at end of file