From 074d469a283bd5865a3095eaaf2a9fc2bab27459 Mon Sep 17 00:00:00 2001 From: Michael Parker Date: Fri, 26 Jun 2020 23:43:11 -0400 Subject: [PATCH] add rust autrowipe adds a rust egg that will autowipe saves and generate a new seed. The generated seed will override the seed variable if the seed.txt file exists. --- steamcmd_servers/rust/rust_autowipe/README.md | 29 ++++ .../rust/rust_autowipe/egg-rust-autowipe.json | 162 ++++++++++++++++++ .../{ => rust}/rust_staging/README.md | 0 .../rust_staging/egg-rust-staging.json | 0 4 files changed, 191 insertions(+) create mode 100644 steamcmd_servers/rust/rust_autowipe/README.md create mode 100644 steamcmd_servers/rust/rust_autowipe/egg-rust-autowipe.json rename steamcmd_servers/{ => rust}/rust_staging/README.md (100%) rename steamcmd_servers/{ => rust}/rust_staging/egg-rust-staging.json (100%) diff --git a/steamcmd_servers/rust/rust_autowipe/README.md b/steamcmd_servers/rust/rust_autowipe/README.md new file mode 100644 index 00000000..1a913465 --- /dev/null +++ b/steamcmd_servers/rust/rust_autowipe/README.md @@ -0,0 +1,29 @@ +### Rust Autowipe +The only aim in Rust is to survive. To do this you will need to overcome struggles such as hunger, thirst and cold. Build a fire. Build a shelter. Kill animals for meat. Protect yourself from other players, and kill them for meat. Create alliances with other players and form a town. Do whatever it takes to survive. + +Adds variables to wipe files based on a list you set. + +The variable `REGEN_SERVER` was added, default 0 set to 1 to generate a random seed and remove old files + +Files listed in the `REMOVE_FILES` variabe, space separated, will be removed. + +### Minimum RAM warning +The server requires at least 4096MB to run properly. +This is mostly needed for the startup only, once it is running (depending on your world size) it should consume less. + +### Modding warning +Due to Oxide/uMod not supporting the staging branch, you will not be able to Mod this server. + +Wulf (Community Admin on Oxidemod/uMod): + +"We only release builds for the release/public branch of Rust, so if you'd like to use it on any other branch, you'd need to manually patch it yourself using our patcher tool founder under the Snapshots repo. To switch a different Rust branch, just use the -beta tag with SteamCMD and the branch name." + +### Server Ports +Ports required to run the server. + +| Port | default | +|---------|---------| +| Game and Quary | 28015 UDP | +| RCON | 28016 TCP | + +### Information about server updates can be found [here](https://steamdb.info/app/258550/depots/?branch=staging) diff --git a/steamcmd_servers/rust/rust_autowipe/egg-rust-autowipe.json b/steamcmd_servers/rust/rust_autowipe/egg-rust-autowipe.json new file mode 100644 index 00000000..5d0cec06 --- /dev/null +++ b/steamcmd_servers/rust/rust_autowipe/egg-rust-autowipe.json @@ -0,0 +1,162 @@ +{ + "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", + "meta": { + "version": "PTDL_v1" + }, + "exported_at": "2020-06-26T23:31:17-04:00", + "name": "Rust Autowipe", + "author": "support@pterodactyl.io", + "description": "The only aim in Rust is to survive. To do this you will need to overcome struggles such as hunger, thirst and cold. Build a fire. Build a shelter. Kill animals for meat. Protect yourself from other players, and kill them for meat. Create alliances with other players and form a town. Do whatever it takes to survive.", + "image": "quay.io\/pterodactyl\/core:rust", + "startup": "\".\/RustDedicated -batchmode +server.port {{SERVER_PORT}} +server.identity \"rust\" +rcon.port {{RCON_PORT}} +rcon.web true +server.hostname \\\"{{HOSTNAME}}\\\" +server.level \\\"{{LEVEL}}\\\" +server.description \\\"{{DESCRIPTION}}\\\" +server.url \\\"{{SERVER_URL}}\\\" +server.headerimage \\\"{{SERVER_IMG}}\\\" +server.worldsize \\\"{{WORLD_SIZE}}\\\" +server.seed \\\"$( [ -f seed.txt ] && printf %s $(cat seed.txt) || printf %s '${WORLD_SEED}' )\\\" +server.maxplayers {{MAX_PLAYERS}} +rcon.password \\\"{{RCON_PASS}}\\\" +server.saveinterval {{SAVEINTERVAL}} {{ADDITIONAL_ARGS}}\"", + "config": { + "files": "{}", + "startup": "{\r\n \"done\": \"Server startup complete\",\r\n \"userInteraction\": []\r\n}", + "logs": "{\r\n \"custom\": false,\r\n \"location\": \"latest.log\"\r\n}", + "stop": "quit" + }, + "scripts": { + "installation": { + "script": "#!\/bin\/bash\r\n# steamcmd Base Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\n# Image to install with is 'debian:buster-slim'\r\napt -y update\r\napt -y --no-install-recommends install curl lib32gcc1 ca-certificates\r\n\r\nSRCDS_APPID=258550\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\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 +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} +force_install_dir \/mnt\/server +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\nif [ ${REGEN_SERVER} == \"1\" ]; then\r\n cd \/mnt\/server\/\r\n rm -rf ${REMOVE_FILES}\r\n rm -sf seed.txt\r\n cat \/dev\/urandom | tr -dc '1-9' | fold -w 5 | head -n 1 > seed.txt\r\nfi", + "container": "ubuntu:18.04", + "entrypoint": "bash" + } + }, + "variables": [ + { + "name": "Server Name", + "description": "The name of your server in the public server list.", + "env_variable": "HOSTNAME", + "default_value": "A Rust Server", + "user_viewable": 1, + "user_editable": 1, + "rules": "required|string|max:40" + }, + { + "name": "OxideMod", + "description": "Set whether you want the server to use and auto update OxideMod or not. Valid options are \"1\" for true and \"0\" for false.", + "env_variable": "OXIDE", + "default_value": "0", + "user_viewable": 1, + "user_editable": 1, + "rules": "required|boolean" + }, + { + "name": "Level", + "description": "The world file for Rust to use.", + "env_variable": "LEVEL", + "default_value": "Procedural Map", + "user_viewable": 1, + "user_editable": 1, + "rules": "required|string|max:20" + }, + { + "name": "Description", + "description": "The description under your server title. Commonly used for rules & info. Use \\n for newlines.", + "env_variable": "DESCRIPTION", + "default_value": "Powered by Pterodactyl", + "user_viewable": 1, + "user_editable": 1, + "rules": "required|string" + }, + { + "name": "URL", + "description": "The URL for your server. This is what comes up when clicking the \"Visit Website\" button.", + "env_variable": "SERVER_URL", + "default_value": "http:\/\/pterodactyl.io", + "user_viewable": 1, + "user_editable": 1, + "rules": "nullable|url" + }, + { + "name": "World Size", + "description": "The world size for a procedural map.", + "env_variable": "WORLD_SIZE", + "default_value": "3000", + "user_viewable": 1, + "user_editable": 1, + "rules": "required|integer" + }, + { + "name": "World Seed", + "description": "The seed for a procedural map.", + "env_variable": "WORLD_SEED", + "default_value": "", + "user_viewable": 1, + "user_editable": 1, + "rules": "nullable|string" + }, + { + "name": "Max Players", + "description": "The maximum amount of players allowed in the server at once.", + "env_variable": "MAX_PLAYERS", + "default_value": "40", + "user_viewable": 1, + "user_editable": 1, + "rules": "required|integer" + }, + { + "name": "Server Image", + "description": "The header image for the top of your server listing.", + "env_variable": "SERVER_IMG", + "default_value": "", + "user_viewable": 1, + "user_editable": 1, + "rules": "nullable|url" + }, + { + "name": "RCON Port", + "description": "Port for RCON connections.", + "env_variable": "RCON_PORT", + "default_value": "28016", + "user_viewable": 1, + "user_editable": 0, + "rules": "required|integer" + }, + { + "name": "RCON Password", + "description": "RCON access password.", + "env_variable": "RCON_PASS", + "default_value": "CHANGEME", + "user_viewable": 1, + "user_editable": 1, + "rules": "required|string|max:64" + }, + { + "name": "Save Interval", + "description": "Sets the server\u2019s auto-save interval in seconds.", + "env_variable": "SAVEINTERVAL", + "default_value": "60", + "user_viewable": 1, + "user_editable": 1, + "rules": "required|integer" + }, + { + "name": "Additional Arguments", + "description": "Add additional startup parameters to the server.", + "env_variable": "ADDITIONAL_ARGS", + "default_value": "", + "user_viewable": 1, + "user_editable": 1, + "rules": "nullable|string" + }, + { + "name": "Regen Server", + "description": "If the server should have it's files removed and regenerate the server seed.", + "env_variable": "REGEN_SERVER", + "default_value": "0", + "user_viewable": 1, + "user_editable": 1, + "rules": "required|boolean" + }, + { + "name": "Files to remove", + "description": "A space separated list of files to remove when regenerating the server.", + "env_variable": "REMOVE_FILES", + "default_value": "server\/rust\/player.deaths.*.db server\/rust\/player.identities.*.db server\/rust\/player.states.*.db server\/rust\/player.tokens.db proceduralmap.*.*.*.map server\/rust\/proceduralmap.*.*.*.sav oxide\/data\/Kits_Data.json oxide\/data\/NTeleportationHome.json oxide\/data\/ServerRewards\/player_data.json oxide\/data\/PTTracker\/playtime_data.json", + "user_viewable": 1, + "user_editable": 1, + "rules": "required|string" + } + ] +} \ No newline at end of file diff --git a/steamcmd_servers/rust_staging/README.md b/steamcmd_servers/rust/rust_staging/README.md similarity index 100% rename from steamcmd_servers/rust_staging/README.md rename to steamcmd_servers/rust/rust_staging/README.md diff --git a/steamcmd_servers/rust_staging/egg-rust-staging.json b/steamcmd_servers/rust/rust_staging/egg-rust-staging.json similarity index 100% rename from steamcmd_servers/rust_staging/egg-rust-staging.json rename to steamcmd_servers/rust/rust_staging/egg-rust-staging.json