diff --git a/README.md b/README.md index a3cb74c5..bddab372 100644 --- a/README.md +++ b/README.md @@ -110,6 +110,9 @@ If you are reading this it looks like you are looking to add an egg to your serv [Call of Duty 4X](game_eggs/cod/cod4x) +[Doom](game_eggs/doom) +* [Zandronum](game_eggs/doom/zandronum) + [ET Legacy](game_eggs/enemy_territory/etlegacy) [FTL: Tachyon](game_eggs/ftl/tachyon) diff --git a/game_eggs/README.md b/game_eggs/README.md index 8f9d6a61..ddbf3123 100644 --- a/game_eggs/README.md +++ b/game_eggs/README.md @@ -14,6 +14,9 @@ * [MCGalaxy](classicube/mcgalaxy) +[Doom](doom) +* [Zandronum](doom/zandronum) + [ET Legacy](enemy_territory/etlegacy) [Factorio](factorio) diff --git a/game_eggs/doom/readme.md b/game_eggs/doom/readme.md new file mode 100644 index 00000000..7a3f397b --- /dev/null +++ b/game_eggs/doom/readme.md @@ -0,0 +1,3 @@ +# Doom +Doom is a 1993 first-person shooter (FPS) game developed by id Software. +## [Zandronum](zandronum) diff --git a/game_eggs/doom/zandronum/GeoIP.dat b/game_eggs/doom/zandronum/GeoIP.dat new file mode 100644 index 00000000..12f9a3d7 Binary files /dev/null and b/game_eggs/doom/zandronum/GeoIP.dat differ diff --git a/game_eggs/doom/zandronum/egg-zandronum.json b/game_eggs/doom/zandronum/egg-zandronum.json new file mode 100644 index 00000000..e19b491d --- /dev/null +++ b/game_eggs/doom/zandronum/egg-zandronum.json @@ -0,0 +1,152 @@ +{ + "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", + "meta": { + "version": "PTDL_v2", + "update_url": null + }, + "exported_at": "2022-12-14T14:27:39+01:00", + "name": "Zandronum", + "author": "sup@libtar.de", + "description": "Zandronum is a multiplayer oriented port, based off Skulltag, for Doom and Doom II by id Software.\r\n\r\nThis egg uses the Freedoom WAD by default.", + "features": null, + "docker_images": { + "Debian": "ghcr.io\/parkervcp\/yolks:debian" + }, + "file_denylist": [], + "startup": ".\/zandronum-server -port {{SERVER_PORT}} -config \/home\/container\/zandronum.ini +set dmflags {{DMFLAGS}} +set dmflags2 {{DMFLAGS2}} +set zadmflags {{ZADMFLAGS}} +set compatflags {{COMPATFLAGS}} +set compatflags2 {{COMPATFLAGS2}} +set zacompatflags {{ZACOMPATFLAGS}} -iwad IWAD\/{{IWAD}} -file PWAD\/{{PWADS}} -host {{MAX_PLAYERS}} +map {{MAP}} -skill {{SKILL}} -netmode 1", + "config": { + "files": "{}", + "startup": "{\r\n \"done\": \"UDP Initialized.\"\r\n}", + "logs": "{}", + "stop": "quit" + }, + "scripts": { + "installation": { + "script": "#!\/bin\/bash\r\nmkdir -p \/mnt\/server\r\ncd \/mnt\/server\r\n\r\nARCH=$([[ \"$(uname -m)\" == \"x86_64\" ]] && echo \"linux-x86_64\" || echo \"linuxserver-armv8\")\r\n\r\necho \"Fetching latest version number of Zandronum\"\r\nversion=\"$(wget -q -O - http:\/\/zandronum.com\/download |\r\nsed -n 's\/.*The latest version is \\(.*\\)<\\\/strong>.*\/\\1\/p')\"\r\n\r\nz=\"zandronum\"$version\"-${ARCH}.tar.bz2\"\r\n\r\necho \"Downloading release $version of Zandronum.\"\r\necho \"Executing wget -nc https:\/\/zandronum.com\/downloads\/$z\"\r\nwget -nc https:\/\/zandronum.com\/downloads\/\"$z\"\r\necho \"Untar Zandronum\"\r\necho \"Executing tar -xjvf $z\"\r\ntar -xjvf \"$z\"\r\n\r\necho \"Remove useless files\"\r\nrm \"$z\"\r\nrm zandronum # This is the client, we don't need that.\r\n\r\necho \"Making zandronum-server executable\"\r\nchmod +x zandronum-server\r\n\r\n# Create IWAD and PWAD folder\r\nmkdir -p IWAD\r\nmkdir -p PWAD\r\n\r\n# Download latest freedoom for the default iwad\r\nfreedoom=$(curl -s https:\/\/api.github.com\/repos\/freedoom\/freedoom\/releases\/latest | jq .assets | jq -r .[].browser_download_url | grep -m1 -i freedoom-.*.zip)\r\n\r\necho \"$freedoom\"\r\ncurl -L -o freedoom.zip $freedoom\r\n\r\nunzip -j -o freedoom.zip '*\/*' -d IWAD\/\r\n\r\n# Removing useless files\r\nrm freedoom.zip\r\nrm IWAD\/*.html\r\nrm IWAD\/*.pdf\r\n\r\n# Download the configuration file. The server fail to generate a config by itself so we have to supply one or it will crash\r\nwget https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/game_eggs\/doom\/zandronum\/zandronum.ini -O \/mnt\/server\/zandronum.ini\r\n\r\ntouch adminlist.txt\r\ntouch whitelist.txt\r\ntouch banlist.txt\r\n\r\nif [[ \"${GEOIP}\" == \"1\" ]]; then\r\n echo \"setting up GeoIP\"\r\n wget https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/game_eggs\/doom\/zandronum\/GeoIP.dat -O \/mnt\/server\/GeoIP.dat\r\nfi\r\n\r\n\r\necho \"Install finished.\"", + "container": "ghcr.io\/pterodactyl\/installers:alpine", + "entrypoint": "ash" + } + }, + "variables": [ + { + "name": "Max Players", + "description": "The maximum amount of players allowed on your game server.", + "env_variable": "MAX_PLAYERS", + "default_value": "16", + "user_viewable": true, + "user_editable": false, + "rules": "nullable|integer|max:128", + "field_type": "text" + }, + { + "name": "IWAD", + "description": "An IWAD is the main resource file for a Doom-engine game, containing all the game's original sounds, levels, and graphics.", + "env_variable": "IWAD", + "default_value": "freedoom1.wad", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|max:255", + "field_type": "text" + }, + { + "name": "PWADS", + "description": "If you wish to use multiple PWAD you can do so by separating them with spaces.\r\n\r\nA PWAD is a WAD containing lumps of data, often used as addons. They replace in-game assets.", + "env_variable": "PWADS", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string|max:255", + "field_type": "text" + }, + { + "name": "Skill", + "description": "Set the difficulty of the game.", + "env_variable": "SKILL", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string|between:0,15", + "field_type": "text" + }, + { + "name": "map", + "description": "The map the server should start with.", + "env_variable": "MAP", + "default_value": "e1m1", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string|max:255", + "field_type": "text" + }, + { + "name": "dmflags", + "description": "Gameplay flags. https:\/\/wiki.zandronum.com\/DMFlags", + "env_variable": "DMFLAGS", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string|max:255", + "field_type": "text" + }, + { + "name": "dmflags2", + "description": "Gameplay flags. https:\/\/wiki.zandronum.com\/DMFlags", + "env_variable": "DMFLAGS2", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string|max:255", + "field_type": "text" + }, + { + "name": "zadmflags", + "description": "Zandronum specific gameplay flags. https:\/\/wiki.zandronum.com\/DMFlags", + "env_variable": "ZADMFLAGS", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string|max:255", + "field_type": "text" + }, + { + "name": "compatflags", + "description": "Compatibility flags. https:\/\/wiki.zandronum.com\/DMFlags", + "env_variable": "COMPATFLAGS", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string|max:255", + "field_type": "text" + }, + { + "name": "compatflags2", + "description": "Compatibility flags. https:\/\/wiki.zandronum.com\/DMFlags", + "env_variable": "COMPATFLAGS2", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string|max:255", + "field_type": "text" + }, + { + "name": "zacompatflags", + "description": "Zandronum specific compatibility flags. https:\/\/wiki.zandronum.com\/DMFlags", + "env_variable": "ZACOMPATFLAGS", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string|max:255", + "field_type": "text" + }, + { + "name": "Enable GeoIP", + "description": "GeoIP is used to identify the country of the client's ip address", + "env_variable": "GEOIP", + "default_value": "1", + "user_viewable": true, + "user_editable": true, + "rules": "required|boolean", + "field_type": "text" + } + ] +} \ No newline at end of file diff --git a/game_eggs/doom/zandronum/readme.md b/game_eggs/doom/zandronum/readme.md new file mode 100644 index 00000000..3be6b895 --- /dev/null +++ b/game_eggs/doom/zandronum/readme.md @@ -0,0 +1,12 @@ +# Zandronum +Zandronum is a multiplayer oriented port, based off Skulltag, for Doom and Doom II by id Software. + +This egg uses the [Freedoom](https://freedoom.github.io/) WAD by default. + +### Server Ports + +Zandronum requires a single port: + +| Port | default | +|---------|----------| +| Game | 10666 | diff --git a/game_eggs/doom/zandronum/zandronum.ini b/game_eggs/doom/zandronum/zandronum.ini new file mode 100644 index 00000000..c6bd056b --- /dev/null +++ b/game_eggs/doom/zandronum/zandronum.ini @@ -0,0 +1,231 @@ +# These are the directories to automatically search for IWADs. +# Each directory should be on a separate line, preceded by Path= +[IWADSearch.Directories] +Path=. +Path=./IWAD/ + +# These are the directories to search for wads added with the -file +# command line parameter, if they cannot be found with the path +# as-is. Layout is the same as for IWADSearch.Directories +[FileSearch.Directories] +Path=. +Path=./PWAD/ + +# Files to automatically execute when running the corresponding game. +# Each file should be on its own line, preceded by Path= + +[Doom.AutoExec] +Path=/home/container/doom.cfg + +[Heretic.AutoExec] +Path=/home/container/heretic.cfg + +[Hexen.AutoExec] +Path=/home/container/hexen.cfg + +[Strife.AutoExec] +Path=/home/container/strife.cfg + +[Chex.AutoExec] +Path=/home/container/chex.cfg + +# WAD files to always load. These are loaded after the IWAD but before +# any files added with -file. Place each file on its own line, preceded +# by Path= +[Global.Autoload] + +# Wad files to automatically load depending on the game and IWAD you are +# playing. You may have have files that are loaded for all similar IWADs +# (the game) and files that are only loaded for particular IWADs. For example, +# any files listed under Doom.Autoload will be loaded for any version of Doom, +# but files listed under Doom2.Autoload will only load when you are +# playing Doom 2. + +[Doom.Autoload] + +[Doom1.Autoload] + +[Doom2.Autoload] + +[TNT.Autoload] + +[Plutonia.Autoload] + +[Freedoom.Autoload] + +[Freedoom1.Autoload] + +[FreeDM.Autoload] + +[Heretic.Autoload] + +[Hexen.Autoload] + +[HexenDK.Autoload] + +[HexenDemo.Autoload] + +[Strife.Autoload] + +[Chex.Autoload] + +[Chex3.Autoload] + +[UrbanBrawl.Autoload] + +[Harmony.Autoload] + +[LastRun] +Version=210 +Version-ZANDRONUM=181 + +[GlobalSettings] +gus_memsize=0 +midi_dmxgus=true +gus_patchdir= +midi_timiditylike=false +midi_voices=32 +midi_config=timidity.cfg +fluid_chorus_type=0 +fluid_chorus_depth=8 +fluid_chorus_speed=0.3 +fluid_chorus_level=1.2 +fluid_chorus_voices=3 +fluid_reverb_level=0.57 +fluid_reverb_width=0.76 +fluid_reverb_damping=0.23 +fluid_reverb_roomsize=0.61 +fluid_threads=1 +fluid_samplerate=0 +fluid_interp=1 +fluid_voices=128 +fluid_chorus=true +fluid_reverb=true +fluid_gain=0.5 +fluid_patchset= +opl_core=0 +opl_numchips=2 +timidity_frequency=22050 +timidity_pipe=90 +timidity_mastervolume=1 +timidity_byteswap=false +timidity_8bit=false +timidity_stereo=true +timidity_reverb=0 +timidity_chorus=0 +timidity_extargs= +timidity_exe=timidity +snd_mididevice=-1 +spc_amp=1.875 +mod_autochip_scan_threshold=12 +mod_autochip_size_scan=500 +mod_autochip_size_force=100 +mod_autochip=false +mod_interp=1 +mod_volramp=0 +mod_samplerate=0 +mod_dumb=true +snd_sfxvolume=1 +snd_output=default +snd_buffersize=0 +snd_samplerate=0 +snd_musicvolume=0.5 +snd_waterlp=250 +snd_midipatchset= +snd_output_format=PCM-16 +snd_speakermode=Auto +snd_resampler=Linear +snd_waterreverb=true +snd_hrtf=false +snd_buffercount=0 +snd_driver=0 +opl_fullpan=true +vid_contrast=1 +vid_brightness=0 +vid_tft=true +m_showinputgrid=false +m_show_backbutton=0 +m_use_mouse=1 +show_messages=true +mouse_sensitivity=1 +r_drawspectatingstring=true +map_point_coordinates=true +vid_aspect=0 +vid_nowidescreen=false +vid_refreshrate=0 +vid_vsync=false +vid_defbits=8 +vid_defheight=480 +vid_defwidth=640 +Gamma=1 +masterhostname=master.zandronum.com +sv_showwarnings=false +statfile=zdoomstat.txt +savestatistics=0 +snd_flipstereo=false +snd_channels=32 +r_columnmethod=1 +r_quakeintensity=1 +cl_oldfreelooklimit=false +cl_spectatormove=1 +cl_noprediction=false +telezoom=true +r_fakecontrast=1 +chase_dist=90 +chase_height=-8 +gl_cachetime=0.6 +gl_cachenodes=true +nomonsterinterpolation=false +authhostname=auth.zandronum.com:16666 +png_gamma=0 +png_level=5 +screenshot_dir= +screenshot_type=png +screenshot_quiet=false +use_joystick=false +autosavecount=4 +disableautosave=0 +autosavenum=0 +smooth_mouse=false +cl_telespy=false +m_side=2 +m_forward=1 +m_yaw=1 +m_pitch=1 +lookstrafe=false +freelook=true +invertmouse=false +cl_run=true +demo_compress=true +save_dir= +longsavemessages=true +storesavepic=true +nofilecompression=false +cl_capfps=false +defaultiwad= +queryiwad=true +cl_useskulltagmouse=false +demo_pure=true +con_ctrl_d= +snd_announcervolume=1 +cl_allowmultipleannouncersounds=true +cl_alwaysplayfragsleft=false +showendoom=0 +bgamma=1 +ggamma=1 +rgamma=1 +vid_asyncblit=true +vid_displaybits=8 +mouse_capturemode=1 +cl_soundwhennotactive=true +sdl_nokeyrepeat=false +m_filter=false +m_noprescale=false +use_mouse=true +vid_winscale=1 +fullscreen=false +vid_maxfps=200 +vid_renderer=1 + +[GlobalSettings.Unknown] +