{"meta":{"slug":"garry-s-mod","name":"Garry S Mod","category":"gmod","source":"pterodactyl","owner":"pterodactyl","repo":"game-eggs","branch":"main","path":"gmod/egg-garry-s-mod.json","rawUrl":"https://raw.githubusercontent.com/pterodactyl/game-eggs/main/gmod/egg-garry-s-mod.json","indexedAt":1792246788483},"egg":{"_comment":"DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO","meta":{"version":"PTDL_v2","update_url":null},"exported_at":"2025-10-20T14:48:44+02:00","name":"Garrys Mod","author":"support@pterodactyl.io","description":"Garrys Mod, is a sandbox physics game created by Garry Newman, and developed by his company, Facepunch Studios.","features":["gsl_token","steam_disk_space"],"docker_images":{"ghcr.io/ptero-eggs/games:source":"ghcr.io/ptero-eggs/games:source"},"file_denylist":[],"startup":"./srcds_run -game garrysmod -console -port {{SERVER_PORT}} +ip 0.0.0.0 +host_workshop_collection {{WORKSHOP_ID}} +map {{SRCDS_MAP}} +gamemode {{GAMEMODE}} -strictportbind -norestart +sv_setsteamaccount {{STEAM_TOKEN}} +maxplayers {{MAX_PLAYERS}}  -tickrate {{TICKRATE}}  $( [ \"$LUA_REFRESH\" == \"1\" ] || printf %s '-disableluarefresh' )","config":{"files":"{}","startup":"{\r\n    \"done\": \"gameserver Steam ID\"\r\n}","logs":"{}","stop":"quit"},"scripts":{"installation":{"script":"#!/bin/bash\r\n# steamcmd Base Installation Script\r\n#\r\n# Server Files: /mnt/server\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\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} ${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\r\n\r\n# Creating needed default files for the game\r\ncd /mnt/server/garrysmod/lua/autorun/server\r\necho '\r\n-- Docs: https://wiki.garrysmod.com/page/resource/AddWorkshop\r\n-- Place the ID of the workshop addon you want to be downloaded to people who join your server, not the collection ID\r\n-- Use https://beta.configcreator.com/create/gmod/resources.lua to easily create a list based on your collection ID\r\n\r\nresource.AddWorkshop( \"\" )\r\n' > workshop.lua\r\n\r\ncd /mnt/server/garrysmod/cfg\r\necho '\r\n// Please do not set RCon in here, use the startup parameters.\r\n\r\nhostname\t\t\"New Gmod Server\"\r\nsv_password\t\t\"\"\r\nsv_loadingurl   \"\"\r\nsv_downloadurl  \"\"\r\n\r\n// Steam Server List Settings\r\n// sv_location \"eu\"\r\nsv_region \"255\"\r\nsv_lan \"0\"\r\nsv_max_queries_sec_global \"30000\"\r\nsv_max_queries_window \"45\"\r\nsv_max_queries_sec \"5\"\r\n\r\n// Server Limits\r\nsbox_maxprops\t\t100\r\nsbox_maxragdolls\t5\r\nsbox_maxnpcs\t\t10\r\nsbox_maxballoons\t10\r\nsbox_maxeffects\t\t10\r\nsbox_maxdynamite\t10\r\nsbox_maxlamps\t\t10\r\nsbox_maxthrusters\t10\r\nsbox_maxwheels\t\t10\r\nsbox_maxhoverballs\t10\r\nsbox_maxvehicles\t20\r\nsbox_maxbuttons\t\t10\r\nsbox_maxsents\t\t20\r\nsbox_maxemitters\t5\r\nsbox_godmode\t\t0\r\nsbox_noclip\t\t    0\r\n\r\n// Network Settings - Please keep these set to default.\r\n\r\nsv_minrate\t\t75000\r\nsv_maxrate\t\t0\r\ngmod_physiterations\t2\r\nnet_splitpacket_maxrate\t45000\r\ndecalfrequency\t\t12 \r\n\r\n// Execute Ban Files - Please do not edit\r\nexec banned_ip.cfg \r\nexec banned_user.cfg \r\n\r\n// Add custom lines under here\r\n' > server.cfg","container":"ghcr.io/pterodactyl/installers:debian","entrypoint":"bash"}},"variables":[{"name":"Map","description":"The default map for the server.","env_variable":"SRCDS_MAP","default_value":"gm_flatgrass","user_viewable":true,"user_editable":true,"rules":"required|string|alpha_dash","field_type":"text"},{"name":"Steam Account Token","description":"The Steam Account Token required for the server to be displayed publicly.","env_variable":"STEAM_TOKEN","default_value":"","user_viewable":true,"user_editable":true,"rules":"nullable|string|alpha_num|size:32","field_type":"text"},{"name":"Source AppID","description":"Required for game to update on server restart. Do not modify this.","env_variable":"SRCDS_APPID","default_value":"4020","user_viewable":false,"user_editable":false,"rules":"required|integer|in:4020","field_type":"text"},{"name":"Workshop ID","description":"The ID of your workshop collection (the numbers at the end of the URL)","env_variable":"WORKSHOP_ID","default_value":"","user_viewable":true,"user_editable":true,"rules":"nullable|integer","field_type":"text"},{"name":"Gamemode","description":"The gamemode of your server.","env_variable":"GAMEMODE","default_value":"sandbox","user_viewable":true,"user_editable":true,"rules":"required|string","field_type":"text"},{"name":"Max Players","description":"The maximum amount of players allowed on your game server.","env_variable":"MAX_PLAYERS","default_value":"32","user_viewable":true,"user_editable":true,"rules":"required|integer|max:128","field_type":"text"},{"name":"Tickrate","description":"The tickrate defines how fast the server will update each entity's location.","env_variable":"TICKRATE","default_value":"22","user_viewable":true,"user_editable":true,"rules":"required|integer|max:100","field_type":"text"},{"name":"Lua Refresh","description":"0 = disable Lua refresh,\r\n1 = enable Lua refresh","env_variable":"LUA_REFRESH","default_value":"0","user_viewable":true,"user_editable":true,"rules":"required|boolean","field_type":"text"}]},"readme":"# Garry's Mod\n\nGarry's Mod is a physics sandbox. There aren't any predefined aims or goals. We give you the tools and leave you to play."}