This commit is contained in:
Destructor
2024-04-07 13:46:17 -05:00
committed by GitHub
Unverified
6 changed files with 418 additions and 0 deletions
+1
View File
@@ -2,4 +2,5 @@
node_modules/
.vuepress/*
.vscode
/.vs
.idea
+1
View File
@@ -253,6 +253,7 @@ If you are reading this it looks like you are looking to add an egg to your serv
* [Avorion](game_eggs/steamcmd_servers/avorion)
* [Barotrauma](game_eggs/steamcmd_servers/barotrauma)
* [BATTALION: Legacy](game_eggs/steamcmd_servers/battalion_legacy)
* [BattleBit Remastered](game_eggs/steamcmd_servers/battlebit_remastered)
* [Black Mesa](game_eggs/steamcmd_servers/black_mesa)
* [Citadel: Forged with Fire](game_eggs/steamcmd_servers/citadel)
* [Colony Survival](game_eggs/steamcmd_servers/colony_survival)
@@ -0,0 +1,22 @@
# BattleBit and BattleBitAPIRunner
## From their [Website](https://joinbattlebit.com/)
BattleBit Remastered is a low-poly, massive multiplayer FPS, supporting 254 players per server. Battle on a near-fully destructible map with various vehicles!
## Important Information
On Linux the server becomes unstable around 80-90 players !
## Server Ports
BattleBit Remastered servers require 2 ports to be open (Server and Query)
BattleBitAPIRunner require 1 port to be open
| Port | default |
|-----------|---------|
| Server | 30000 |
| Query | 30001 |
| BattleBitAPIRunner | 29294 |
## Steam Download [SteamStore](https://store.steampowered.com/app/671860/BattleBit_Remastered/)
@@ -0,0 +1,8 @@
{
"IP": "0.0.0.0",
"Port": "30000",
"ModulePath": "./modules",
"DependencyPath": "./dependencies",
"ConfigurationPath": "./configurations",
"LogLevel": "None"
}
@@ -0,0 +1,132 @@
{
"_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO",
"meta": {
"version": "PTDL_v2",
"update_url": null
},
"exported_at": "2023-09-09T15:36:23+02:00",
"name": "BattleBitAPIRunner BattleBit Remastered",
"author": "contact@clan-rmg.com",
"description": "A generic C# (dotnet6) for BattleBitAPIRunner",
"features": null,
"docker_images": {
"Dotnet_6": "ghcr.io\/parkervcp\/yolks:dotnet_6"
},
"file_denylist": [],
"startup": "if [[ -d .git ]] && [[ {{AUTO_UPDATE}} == \"1\" ]]; then git pull; fi; cd {{PROJECT_DIR}}; dotnet restore; dotnet build {{PROJECT_FILE}} -o {{APP_DIR}}; cd {{APP_DIR}}; dotnet {{PROJECT_APP}}",
"config": {
"files": "{}",
"startup": "{\r\n \"done\": [\r\n \"Listener started at\"\r\n ]\r\n}",
"logs": "{}",
"stop": "^^C"
},
"scripts": {
"installation": {
"script": "#!\/bin\/bash\r\n\r\napt update\r\napt install -y git curl jq file unzip\r\n\r\nmkdir -p \/mnt\/server\r\ncd \/mnt\/server\r\n\r\nif [ \"${USER_UPLOAD}\" == \"true\" ] || [ \"${USER_UPLOAD}\" == \"1\" ]; then\r\n echo -e \"assuming user knows what they are doing have a good day.\"\r\n exit 0\r\nfi\r\n\r\n## add git ending if it's not on the address\r\nif [[ ${GIT_ADDRESS} != *.git ]]; then\r\n GIT_ADDRESS=${GIT_ADDRESS}.git\r\nfi\r\n\r\nif [ -z \"${USERNAME}\" ] && [ -z \"${ACCESS_TOKEN}\" ]; then\r\n echo -e \"using anon api call\"\r\nelse\r\n GIT_ADDRESS=\"https:\/\/${USERNAME}:${ACCESS_TOKEN}@$(echo -e ${GIT_ADDRESS} | cut -d\/ -f3-)\"\r\nfi\r\n\r\n## pull git js bot repo\r\nif [ \"$(ls -A \/mnt\/server)\" ]; then\r\n echo -e \"\/mnt\/server directory is not empty.\"\r\n if [ -d .git ]; then\r\n echo -e \".git directory exists\"\r\n if [ -f .git\/config ]; then\r\n echo -e \"loading info from git config\"\r\n ORIGIN=$(git config --get remote.origin.url)\r\n else\r\n echo -e \"files found with no git config\"\r\n echo -e \"closing out without touching things to not break anything\"\r\n exit 10\r\n fi\r\n fi\r\n\r\n if [ \"${ORIGIN}\" == \"${GIT_ADDRESS}\" ]; then\r\n echo \"pulling latest from github\"\r\n git pull\r\n fi\r\nelse\r\n echo -e \"\/mnt\/server is empty.\\ncloning files into repo\"\r\n if [ -z ${BRANCH} ]; then\r\n echo -e \"cloning default branch\"\r\n git clone ${GIT_ADDRESS} .\r\n else\r\n echo -e \"cloning ${BRANCH}'\"\r\n git clone --single-branch --branch ${BRANCH} ${GIT_ADDRESS} .\r\n fi\r\nfi\r\n\r\n## install end\r\necho \"-----------------------------------------\"\r\necho \"Installation completed...\"\r\necho \"-----------------------------------------\"",
"container": "debian:bullseye-slim",
"entrypoint": "bash"
}
},
"variables": [
{
"name": "Git Repo Address",
"description": "GitHub Repo to clone\r\n\r\nI.E. https:\/\/github.com\/parkervcp\/repo_name",
"env_variable": "GIT_ADDRESS",
"default_value": "",
"user_viewable": true,
"user_editable": true,
"rules": "nullable|string",
"field_type": "text"
},
{
"name": "Install Branch",
"description": "The branch to install.",
"env_variable": "BRANCH",
"default_value": "",
"user_viewable": true,
"user_editable": true,
"rules": "nullable|string",
"field_type": "text"
},
{
"name": "User Uploaded Files",
"description": "Skip all the install stuff if you are letting a user upload files.\r\n\r\n0 = false (default)\r\n1 = true",
"env_variable": "USER_UPLOAD",
"default_value": "0",
"user_viewable": true,
"user_editable": true,
"rules": "required|boolean",
"field_type": "text"
},
{
"name": "Auto Update",
"description": "Pull the latest files on startup when using a GitHub repo.",
"env_variable": "AUTO_UPDATE",
"default_value": "0",
"user_viewable": true,
"user_editable": true,
"rules": "required|boolean",
"field_type": "text"
},
{
"name": "Git Username",
"description": "Username to auth with git.",
"env_variable": "USERNAME",
"default_value": "",
"user_viewable": true,
"user_editable": true,
"rules": "nullable|string",
"field_type": "text"
},
{
"name": "Git Access Token",
"description": "Password to use with git.\r\n\r\nIt's best practice to use a Personal Access Token.\r\nhttps:\/\/github.com\/settings\/tokens\r\nhttps:\/\/gitlab.com\/-\/profile\/personal_access_tokens",
"env_variable": "ACCESS_TOKEN",
"default_value": "",
"user_viewable": true,
"user_editable": true,
"rules": "nullable|string",
"field_type": "text"
},
{
"name": "project file",
"description": "The main project file if multiple are present",
"env_variable": "PROJECT_FILE",
"default_value": "BattleBitAPIRunner.sln",
"user_viewable": true,
"user_editable": false,
"rules": "nullable|string",
"field_type": "text"
},
{
"name": "Project location",
"description": "The location of where the .csproj file is located. not the .sln file!",
"env_variable": "PROJECT_DIR",
"default_value": "\/home\/container\/",
"user_viewable": true,
"user_editable": false,
"rules": "required|string|",
"field_type": "text"
},
{
"name": "App Directory",
"description": "",
"env_variable": "APP_DIR",
"default_value": "\/home\/container\/app\/",
"user_viewable": true,
"user_editable": false,
"rules": "required|string",
"field_type": "text"
},
{
"name": "Project DLL",
"description": "",
"env_variable": "PROJECT_APP",
"default_value": "BattleBitAPIRunner.dll",
"user_viewable": true,
"user_editable": false,
"rules": "required|string|",
"field_type": "text"
}
]
}
@@ -0,0 +1,254 @@
{
"_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO",
"meta": {
"version": "PTDL_v2",
"update_url": null
},
"exported_at": "2023-08-30T23:03:00+02:00",
"name": "BattleBit Remastered",
"author": "contact@clan-rmg.com",
"description": "BattleBit Remastered Dedicated Server Wine Debian",
"features": [
"steam_disk_space"
],
"docker_images": {
"ghcr.io\/parkervcp\/yolks:wine_staging": "ghcr.io\/parkervcp\/yolks:wine_staging"
},
"file_denylist": [],
"startup": "cd \/home\/container\/ ; winetricks sound=disabled; export WINEARCH=\"win64\"; export WINEDLLOVERRIDES=\"mscoree=n,b;mshtml=n,b\"; wine \/home\/container\/BattleBit.exe -batchmode -nographics \"-Name=\"{{SERVER_NAME}}\"\" \"-Port={{SERVER_PORT}}\" \"-Hz={{SERVER_RATEHZ}}\" \"-AntiCheat=EAC\" \"-MaxPing={{SERVER_MAXPING}}\" \"-VoxelMode={{SERVER_VOXELMODE}}\" \"-ApiEndPoint={{SERVER_APIENDPOINT}}\" \"-apitoken={{SERVER_APITOCKEN}}\" \"-FirstMap={{SERVER_FIRSTMAP}}\" \"-FirstGamemode={{SERVER_FIRSTGAMEMODE}}\" \"-FixedSize={{SERVER_FIXEDSIZE}}\" \"-FirstSize={{SERVER_FIRSTSIZE}}\" \"-MaxSize={{SERVER_MAXSIZE}}\" \"-Password=\"{{SERVER_PASSWORD}}\"\" \"-MaxPlayers={{SERVER_MAXPLAYERS}}\"",
"config": {
"files": "{}",
"startup": "{\r\n \"done\": \"Successfully registered to steam servers\"\r\n}",
"logs": "{}",
"stop": "^^C"
},
"scripts": {
"installation": {
"script": "#!\/bin\/bash\r\n# Installation Script\r\n#\r\n\r\n## Define variables\r\ndlurl=\"https:\/\/fastdl.clan-rmg.com\/BattleBit\/\"\r\n\r\n# Install packages. Default packages below are not required if using our existing install image thus speeding up the install process.\r\n#apt -y update\r\n#apt -y install curl lib32gcc-s1 ca-certificates unzip\r\n\r\n\r\n\r\n## just in case someone removed the defaults.\r\nif [[ \"${STEAM_USER}\" == \"\" ]] || [[ \"${STEAM_PASS}\" == \"\" ]]; 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} $( [[ -z ${SRCDS_BETAID} ]] || printf %s \"-beta ${SRCDS_BETAID}\" ) $( [[ -z ${SRCDS_BETAPASS} ]] || printf %s \"-betapassword ${SRCDS_BETAPASS}\" ) ${INSTALL_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## Admin Files\r\ntouch $HOME\/Permissions.txt\r\n\r\n## install end\r\necho \"-----------------------------------------\"\r\necho \"Installation completed...\"\r\necho \"-----------------------------------------\"",
"container": "ghcr.io\/parkervcp\/installers:debian",
"entrypoint": "bash"
}
},
"variables": [
{
"name": "APP ID",
"description": "The ID corresponding to the game to download.",
"env_variable": "SRCDS_APPID",
"default_value": "671860",
"user_viewable": false,
"user_editable": false,
"rules": "required|numeric|digits_between:1,6",
"field_type": "text"
},
{
"name": "WINDOWS_INSTALL",
"description": "",
"env_variable": "WINDOWS_INSTALL",
"default_value": "1",
"user_viewable": false,
"user_editable": false,
"rules": "required|string|max:20",
"field_type": "text"
},
{
"name": "WINETRICKS_RUN",
"description": "",
"env_variable": "WINETRICKS_RUN",
"default_value": "vcrun2013 vcrun2017 corefonts dotnet48",
"user_viewable": false,
"user_editable": false,
"rules": "required|string",
"field_type": "text"
},
{
"name": "WINEPREFIX",
"description": "WINEPREFIX",
"env_variable": "WINEPREFIX",
"default_value": "\/home\/container\/.wine",
"user_viewable": false,
"user_editable": false,
"rules": "required|string|max:64",
"field_type": "text"
},
{
"name": "WINEDEBUG",
"description": "",
"env_variable": "WINEDEBUG",
"default_value": "-all",
"user_viewable": false,
"user_editable": false,
"rules": "required|string|max:20",
"field_type": "text"
},
{
"name": "Server Name",
"description": "Name of the server, appears in Battlebit's server browser.",
"env_variable": "SERVER_NAME",
"default_value": "A Pterodactyl hosted Battlebit Server",
"user_viewable": true,
"user_editable": true,
"rules": "required|string|max:64",
"field_type": "text"
},
{
"name": "Max Players",
"description": "Maximum number of players",
"env_variable": "SERVER_MAXPLAYERS",
"default_value": "128",
"user_viewable": true,
"user_editable": true,
"rules": "required|numeric|digits_between:1,254",
"field_type": "text"
},
{
"name": "Server Password",
"description": "",
"env_variable": "SERVER_PASSWORD",
"default_value": "",
"user_viewable": true,
"user_editable": true,
"rules": "max:64",
"field_type": "text"
},
{
"name": "Steam Username",
"description": "",
"env_variable": "STEAM_USER",
"default_value": "",
"user_viewable": false,
"user_editable": false,
"rules": "required|string|max:64",
"field_type": "text"
},
{
"name": "Steam Password",
"description": "",
"env_variable": "STEAM_PASS",
"default_value": "",
"user_viewable": false,
"user_editable": false,
"rules": "nullable|string",
"field_type": "text"
},
{
"name": "Default Size Map",
"description": "TINY - 8v8\r\nSMALL - 16v16\r\nMEDIUM - 32v32\r\nBIG - 64v64\r\nULTRA - 127v127",
"env_variable": "SERVER_FIXEDSIZE",
"default_value": "tiny",
"user_viewable": true,
"user_editable": true,
"rules": "required|string|in:tiny,small,medium,big,ultra",
"field_type": "text"
},
{
"name": "First Max Size",
"description": "TINY - 8v8\r\nSMALL - 16v16\r\nMEDIUM - 32v32\r\nBIG - 64v64\r\nULTRA - 127v127",
"env_variable": "SERVER_FIRSTSIZE",
"default_value": "tiny",
"user_viewable": true,
"user_editable": true,
"rules": "required|string|in:tiny,small,medium,big,ultra",
"field_type": "text"
},
{
"name": "Max Size Map",
"description": "TINY - 8v8\r\nSMALL - 16v16\r\nMEDIUM - 32v32\r\nBIG - 64v64\r\nULTRA - 127v127",
"env_variable": "SERVER_MAXSIZE",
"default_value": "tiny",
"user_viewable": true,
"user_editable": true,
"rules": "required|string|in:tiny,small,medium,big,ultra",
"field_type": "text"
},
{
"name": "First GameMode",
"description": "CONQ : CONQUEST | INFCONQ : INFARTRY CONQUEST | DOMI : DOMINATION | RUSH : RUSH | CTF : CAPTURE THE FLAG | FRONTLINE : FRONTLINE",
"env_variable": "SERVER_FIRSTGAMEMODE",
"default_value": "CONQ",
"user_viewable": true,
"user_editable": true,
"rules": "required|string|in:CONQ,INFCONQ,DOMI,RUSH,CTF,FRONTLINE",
"field_type": "text"
},
{
"name": "First Map",
"description": "Server startup MAP",
"env_variable": "SERVER_FIRSTMAP",
"default_value": "Eduardovo",
"user_viewable": true,
"user_editable": true,
"rules": "required|string|max:64",
"field_type": "text"
},
{
"name": "SteamCMD Branch",
"description": "Community-testing branch for test server and API Test | Community-server live branch for community server (do not use currently)",
"env_variable": "SRCDS_BETAID",
"default_value": "community-testing",
"user_viewable": true,
"user_editable": true,
"rules": "required|string|in:community-testing,community-server",
"field_type": "text"
},
{
"name": "Server API Endpoint",
"description": "IP + PORT where is the api",
"env_variable": "SERVER_APIENDPOINT",
"default_value": "127.0.0.1:29294",
"user_viewable": true,
"user_editable": true,
"rules": "nullable|string",
"field_type": "text"
},
{
"name": "VoxelMode",
"description": "",
"env_variable": "SERVER_VOXELMODE",
"default_value": "false",
"user_viewable": true,
"user_editable": true,
"rules": "required|string|in:true,false",
"field_type": "text"
},
{
"name": "Max Ping",
"description": "Maximum ping allowed on the server",
"env_variable": "SERVER_MAXPING",
"default_value": "500",
"user_viewable": true,
"user_editable": true,
"rules": "required|numeric|digits_between:1,1000",
"field_type": "text"
},
{
"name": "Server Hz",
"description": "Tickrate of the server in Hz",
"env_variable": "SERVER_RATEHZ",
"default_value": "60",
"user_viewable": true,
"user_editable": true,
"rules": "required|string|in:60,120,240",
"field_type": "text"
},
{
"name": "API Token",
"description": "Token generated by API",
"env_variable": "SERVER_APITOKEN",
"default_value": "",
"user_viewable": true,
"user_editable": true,
"rules": "nullable|string|max:20",
"field_type": "text"
},
{
"name": "STEAM_AUTH_URL",
"description": "Should return the current 2FA code in plain text (Only used in installation)",
"env_variable": "STEAM_AUTH_URL",
"default_value": "",
"user_viewable": true,
"user_editable": true,
"rules": "nullable|string",
"field_type": "text"
}
]
}