diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml
index 357dfdf6e..5712ac3e7 100644
--- a/.github/FUNDING.yml
+++ b/.github/FUNDING.yml
@@ -1,7 +1,7 @@
# These are supported funding model platforms
github: dgibbs64 # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2]
-patreon: dgibbs # Replace with a single Patreon username
+patreon: # Replace with a single Patreon username
open_collective: # Replace with a single Open Collective username
ko_fi: # Replace with a single Ko-fi username
tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
diff --git a/.github/no-response.yml b/.github/no-response.yml
index 34cf8d447..a883b161e 100644
--- a/.github/no-response.yml
+++ b/.github/no-response.yml
@@ -3,8 +3,8 @@
# Number of days of inactivity before an Issue is closed for lack of response
daysUntilClose: 60
# Label requiring a response
-responseRequiredLabel: "needs more info"
+responseRequiredLabel: "waiting response"
# Comment to post when closing an Issue for lack of response. Set to `false` to disable
closeComment: >
This issue has been automatically closed because there has been no response
- to this issue and is now stale.
\ No newline at end of file
+ to this issue and is now stale.
diff --git a/.github/workflows/git-sync.yml b/.github/workflows/git-sync.yml
index 9fc886b4e..c058b6d24 100644
--- a/.github/workflows/git-sync.yml
+++ b/.github/workflows/git-sync.yml
@@ -11,17 +11,16 @@ jobs:
repo-sync:
runs-on: ubuntu-latest
steps:
- - name: ssh
- uses: webfactory/ssh-agent@v0.2.0
+ - name: webfactory/ssh-agent
+ uses: webfactory/ssh-agent@v0.4.1
with:
ssh-private-key: ${{ secrets.BITBUCKET_SECRET }}
- ssh_private_key: ${{ secrets.BITBUCKET_SECRET }}
- name: repo-sync
- uses: wei/git-sync@v2
+ uses: wei/git-sync@v2.1.0
with:
+ ssh_private_key: ${{ secrets.BITBUCKET_SECRET }}
source_repo: "https://github.com/GameServerManagers/LinuxGSM"
source_branch: "refs/heads/*"
destination_repo: "git@bitbucket.org:GameServerManagers/linuxgsm.git"
destination_branch: "refs/heads/*"
- ssh_private_key: ${{ secrets.BITBUCKET_SECRET }}
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 2cadd7e54..bcb1caf7f 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -5,32 +5,34 @@
The following is a set of guidelines for contributing to LinuxGSM, which are hosted in the [GameServerManagers Organization](https://github.com/gameservermanagers) on GitHub. These are mostly guidelines, not rules. Use your best judgment, and feel free to propose changes to this document in a pull request.
## Table of Contents
-* [Contributing to LinuxGSM](#contributing-to-linuxgsm)
- * [Table of Contents](#table-of-contents)
+
+ [Contributing to LinuxGSM](#contributing-to-linuxgsm)
+ * [Table of Contents](#table-of-contents)
* [Code of Conduct](#code-of-conduct)
- * [Bug/Enhancement Contributions](#---bug-enhancement-contributions---)
- * [Reporting Bugs](#--reporting-bugs)
- * [Before Submitting A Bug Report](#before-submitting-a-bug-report)
- * [How Do I Submit A (Good) Bug Report?](#how-do-i-submit-a--good--bug-report-)
- * [Suggesting Features](#--suggesting-features)
- * [Before Submitting An Feature Suggestion](#before-submitting-an-feature-suggestion)
- * [How Do I Submit A (Good) Feature Suggestion?](#how-do-i-submit-a--good--feature-suggestion-)
- * [Game Server Requests](#---game-server-requests)
- * [Before Submitting a Game Server Request](#before-submitting-a-game-server-request)
- * [How Do I Submit A (Good) Game Server Suggestion?](#how-do-i-submit-a--good--feature-suggestion--1)
- * [Game Server Specific Issues](#---game-server-specific-issues)
- * [Code Contributions](#---code-contributions)
- * [Pull Requests](#pull-requests)
- * [Pull Request naming convention](#pull-request-naming-convention)
- * [Testing](#testing)
- * [Pull Request Status Checks](#pull-request-status-checks)
- * [Test Environment](#test-environment)
- * [Styleguides](#-wine-glass--styleguides)
- * [Git Commit Messages](#git-commit-messages)
- * [BASH Styleguide](#bash-styleguide)
- * [Document Contributions](#-blue-book--document-contributions)
- * [Documentation Styleguide](#documentation-styleguide)
+ * [🎉 Bug/Enhancement Contributions 🐛](#bug-enhancement-contributions)
+ + [🐛Reporting Bugs](#reporting-bugs)
+ - [Before Submitting A Bug Report](#before-submitting-a-bug-report)
+ - [How Do I Submit A (Good) Bug Report?](#how-do-i-submit-a--good--bug-report-)
+ + [🎉Suggesting Features](#suggesting-features)
+ - [Before Submitting An Feature Suggestion](#before-submitting-an-feature-suggestion)
+ - [How Do I Submit A (Good) Feature Suggestion?](#how-do-i-submit-a--good--feature-suggestion-)
+ + [🎮 Game Server Requests](#game-server-requests)
+ - [Before Submitting a Game Server Request](#before-submitting-a-game-server-request)
+ - [How Do I Submit A (Good) Game Server Request?](#how-do-i-submit-a--good--game-server-request-)
+ + [🎮 Game Server Specific Issues](#game-server-specific-issues)
+ * [💻 Code Contributions](#code-contributions)
+ + [Pull Requests](#pull-requests)
+ - [Pull Request naming convention](#pull-request-naming-convention)
+ + [Testing](#testing)
+ - [Pull Request Status Checks](#pull-request-status-checks)
+ - [Test Environment](#test-environment)
+ + [:wine_glass: Styleguides](#-wine-glass--styleguides)
+ - [Git Commit Messages](#git-commit-messages)
+ - [BASH Styleguide](#bash-styleguide)
+ * [:blue_book: Document Contributions](#-blue-book--document-contributions)
+ + [Documentation Styleguide](#documentation-styleguide)
* [Issue and Pull Request Labels](#issue-and-pull-request-labels)
+
## Code of Conduct
This project and everyone participating in it are governed by the [LinuxGSM Code of Conduct](https://github.com/GameServerManagers/linuxgsm/blob/master/CODE_OF_CONDUCT.md). By participating, you are expected to uphold this code. Please report unacceptable behaviour to [daniel.gibbs@linuxgsm.com](mailto:daniel.gibbs@linuxgsm.com).
@@ -41,11 +43,11 @@ This project and everyone participating in it are governed by the [LinuxGSM Code
This section guides you through submitting a bug report for LinuxGSM. Following these guidelines help maintainers and the community understand your report 📝, reproduce the behaviour💻, and find any related reports 🔎.
-Before creating bug reports, please check [this list](https://github.com/GameServerManagers/linuxgsm/blob/master/CONTRIBUTING.md#before-submitting-a-bug-report) as you might find out that you don’t need to create one. When you are creating a bug report, please [include as many details as possible](https://github.com/atom/atom/blob/master/CONTRIBUTING.md#how-do-i-submit-a-good-bug-report). Fill out [the required template](https://github.com/atom/.github/blob/master/.github/ISSUE_TEMPLATE/bug_report.md), the information it asks for helps us resolve issues faster.
+Before creating bug reports, please check [this list](https://github.com/GameServerManagers/linuxgsm/blob/master/CONTRIBUTING.md#before-submitting-a-bug-report) as you might find out that you don’t need to create one. When you are creating a bug report, please [include as many details as possible](https://github.com/GameServerManagers/linuxgsm/blob/master/CONTRIBUTING.md#how-do-i-submit-a-good-bug-report). Fill out [the required template]([https://github.com/GameServerManagers/LinuxGSM/issues/new/choose](https://github.com/GameServerManagers/LinuxGSM/issues/new/choose)), the information it asks for helps us resolve issues faster.
#### Before Submitting A Bug Report
-* **Check the** [**documentation**](https://docs.linuxgsm.com/%5D(https://docs.linuxgsm.com/))**.** You might be able to find the cause of the problem and fix things yourself.
+* **Check the [documentation](https://docs.linuxgsm.com).** You might be able to find the cause of the problem and fix things yourself.
* **Check that the problem is not related to** [**support page**](https://linuxgsm/com/support) for links to other support options.
* **Check the** [**support page**](https://linuxgsm/com/support) for links to other support options.
* **Perform a** [**cursory search**](https://github.com/search?q=org:GameServerManagers%20type:issues&type=Issues) to see if the problem has already been reported. If it has **and the issue is still open**, add a comment to the existing issue and give it a thumbs up instead of opening a new one.
@@ -83,19 +85,23 @@ Features are tracked as [GitHub issues](https://guides.github.com/features/issue
### 🎮 Game Server Requests
-This section guides you through submitting a game server request for LinuxGSM, Following these guidelines help maintainers and the community understand your game server request 📝
-
+This section guides you through submitting a game server request for LinuxGSM, Following these guidelines help maintainers and the community understand your game server request 📝.
#### Before Submitting a Game Server Request
-* **Check for existing** [**game server requests**](https://github.com/GameServerManagers/LinuxGSM/labels/type%3A%20game%20server%20request) to see if the new game server has already been suggested. If it has **and if the new game server is still open**, give it a thumbs up instead of opening a new one.
+* **Check for existing** [**game server requests**](https://github.com/GameServerManagers/LinuxGSM/labels/type%3A%20game%20server%20request) to see if the new game server has already been suggested. If it has **and if the new game server is still open**, give it a thumbs.
+* **Check the game server is supported on Linux**, this does not include Wine servers which we do not support.
+#### How Do I Submit A (Good) Game Server Request?
+* The title should be as follows: **[Server Request] Game Name**
+* **Provide Steam App ID** if applicable
+* **Supply any documentation/how-to guides** for the game server.
### 🎮 Game Server Specific Issues
LinuxGSM is a management script that acts as a wrapper around game servers. These game servers are developed by different game developers such as Valve, Epic and Facepunch to name a few.
-LinuxGSM has no control over the development and limited knowledge issues directly relating to the game servers themselves. The same also applies for any mods, add-ons, maps etc.
+LinuxGSM has no control over the development and limited knowledge of issues directly relating to the game servers themselves. The same also applies for any mods, add-ons, maps etc.
-If there is an issue with a specific game server or mod the best action may be to contact the game/mod developers on there support forums. If it is unclear some community members might be able to help.
+If there is an issue with a specific game server or mod the best action may be to contact the game/mod developers on there support forums. If it is unclear some community members should be able to help.
A [list](https://docs.linuxgsm.com/support/game-server) of known game developer forums is available on the [LinuxGSM docs](https://docs.linuxgsm.com/support/game-server).
@@ -112,7 +118,7 @@ The process described here has several goals:
Please follow these steps to have your contribution considered by the maintainers:
-1. Follow all instructions in [the template](https://github.com/GameServerManagers/LinuxGSM/blob/master/.github/pull_request_template.md)
+1. Follow all check-list in [the template](https://github.com/GameServerManagers/LinuxGSM/blob/master/.github/pull_request_template.md)
2. Follow the [style guides](#styleguides)
3. After you submit your pull request, verify that all [status checks](https://help.github.com/articles/about-status-checks/) are passing
@@ -130,24 +136,24 @@ If applied, this commit will _your subject line here_
For example:
-* If applied, this commit will _refactor subsystem X for readability_
-* If applied, this commit will _update getting started documentation_
-* If applied, this commit will _remove deprecated methods_
-* If applied, this commit will _release version 1.0.0_
-* If applied, this commit will _merge pull request #123 from user/branch_
+* If applied, this commit will **refactor subsystem X for readability**
+* If applied, this commit will **update getting started documentation**
+* If applied, this commit will **remove deprecated methods**
+* If applied, this commit will **release version 1.0.0**
+* If applied, this commit will **merge pull request #123 from user/branch**
Notice how this doesn’t work for the other non-imperative forms:
-* If applied, this commit will _fixed bug with Y_
-* If applied, this commit will _change the behaviour of X_
-* If applied, this commit will _more fixes for broken stuff_
-* If applied, this commit will _sweet new API methods_
+* If applied, this commit will **fixed bug with Y**
+* If applied, this commit will **change the behaviour of X**
+* If applied, this commit will **more fixes for broken stuff**
+* If applied, this commit will **sweet new API methods**
-Below is an example of the subject line for a pull request.
+Below is an example of the subject line for a pull request:
-feat(alerts): add slack support to alerts
+**feat(alerts): add slack support to alerts**
-fix(csgoserver): remove SteamCMD auth requirement 32-bit workaround
+**fix(csgoserver): remove SteamCMD auth requirement 32-bit workaround**
### Testing
@@ -155,7 +161,7 @@ fix(csgoserver): remove SteamCMD auth requirement 32-bit workaround
When a Pull Request is submitted, a series of status check tests are conducted. These tests will asses the code quality, complete CI tests etc. To get your PR merged these status checks must pass.
#### Test Environment
-It is recommended that you have a testing environment available to test your code during development. To test your own cod you must change some variables within the `linuxgsm.sh` file. This will force the use of your own code branch.
+It is recommended that you have a testing environment available to test your code during development. To test your own code you must change some variables within the `linuxgsm.sh` file. This will force the use of your own code branch.
```bash
## GitHub Branch Select
# Allows for the use of different function files
@@ -183,7 +189,7 @@ As well as code contributions it is possible to contribute by writing and improv
### Documentation Styleguide
-LinuxGSM has various documentation available to assist users and developers. LinuxGSM primarily uses [GitBook](http://gitbook.com/) which uses the [Markdown](https://www.markdownguide.org/) document standard. LinuxGSM uses [Codacy](https://app.codacy.com/manual/GameServerManagers/LinuxGSM/dashboard) to analyse any Pull Requests to give you feedback on markup standards.
+LinuxGSM has various documentation available to assist [users](https://docs.linuxgsm.com) and [developers](dev-docs.linuxgsm.com). LinuxGSM primarily uses [GitBook](http://gitbook.com/) which uses the [Markdown](https://www.markdownguide.org/) document standard. LinuxGSM uses [Codacy](https://app.codacy.com/manual/GameServerManagers/LinuxGSM/dashboard) to analyse any Pull Requests to give you feedback on markup standards.
## Issue and Pull Request Labels
diff --git a/README.md b/README.md
index 2b0f05ec1..6f6f41c6f 100644
--- a/README.md
+++ b/README.md
@@ -1,9 +1,9 @@
-
+
-[](https://linuxgsm.com) [](https://travis-ci.com/GameServerManagers/LinuxGSM) [](https://app.codacy.com/app/GameServerManagers/LinuxGSM?utm_source=github.com&utm_medium=referral&utm_content=GameServerManagers/LinuxGSM&utm_campaign=Badge_Grade_Dashboard) [](https://www.codacy.com/manual/GameServerManagers/LinuxGSM?utm_source=github.com&utm_medium=referral&utm_content=GameServerManagers/LinuxGSM&utm_campaign=Badge_Coverage) [](https://bitbucket.org/GameServerManagers/linuxgsm) [](https://linuxgsm.com/discord) [](https://github.com/GameServerManagers/LinuxGSM/blob/master/LICENSE) [](https://www.gnu.org/software/bash/)
+[](https://linuxgsm.com) [](https://travis-ci.com/GameServerManagers/LinuxGSM) [](https://www.codacy.com/gh/GameServerManagers/LinuxGSM/dashboard?utm_source=github.com&utm_medium=referral&utm_content=GameServerManagers/LinuxGSM&utm_campaign=Badge_Grade) [](https://bitbucket.org/GameServerManagers/linuxgsm) [](https://linuxgsm.com/discord) [](https://github.com/GameServerManagers/LinuxGSM/blob/master/LICENSE) [](https://www.gnu.org/software/bash/)
[LinuxGSM](https://linuxgsm.com) is the command-line tool for quick, simple deployment and management of Linux dedicated game servers.
@@ -47,7 +47,7 @@ There are a various ways to get support, check out the [support](https://linuxgs
## :heart: Donate
-If you would like to [donate](https://linuxgsm.com/donate) to the project there are several ways you can, via [GitHub Sponsors](https://github.com/sponsors/dgibbs64), [Patreon](https://www.patreon.com/dgibbs) and [PayPal](https://www.paypal.me/dgibbs64). I would like to thank everyone who has previously sent a donation. Since 2012 LinuxGSM has been steadily growing with new servers, features and improvements added regularly.
+If you would like to [donate](https://linuxgsm.com/donate) to the project there are several ways you can, via [GitHub Sponsors](https://github.com/sponsors/dgibbs64) and [PayPal](https://www.paypal.me/dgibbs64). I would like to thank everyone who has previously sent a donation. Since 2012 LinuxGSM has been steadily growing with new servers, features and improvements added regularly.
## Contributors
diff --git a/lgsm/config-default/config-lgsm/acserver/_default.cfg b/lgsm/config-default/config-lgsm/acserver/_default.cfg
index 7bc9de9d1..56034419a 100644
--- a/lgsm/config-default/config-lgsm/acserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/acserver/_default.cfg
@@ -12,12 +12,10 @@
steamuser="username"
steampass='password'
-## Server Start Settings | https://docs.linuxgsm.com/configuration/start-parameters
+## Predefined Parameters | https://docs.linuxgsm.com/configuration/start-parameters
-## Server Start Command | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
-fn_parms(){
-parms="-c ${servercfgfullpath}"
-}
+## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
+startparameters="-c ${servercfgfullpath}"
#### LinuxGSM Settings ####
@@ -35,8 +33,6 @@ displayip=""
# More info | https://docs.linuxgsm.com/alerts#more-info
postalert="off"
-postdays="7"
-posttarget="https://termbin.com"
# Discord Alerts | https://docs.linuxgsm.com/alerts/discord
discordalert="off"
@@ -54,6 +50,7 @@ iftttevent="linuxgsm_alert"
# Mailgun Email Alerts | https://docs.linuxgsm.com/alerts/mailgun
mailgunalert="off"
+mailgunapiregion="us"
mailguntoken="accesstoken"
mailgundomain="example.com"
mailgunemailfrom="alert@example.com"
@@ -67,15 +64,20 @@ channeltag=""
# Pushover Alerts | https://docs.linuxgsm.com/alerts/pushover
pushoveralert="off"
pushovertoken="accesstoken"
+pushoveruserkey="userkey"
+
+# Rocket.Chat Alerts | https://docs.linuxgsm.com/alerts/rocket.chat
+rocketchatalert="off"
+rocketchatwebhook="webhook"
+rocketchattoken=""
# Slack Alerts | https://docs.linuxgsm.com/alerts/slack
slackalert="off"
slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
-# You can add a custom cURL string eg proxy (useful in Russia) or else in "curlcustomstring".
-# like a "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help", if you not need
-# any custom string in curl - simple ignore this parameter.
+# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
@@ -108,8 +110,12 @@ sleeptime="0.5"
## SteamCMD Settings | https://docs.linuxgsm.com/steamcmd
# Server appid
appid="302550"
+steamcmdforcewindows="yes"
# SteamCMD Branch | https://docs.linuxgsm.com/steamcmd/branch
branch=""
+betapassword=""
+# Master Server | https://docs.linuxgsm.com/steamcmd/steam-master-server
+steammaster="false"
## Stop Mode | https://docs.linuxgsm.com/features/stop-mode
# 1: tmux kill
@@ -122,17 +128,22 @@ branch=""
# 8: 7 Days to Die
# 9: GoldSrc
# 10: Avorion
+# 11: end
stopmode="2"
## Query mode
# 1: session only
-# 2: gamedig + gsquery
+# 2: gamedig (gsquery fallback)
# 3: gamedig
# 4: gsquery
# 5: tcp
querymode="5"
querytype=""
+## Console type
+consoleverbose="yes"
+consoleinteract="no"
+
## Game Server Details
# Do not edit
gamename="Assetto Corsa"
diff --git a/lgsm/config-default/config-lgsm/ahl2server/_default.cfg b/lgsm/config-default/config-lgsm/ahl2server/_default.cfg
index c41d0c8f9..a3810daed 100644
--- a/lgsm/config-default/config-lgsm/ahl2server/_default.cfg
+++ b/lgsm/config-default/config-lgsm/ahl2server/_default.cfg
@@ -12,7 +12,7 @@
steamuser="username"
steampass='password'
-## Server Start Settings | https://docs.linuxgsm.com/configuration/start-parameters
+## Predefined Parameters | https://docs.linuxgsm.com/configuration/start-parameters
ip="0.0.0.0"
port="27015"
clientport="27005"
@@ -20,10 +20,8 @@ sourcetvport="27020"
defaultmap="act_airport"
maxplayers="20"
-## Server Start Command | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
-fn_parms(){
-parms="-game ahl2 -strictportbind -ip ${ip} -port ${port} +clientport ${clientport} +tv_port ${sourcetvport} +map ${defaultmap} +servercfgfile ${servercfg} -maxplayers ${maxplayers}"
-}
+## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
+startparameters="-game ahl2 -strictportbind -ip ${ip} -port ${port} +clientport ${clientport} +tv_port ${sourcetvport} +map ${defaultmap} +servercfgfile ${servercfg} -maxplayers ${maxplayers}"
#### LinuxGSM Settings ####
@@ -41,8 +39,6 @@ displayip=""
# More info | https://docs.linuxgsm.com/alerts#more-info
postalert="off"
-postdays="7"
-posttarget="https://termbin.com"
# Discord Alerts | https://docs.linuxgsm.com/alerts/discord
discordalert="off"
@@ -60,6 +56,7 @@ iftttevent="linuxgsm_alert"
# Mailgun Email Alerts | https://docs.linuxgsm.com/alerts/mailgun
mailgunalert="off"
+mailgunapiregion="us"
mailguntoken="accesstoken"
mailgundomain="example.com"
mailgunemailfrom="alert@example.com"
@@ -73,15 +70,20 @@ channeltag=""
# Pushover Alerts | https://docs.linuxgsm.com/alerts/pushover
pushoveralert="off"
pushovertoken="accesstoken"
+pushoveruserkey="userkey"
+
+# Rocket.Chat Alerts | https://docs.linuxgsm.com/alerts/rocket.chat
+rocketchatalert="off"
+rocketchatwebhook="webhook"
+rocketchattoken=""
# Slack Alerts | https://docs.linuxgsm.com/alerts/slack
slackalert="off"
slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
-# You can add a custom cURL string eg proxy (useful in Russia) or else in "curlcustomstring".
-# like a "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help", if you not need
-# any custom string in curl - simple ignore this parameter.
+# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
@@ -122,11 +124,12 @@ sleeptime="0.5"
# 8: 7 Days to Die
# 9: GoldSrc
# 10: Avorion
+# 11: end
stopmode="3"
## Query mode
# 1: session only
-# 2: gamedig + gsquery
+# 2: gamedig (gsquery fallback)
# 3: gamedig
# 4: gsquery
# 5: tcp
@@ -136,11 +139,17 @@ querytype="protocol-valve"
## SteamCMD Settings | https://docs.linuxgsm.com/steamcmd
# Server appid
appid="985050"
+steamcmdforcewindows="no"
# SteamCMD Branch | https://docs.linuxgsm.com/steamcmd/branch
branch=""
+betapassword=""
# Master Server | https://docs.linuxgsm.com/steamcmd/steam-master-server
steammaster="true"
+## Console type
+consoleverbose="yes"
+consoleinteract="yes"
+
## Game Server Details
# Do not edit
gamename="Action: Source"
diff --git a/lgsm/config-default/config-lgsm/ahlserver/_default.cfg b/lgsm/config-default/config-lgsm/ahlserver/_default.cfg
index 69fc33e0c..dfaea449c 100644
--- a/lgsm/config-default/config-lgsm/ahlserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/ahlserver/_default.cfg
@@ -8,17 +8,15 @@
#### Game Server Settings ####
-## Server Start Settings | https://docs.linuxgsm.com/configuration/start-parameters
+## Predefined Parameters | https://docs.linuxgsm.com/configuration/start-parameters
ip="0.0.0.0"
port="27015"
clientport="27005"
defaultmap="ahl_hydro"
maxplayers="16"
-## Server Start Command | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
-fn_parms(){
-parms="-game action -strictportbind +ip ${ip} -port ${port} +clientport ${clientport} +map ${defaultmap} +servercfgfile ${servercfg} -maxplayers ${maxplayers} "
-}
+## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
+startparameters="-game action -strictportbind +ip ${ip} -port ${port} +clientport ${clientport} +map ${defaultmap} +servercfgfile ${servercfg} -maxplayers ${maxplayers} "
#### LinuxGSM Settings ####
@@ -36,8 +34,6 @@ displayip=""
# More info | https://docs.linuxgsm.com/alerts#more-info
postalert="off"
-postdays="7"
-posttarget="https://termbin.com"
# Discord Alerts | https://docs.linuxgsm.com/alerts/discord
discordalert="off"
@@ -55,6 +51,7 @@ iftttevent="linuxgsm_alert"
# Mailgun Email Alerts | https://docs.linuxgsm.com/alerts/mailgun
mailgunalert="off"
+mailgunapiregion="us"
mailguntoken="accesstoken"
mailgundomain="example.com"
mailgunemailfrom="alert@example.com"
@@ -68,15 +65,20 @@ channeltag=""
# Pushover Alerts | https://docs.linuxgsm.com/alerts/pushover
pushoveralert="off"
pushovertoken="accesstoken"
+pushoveruserkey="userkey"
+
+# Rocket.Chat Alerts | https://docs.linuxgsm.com/alerts/rocket.chat
+rocketchatalert="off"
+rocketchatwebhook="webhook"
+rocketchattoken=""
# Slack Alerts | https://docs.linuxgsm.com/alerts/slack
slackalert="off"
slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
-# You can add a custom cURL string eg proxy (useful in Russia) or else in "curlcustomstring".
-# like a "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help", if you not need
-# any custom string in curl - simple ignore this parameter.
+# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
@@ -109,9 +111,11 @@ sleeptime="0.5"
## SteamCMD Settings | https://docs.linuxgsm.com/steamcmd
# Server appid
appid="90"
+steamcmdforcewindows="no"
appidmod="cstrike"
# SteamCMD Branch | https://docs.linuxgsm.com/steamcmd/branch
branch=""
+betapassword=""
# Master Server | https://docs.linuxgsm.com/steamcmd/steam-master-server
steammaster="true"
@@ -126,20 +130,25 @@ steammaster="true"
# 8: 7 Days to Die
# 9: GoldSrc
# 10: Avorion
+# 11: end
stopmode="9"
## Query mode
# 1: session only
-# 2: gamedig + gsquery
+# 2: gamedig (gsquery fallback)
# 3: gamedig
# 4: gsquery
# 5: tcp
querymode="2"
querytype="protocol-valve"
+## Console type
+consoleverbose="yes"
+consoleinteract="yes"
+
## Game Server Details
# Do not edit
-gamename="Action half-life"
+gamename="Action Half-Life"
engine="goldsrc"
glibc="2.3.4"
diff --git a/lgsm/config-default/config-lgsm/arkserver/_default.cfg b/lgsm/config-default/config-lgsm/arkserver/_default.cfg
index 11f29d17b..e9498565d 100644
--- a/lgsm/config-default/config-lgsm/arkserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/arkserver/_default.cfg
@@ -8,7 +8,7 @@
#### Game Server Settings ####
-## Server Start Settings | https://docs.linuxgsm.com/configuration/start-parameters
+## Predefined Parameters | https://docs.linuxgsm.com/configuration/start-parameters
ip="0.0.0.0"
port="7777"
queryport="27015"
@@ -18,10 +18,8 @@ defaultmap="TheIsland"
altsavedirectoryname="${defaultmap}"
maxplayers="70"
-## Server Start Command | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
-fn_parms(){
-parms="${defaultmap}?AltSaveDirectoryName=${altsavedirectoryname}?listen?MultiHome=${ip}?MaxPlayers=${maxplayers}?QueryPort=${queryport}?RCONPort=${rconport}?Port=${port} -automanagedmods -crossplay -PublicIPForEpic=${ip}"
-}
+## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
+startparameters="${defaultmap}?AltSaveDirectoryName=${altsavedirectoryname}?listen?MultiHome=${ip}?MaxPlayers=${maxplayers}?QueryPort=${queryport}?RCONPort=${rconport}?Port=${port} -automanagedmods -crossplay -PublicIPForEpic=${ip}"
#### LinuxGSM Settings ####
@@ -39,8 +37,6 @@ displayip=""
# More info | https://docs.linuxgsm.com/alerts#more-info
postalert="off"
-postdays="7"
-posttarget="https://termbin.com"
# Discord Alerts | https://docs.linuxgsm.com/alerts/discord
discordalert="off"
@@ -58,6 +54,7 @@ iftttevent="linuxgsm_alert"
# Mailgun Email Alerts | https://docs.linuxgsm.com/alerts/mailgun
mailgunalert="off"
+mailgunapiregion="us"
mailguntoken="accesstoken"
mailgundomain="example.com"
mailgunemailfrom="alert@example.com"
@@ -71,15 +68,20 @@ channeltag=""
# Pushover Alerts | https://docs.linuxgsm.com/alerts/pushover
pushoveralert="off"
pushovertoken="accesstoken"
+pushoveruserkey="userkey"
+
+# Rocket.Chat Alerts | https://docs.linuxgsm.com/alerts/rocket.chat
+rocketchatalert="off"
+rocketchatwebhook="webhook"
+rocketchattoken=""
# Slack Alerts | https://docs.linuxgsm.com/alerts/slack
slackalert="off"
slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
-# You can add a custom cURL string eg proxy (useful in Russia) or else in "curlcustomstring".
-# like a "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help", if you not need
-# any custom string in curl - simple ignore this parameter.
+# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
@@ -112,8 +114,10 @@ sleeptime="0.5"
## SteamCMD Settings | https://docs.linuxgsm.com/steamcmd
# Server appid
appid="376030"
+steamcmdforcewindows="no"
# SteamCMD Branch | https://docs.linuxgsm.com/steamcmd/branch
branch=""
+betapassword=""
# Master Server | https://docs.linuxgsm.com/steamcmd/steam-master-server
steammaster="true"
@@ -128,17 +132,22 @@ steammaster="true"
# 8: 7 Days to Die
# 9: GoldSrc
# 10: Avorion
+# 11: end
stopmode="2"
## Query mode
# 1: session only
-# 2: gamedig + gsquery
+# 2: gamedig (gsquery fallback)
# 3: gamedig
# 4: gsquery
# 5: tcp
querymode="2"
querytype="protocol-valve"
+## Console type
+consoleverbose="no"
+consoleinteract="no"
+
## Game Server Details
# Do not edit
gamename="ARK: Survival Evolved"
diff --git a/lgsm/config-default/config-lgsm/arma3server/_default.cfg b/lgsm/config-default/config-lgsm/arma3server/_default.cfg
index 628634140..0ed5d0c25 100644
--- a/lgsm/config-default/config-lgsm/arma3server/_default.cfg
+++ b/lgsm/config-default/config-lgsm/arma3server/_default.cfg
@@ -12,7 +12,7 @@
steamuser="username"
steampass='password'
-## Server Start Settings | https://docs.linuxgsm.com/configuration/start-parameters
+## Predefined Parameters | https://docs.linuxgsm.com/configuration/start-parameters
ip="0.0.0.0"
port="2302"
@@ -31,10 +31,8 @@ servermods=""
# Leave empty for default
bepath=""
-## Server Start Command | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
-fn_parms(){
-parms="-ip=${ip} -port=${port} -cfg=${networkcfgfullpath} -config=${servercfgfullpath} -mod=${mods} -servermod=${servermods} -bepath=${bepath} -autoinit -loadmissiontomemory"
-}
+## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
+startparameters="-ip=${ip} -port=${port} -cfg=${networkcfgfullpath} -config=${servercfgfullpath} -mod=${mods} -servermod=${servermods} -bepath=${bepath} -autoinit -loadmissiontomemory"
#### LinuxGSM Settings ####
@@ -52,8 +50,6 @@ displayip=""
# More info | https://docs.linuxgsm.com/alerts#more-info
postalert="off"
-postdays="7"
-posttarget="https://termbin.com"
# Discord Alerts | https://docs.linuxgsm.com/alerts/discord
discordalert="off"
@@ -71,6 +67,7 @@ iftttevent="linuxgsm_alert"
# Mailgun Email Alerts | https://docs.linuxgsm.com/alerts/mailgun
mailgunalert="off"
+mailgunapiregion="us"
mailguntoken="accesstoken"
mailgundomain="example.com"
mailgunemailfrom="alert@example.com"
@@ -84,15 +81,20 @@ channeltag=""
# Pushover Alerts | https://docs.linuxgsm.com/alerts/pushover
pushoveralert="off"
pushovertoken="accesstoken"
+pushoveruserkey="userkey"
+
+# Rocket.Chat Alerts | https://docs.linuxgsm.com/alerts/rocket.chat
+rocketchatalert="off"
+rocketchatwebhook="webhook"
+rocketchattoken=""
# Slack Alerts | https://docs.linuxgsm.com/alerts/slack
slackalert="off"
slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
-# You can add a custom cURL string eg proxy (useful in Russia) or else in "curlcustomstring".
-# like a "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help", if you not need
-# any custom string in curl - simple ignore this parameter.
+# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
@@ -125,8 +127,10 @@ sleeptime="0.5"
## SteamCMD Settings | https://docs.linuxgsm.com/steamcmd
# Server appid
appid="233780"
+steamcmdforcewindows="no"
# SteamCMD Branch | https://docs.linuxgsm.com/steamcmd/branch
branch=""
+betapassword=""
# Master Server | https://docs.linuxgsm.com/steamcmd/steam-master-server
steammaster="false"
@@ -141,17 +145,22 @@ steammaster="false"
# 8: 7 Days to Die
# 9: GoldSrc
# 10: Avorion
+# 11: end
stopmode="2"
## Query mode
# 1: session only
-# 2: gamedig + gsquery
+# 2: gamedig (gsquery fallback)
# 3: gamedig
# 4: gsquery
# 5: tcp
querymode="2"
querytype="protocol-valve"
+## Console type
+consoleverbose="yes"
+consoleinteract="no"
+
## Game Server Details
# Do not edit
gamename="ARMA 3"
diff --git a/lgsm/config-default/config-lgsm/avserver/_default.cfg b/lgsm/config-default/config-lgsm/avserver/_default.cfg
index f4f430e16..2cfa69d1c 100644
--- a/lgsm/config-default/config-lgsm/avserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/avserver/_default.cfg
@@ -7,18 +7,18 @@
# [instance].cfg - applies settings to a specific instance.
#### Game Server Settings ####
-## Server Start Settings | https://docs.linuxgsm.com/configuration/start-parameters
+
+## Predefined Parameters | https://docs.linuxgsm.com/configuration/start-parameters
port="27000"
# https://steamidfinder.com
adminsteamid=""
-
-## Server Start Command | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
-fn_parms(){
-if [ ! -z "${adminsteamid}" ]; then
+if [ -n "${adminsteamid}" ]; then
admincmd="--admin ${adminsteamid}"
fi
-parms="--galaxy-name ${selfname} --ip ${ip} --datapath ${avdatapath} ${admincmd}"
-}
+
+## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
+
+startparameters="--galaxy-name ${selfname} --ip ${ip} --datapath ${avdatapath} ${admincmd}"
#### LinuxGSM Settings ####
@@ -35,8 +35,6 @@ displayip=""
# More info | https://docs.linuxgsm.com/alerts#more-info
postalert="off"
-postdays="7"
-posttarget="https://termbin.com"
# Discord Alerts | https://docs.linuxgsm.com/alerts/discord
discordalert="off"
@@ -54,6 +52,7 @@ iftttevent="linuxgsm_alert"
# Mailgun Email Alerts | https://docs.linuxgsm.com/alerts/mailgun
mailgunalert="off"
+mailgunapiregion="us"
mailguntoken="accesstoken"
mailgundomain="example.com"
mailgunemailfrom="alert@example.com"
@@ -67,15 +66,20 @@ channeltag=""
# Pushover Alerts | https://docs.linuxgsm.com/alerts/pushover
pushoveralert="off"
pushovertoken="accesstoken"
+pushoveruserkey="userkey"
+
+# Rocket.Chat Alerts | https://docs.linuxgsm.com/alerts/rocket.chat
+rocketchatalert="off"
+rocketchatwebhook="webhook"
+rocketchattoken=""
# Slack Alerts | https://docs.linuxgsm.com/alerts/slack
slackalert="off"
slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
-# You can add a custom cURL string eg proxy (useful in Russia) or else in "curlcustomstring".
-# like a "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help", if you not need
-# any custom string in curl - simple ignore this parameter.
+# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
@@ -107,8 +111,10 @@ sleeptime="0.5"
## SteamCMD Settings | https://docs.linuxgsm.com/steamcmd
# Server appid
appid="565060"
+steamcmdforcewindows="no"
# SteamCMD Branch | https://docs.linuxgsm.com/steamcmd/branch
branch=""
+betapassword=""
# Master Server | https://docs.linuxgsm.com/steamcmd/steam-master-server
steammaster="false"
@@ -123,11 +129,12 @@ steammaster="false"
# 8: 7 Days to Die
# 9: GoldSrc
# 10: Avorion
+# 11: end
stopmode="10"
## Query mode
# 1: session only
-# 2: gamedig + gsquery
+# 2: gamedig (gsquery fallback)
# 3: gamedig
# 4: gsquery
# 5: tcp
diff --git a/lgsm/config-default/config-lgsm/bb2server/_default.cfg b/lgsm/config-default/config-lgsm/bb2server/_default.cfg
index e361cb9dc..fd77d0af8 100644
--- a/lgsm/config-default/config-lgsm/bb2server/_default.cfg
+++ b/lgsm/config-default/config-lgsm/bb2server/_default.cfg
@@ -8,7 +8,7 @@
#### Game Server Settings ####
-## Server Start Settings | https://docs.linuxgsm.com/configuration/start-parameters
+## Predefined Parameters | https://docs.linuxgsm.com/configuration/start-parameters
ip="0.0.0.0"
port="27015"
clientport="27005"
@@ -21,10 +21,8 @@ maxplayers="20"
# More info: https://docs.linuxgsm.com/steamcmd/gslt
gslt=""
-## Server Start Command | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
-fn_parms(){
-parms="-game brainbread2 -strictportbind -ip ${ip} -port ${port} +clientport ${clientport} +tv_port ${sourcetvport} +sv_setsteamaccount ${gslt} +map ${defaultmap} +servercfgfile ${servercfg} -maxplayers ${maxplayers}"
-}
+## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
+startparameters="-game brainbread2 -strictportbind -ip ${ip} -port ${port} +clientport ${clientport} +tv_port ${sourcetvport} +sv_setsteamaccount ${gslt} +map ${defaultmap} +servercfgfile ${servercfg} -maxplayers ${maxplayers}"
#### LinuxGSM Settings ####
@@ -42,8 +40,6 @@ displayip=""
# More info | https://docs.linuxgsm.com/alerts#more-info
postalert="off"
-postdays="7"
-posttarget="https://termbin.com"
# Discord Alerts | https://docs.linuxgsm.com/alerts/discord
discordalert="off"
@@ -61,6 +57,7 @@ iftttevent="linuxgsm_alert"
# Mailgun Email Alerts | https://docs.linuxgsm.com/alerts/mailgun
mailgunalert="off"
+mailgunapiregion="us"
mailguntoken="accesstoken"
mailgundomain="example.com"
mailgunemailfrom="alert@example.com"
@@ -74,15 +71,20 @@ channeltag=""
# Pushover Alerts | https://docs.linuxgsm.com/alerts/pushover
pushoveralert="off"
pushovertoken="accesstoken"
+pushoveruserkey="userkey"
+
+# Rocket.Chat Alerts | https://docs.linuxgsm.com/alerts/rocket.chat
+rocketchatalert="off"
+rocketchatwebhook="webhook"
+rocketchattoken=""
# Slack Alerts | https://docs.linuxgsm.com/alerts/slack
slackalert="off"
slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
-# You can add a custom cURL string eg proxy (useful in Russia) or else in "curlcustomstring".
-# like a "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help", if you not need
-# any custom string in curl - simple ignore this parameter.
+# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
@@ -115,8 +117,10 @@ sleeptime="0.5"
## SteamCMD Settings | https://docs.linuxgsm.com/steamcmd
# Server appid
appid="475370"
+steamcmdforcewindows="no"
# SteamCMD Branch | https://docs.linuxgsm.com/steamcmd/branch
branch=""
+betapassword=""
# Master Server | https://docs.linuxgsm.com/steamcmd/steam-master-server
steammaster="true"
@@ -131,17 +135,22 @@ steammaster="true"
# 8: 7 Days to Die
# 9: GoldSrc
# 10: Avorion
+# 11: end
stopmode="3"
## Query mode
# 1: session only
-# 2: gamedig + gsquery
+# 2: gamedig (gsquery fallback)
# 3: gamedig
# 4: gsquery
# 5: tcp
querymode="2"
querytype="protocol-valve"
+## Console type
+consoleverbose="yes"
+consoleinteract="yes"
+
## Game Server Details
# Do not edit
gamename="BrainBread 2"
diff --git a/lgsm/config-default/config-lgsm/bbserver/_default.cfg b/lgsm/config-default/config-lgsm/bbserver/_default.cfg
index 3fdb866c3..7179efc2e 100644
--- a/lgsm/config-default/config-lgsm/bbserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/bbserver/_default.cfg
@@ -8,17 +8,15 @@
#### Game Server Settings ####
-## Server Start Settings | https://docs.linuxgsm.com/configuration/start-parameters
+## Predefined Parameters | https://docs.linuxgsm.com/configuration/start-parameters
ip="0.0.0.0"
port="27015"
clientport="27005"
defaultmap="bb_chp4_slaywatch"
maxplayers="16"
-## Server Start Command | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
-fn_parms(){
-parms="-game brainbread -strictportbind +ip ${ip} -port ${port} +clientport ${clientport} +map ${defaultmap} +servercfgfile ${servercfg} -maxplayers ${maxplayers}"
-}
+## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
+startparameters="-game brainbread -strictportbind +ip ${ip} -port ${port} +clientport ${clientport} +map ${defaultmap} +servercfgfile ${servercfg} -maxplayers ${maxplayers}"
#### LinuxGSM Settings ####
@@ -36,8 +34,6 @@ displayip=""
# More info | https://docs.linuxgsm.com/alerts#more-info
postalert="off"
-postdays="7"
-posttarget="https://termbin.com"
# Discord Alerts | https://docs.linuxgsm.com/alerts/discord
discordalert="off"
@@ -55,6 +51,7 @@ iftttevent="linuxgsm_alert"
# Mailgun Email Alerts | https://docs.linuxgsm.com/alerts/mailgun
mailgunalert="off"
+mailgunapiregion="us"
mailguntoken="accesstoken"
mailgundomain="example.com"
mailgunemailfrom="alert@example.com"
@@ -68,15 +65,20 @@ channeltag=""
# Pushover Alerts | https://docs.linuxgsm.com/alerts/pushover
pushoveralert="off"
pushovertoken="accesstoken"
+pushoveruserkey="userkey"
+
+# Rocket.Chat Alerts | https://docs.linuxgsm.com/alerts/rocket.chat
+rocketchatalert="off"
+rocketchatwebhook="webhook"
+rocketchattoken=""
# Slack Alerts | https://docs.linuxgsm.com/alerts/slack
slackalert="off"
slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
-# You can add a custom cURL string eg proxy (useful in Russia) or else in "curlcustomstring".
-# like a "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help", if you not need
-# any custom string in curl - simple ignore this parameter.
+# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
@@ -109,9 +111,11 @@ sleeptime="0.5"
## SteamCMD Settings | https://docs.linuxgsm.com/steamcmd
# Server appid
appid="90"
+steamcmdforcewindows="no"
appidmod="cstrike"
# SteamCMD Branch | https://docs.linuxgsm.com/steamcmd/branch
branch=""
+betapassword=""
# Master Server | https://docs.linuxgsm.com/steamcmd/steam-master-server
steammaster="true"
@@ -126,17 +130,22 @@ steammaster="true"
# 8: 7 Days to Die
# 9: GoldSrc
# 10: Avorion
+# 11: end
stopmode="9"
## Query mode
# 1: session only
-# 2: gamedig + gsquery
+# 2: gamedig (gsquery fallback)
# 3: gamedig
# 4: gsquery
# 5: tcp
querymode="2"
querytype="protocol-valve"
+## Console type
+consoleverbose="yes"
+consoleinteract="yes"
+
## Game Server Details
# Do not edit
gamename="BrainBread"
diff --git a/lgsm/config-default/config-lgsm/bdserver/_default.cfg b/lgsm/config-default/config-lgsm/bdserver/_default.cfg
index ec408753e..4abccbb9e 100644
--- a/lgsm/config-default/config-lgsm/bdserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/bdserver/_default.cfg
@@ -8,17 +8,15 @@
#### Game Server Settings ####
-## Server Start Settings | https://docs.linuxgsm.com/configuration/start-parameters
+## Predefined Parameters | https://docs.linuxgsm.com/configuration/start-parameters
ip="0.0.0.0"
port="27015"
clientport="27005"
defaultmap="pve_tomb"
maxplayers="3"
-## Server Start Command | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
-fn_parms(){
-parms="-game bdef -strictportbind +ip ${ip} -port ${port} +clientport ${clientport} +map ${defaultmap} +servercfgfile ${servercfg} -maxplayers ${maxplayers}"
-}
+## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
+startparameters="-game bdef -strictportbind +ip ${ip} -port ${port} +clientport ${clientport} +map ${defaultmap} +servercfgfile ${servercfg} -maxplayers ${maxplayers}"
#### LinuxGSM Settings ####
@@ -36,8 +34,6 @@ displayip=""
# More info | https://docs.linuxgsm.com/alerts#more-info
postalert="off"
-postdays="7"
-posttarget="https://termbin.com"
# Discord Alerts | https://docs.linuxgsm.com/alerts/discord
discordalert="off"
@@ -55,6 +51,7 @@ iftttevent="linuxgsm_alert"
# Mailgun Email Alerts | https://docs.linuxgsm.com/alerts/mailgun
mailgunalert="off"
+mailgunapiregion="us"
mailguntoken="accesstoken"
mailgundomain="example.com"
mailgunemailfrom="alert@example.com"
@@ -68,15 +65,20 @@ channeltag=""
# Pushover Alerts | https://docs.linuxgsm.com/alerts/pushover
pushoveralert="off"
pushovertoken="accesstoken"
+pushoveruserkey="userkey"
+
+# Rocket.Chat Alerts | https://docs.linuxgsm.com/alerts/rocket.chat
+rocketchatalert="off"
+rocketchatwebhook="webhook"
+rocketchattoken=""
# Slack Alerts | https://docs.linuxgsm.com/alerts/slack
slackalert="off"
slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
-# You can add a custom cURL string eg proxy (useful in Russia) or else in "curlcustomstring".
-# like a "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help", if you not need
-# any custom string in curl - simple ignore this parameter.
+# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
@@ -109,8 +111,10 @@ sleeptime="0.5"
## SteamCMD Settings | https://docs.linuxgsm.com/steamcmd
# Server appid
appid="817300"
+steamcmdforcewindows="no"
# SteamCMD Branch | https://docs.linuxgsm.com/steamcmd/branch
branch=""
+betapassword=""
# Master Server | https://docs.linuxgsm.com/steamcmd/steam-master-server
steammaster="true"
@@ -125,17 +129,22 @@ steammaster="true"
# 8: 7 Days to Die
# 9: GoldSrc
# 10: Avorion
+# 11: end
stopmode="9"
## Query mode
# 1: session only
-# 2: gamedig + gsquery
+# 2: gamedig (gsquery fallback)
# 3: gamedig
# 4: gsquery
# 5: tcp
querymode="2"
querytype="protocol-valve"
+## Console type
+consoleverbose="yes"
+consoleinteract="yes"
+
## Game Server Details
# Do not edit
gamename="Base Defense"
diff --git a/lgsm/config-default/config-lgsm/bf1942server/_default.cfg b/lgsm/config-default/config-lgsm/bf1942server/_default.cfg
index 04bcef9b3..841fd6ff8 100644
--- a/lgsm/config-default/config-lgsm/bf1942server/_default.cfg
+++ b/lgsm/config-default/config-lgsm/bf1942server/_default.cfg
@@ -8,10 +8,8 @@
#### Game Server Settings ####
-## Server Start Command | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
-fn_parms(){
-parms="+hostServer 1 +dedicated 1"
-}
+## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
+startparameters="+hostServer 1 +dedicated 1"
#### LinuxGSM Settings ####
@@ -29,8 +27,6 @@ displayip=""
# More info | https://docs.linuxgsm.com/alerts#more-info
postalert="off"
-postdays="7"
-posttarget="https://termbin.com"
# Discord Alerts | https://docs.linuxgsm.com/alerts/discord
discordalert="off"
@@ -48,6 +44,7 @@ iftttevent="linuxgsm_alert"
# Mailgun Email Alerts | https://docs.linuxgsm.com/alerts/mailgun
mailgunalert="off"
+mailgunapiregion="us"
mailguntoken="accesstoken"
mailgundomain="example.com"
mailgunemailfrom="alert@example.com"
@@ -61,15 +58,20 @@ channeltag=""
# Pushover Alerts | https://docs.linuxgsm.com/alerts/pushover
pushoveralert="off"
pushovertoken="accesstoken"
+pushoveruserkey="userkey"
+
+# Rocket.Chat Alerts | https://docs.linuxgsm.com/alerts/rocket.chat
+rocketchatalert="off"
+rocketchatwebhook="webhook"
+rocketchattoken=""
# Slack Alerts | https://docs.linuxgsm.com/alerts/slack
slackalert="off"
slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
-# You can add a custom cURL string eg proxy (useful in Russia) or else in "curlcustomstring".
-# like a "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help", if you not need
-# any custom string in curl - simple ignore this parameter.
+# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
@@ -110,17 +112,22 @@ sleeptime="0.5"
# 8: 7 Days to Die
# 9: GoldSrc
# 10: Avorion
+# 11: end
stopmode="2"
## Query mode
# 1: session only
-# 2: gamedig + gsquery
+# 2: gamedig (gsquery fallback)
# 3: gamedig
# 4: gsquery
# 5: tcp
querymode="2"
querytype="protocol-gamespy1"
+## Console type
+consoleverbose="no"
+consoleinteract="no"
+
## Game Server Details
# Do not edit
gamename="Battlefield: 1942"
diff --git a/lgsm/config-default/config-lgsm/bfvserver/_default.cfg b/lgsm/config-default/config-lgsm/bfvserver/_default.cfg
index d0b7215c5..b900bc4f8 100644
--- a/lgsm/config-default/config-lgsm/bfvserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/bfvserver/_default.cfg
@@ -8,10 +8,8 @@
#### Game Server Settings ####
-## Server Start Command | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
-fn_parms(){
-parms="+statusMonitor 1"
-}
+## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
+startparameters="+statusMonitor 1"
#### LinuxGSM Settings ####
@@ -29,8 +27,6 @@ displayip=""
# More info | https://docs.linuxgsm.com/alerts#more-info
postalert="off"
-postdays="7"
-posttarget="https://termbin.com"
# Discord Alerts | https://docs.linuxgsm.com/alerts/discord
discordalert="off"
@@ -48,6 +44,7 @@ iftttevent="linuxgsm_alert"
# Mailgun Email Alerts | https://docs.linuxgsm.com/alerts/mailgun
mailgunalert="off"
+mailgunapiregion="us"
mailguntoken="accesstoken"
mailgundomain="example.com"
mailgunemailfrom="alert@example.com"
@@ -61,15 +58,20 @@ channeltag=""
# Pushover Alerts | https://docs.linuxgsm.com/alerts/pushover
pushoveralert="off"
pushovertoken="accesstoken"
+pushoveruserkey="userkey"
+
+# Rocket.Chat Alerts | https://docs.linuxgsm.com/alerts/rocket.chat
+rocketchatalert="off"
+rocketchatwebhook="webhook"
+rocketchattoken=""
# Slack Alerts | https://docs.linuxgsm.com/alerts/slack
slackalert="off"
slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
-# You can add a custom cURL string eg proxy (useful in Russia) or else in "curlcustomstring".
-# like a "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help", if you not need
-# any custom string in curl - simple ignore this parameter.
+# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
@@ -110,17 +112,22 @@ sleeptime="0.5"
# 8: 7 Days to Die
# 9: GoldSrc
# 10: Avorion
+# 11: end
stopmode="3"
## Query mode
# 1: session only
-# 2: gamedig + gsquery
+# 2: gamedig (gsquery fallback)
# 3: gamedig
# 4: gsquery
# 5: tcp
querymode="1"
querytype=""
+## Console type
+consoleverbose="yes"
+consoleinteract="no"
+
## Game Server Details
# Do not edit
gamename="Battlefield: Vietnam"
diff --git a/lgsm/config-default/config-lgsm/bmdmserver/_default.cfg b/lgsm/config-default/config-lgsm/bmdmserver/_default.cfg
index 61d4c3e4c..0530b3377 100644
--- a/lgsm/config-default/config-lgsm/bmdmserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/bmdmserver/_default.cfg
@@ -8,7 +8,7 @@
#### Game Server Settings ####
-## Server Start Settings | https://docs.linuxgsm.com/configuration/start-parameters
+## Predefined Parameters | https://docs.linuxgsm.com/configuration/start-parameters
ip="0.0.0.0"
port="27015"
clientport="27005"
@@ -21,10 +21,8 @@ maxplayers="16"
# More info: https://docs.linuxgsm.com/steamcmd/gslt
gslt=""
-## Server Start Command | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
-fn_parms(){
-parms="-game bms -strictportbind -ip ${ip} -port ${port} +clientport ${clientport} +tv_port ${sourcetvport} +sv_setsteamaccount ${gslt} +map ${defaultmap} +servercfgfile ${servercfg} -maxplayers ${maxplayers}"
-}
+## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
+startparameters="-game bms -strictportbind -ip ${ip} -port ${port} +clientport ${clientport} +tv_port ${sourcetvport} +sv_setsteamaccount ${gslt} +map ${defaultmap} +servercfgfile ${servercfg} -maxplayers ${maxplayers}"
#### LinuxGSM Settings ####
@@ -42,8 +40,6 @@ displayip=""
# More info | https://docs.linuxgsm.com/alerts#more-info
postalert="off"
-postdays="7"
-posttarget="https://termbin.com"
# Discord Alerts | https://docs.linuxgsm.com/alerts/discord
discordalert="off"
@@ -61,6 +57,7 @@ iftttevent="linuxgsm_alert"
# Mailgun Email Alerts | https://docs.linuxgsm.com/alerts/mailgun
mailgunalert="off"
+mailgunapiregion="us"
mailguntoken="accesstoken"
mailgundomain="example.com"
mailgunemailfrom="alert@example.com"
@@ -74,15 +71,20 @@ channeltag=""
# Pushover Alerts | https://docs.linuxgsm.com/alerts/pushover
pushoveralert="off"
pushovertoken="accesstoken"
+pushoveruserkey="userkey"
+
+# Rocket.Chat Alerts | https://docs.linuxgsm.com/alerts/rocket.chat
+rocketchatalert="off"
+rocketchatwebhook="webhook"
+rocketchattoken=""
# Slack Alerts | https://docs.linuxgsm.com/alerts/slack
slackalert="off"
slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
-# You can add a custom cURL string eg proxy (useful in Russia) or else in "curlcustomstring".
-# like a "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help", if you not need
-# any custom string in curl - simple ignore this parameter.
+# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
@@ -115,8 +117,10 @@ sleeptime="0.5"
## SteamCMD Settings | https://docs.linuxgsm.com/steamcmd
# Server appid
appid="346680"
+steamcmdforcewindows="no"
# SteamCMD Branch | https://docs.linuxgsm.com/steamcmd/branch
branch=""
+betapassword=""
# Master Server | https://docs.linuxgsm.com/steamcmd/steam-master-server
steammaster="true"
@@ -131,17 +135,22 @@ steammaster="true"
# 8: 7 Days to Die
# 9: GoldSrc
# 10: Avorion
+# 11: end
stopmode="3"
## Query mode
# 1: session only
-# 2: gamedig + gsquery
+# 2: gamedig (gsquery fallback)
# 3: gamedig
# 4: gsquery
# 5: tcp
querymode="2"
querytype="protocol-valve"
+## Console type
+consoleverbose="yes"
+consoleinteract="yes"
+
## Game Server Details
# Do not edit
gamename="Black Mesa: Deathmatch"
diff --git a/lgsm/config-default/config-lgsm/boserver/_default.cfg b/lgsm/config-default/config-lgsm/boserver/_default.cfg
index 698667c10..d37d3894e 100644
--- a/lgsm/config-default/config-lgsm/boserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/boserver/_default.cfg
@@ -14,10 +14,8 @@
gslt=""
ip=""
-## Server Start Command | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
-fn_parms(){
-parms="-batchmode -nographics -dedicated -configfile=${servercfgfullpath}"
-}
+## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
+startparameters="-batchmode -nographics -dedicated -configfile=${servercfgfullpath}"
#### LinuxGSM Settings ####
@@ -35,8 +33,6 @@ displayip=""
# More info | https://docs.linuxgsm.com/alerts#more-info
postalert="off"
-postdays="7"
-posttarget="https://termbin.com"
# Discord Alerts | https://docs.linuxgsm.com/alerts/discord
discordalert="off"
@@ -54,6 +50,7 @@ iftttevent="linuxgsm_alert"
# Mailgun Email Alerts | https://docs.linuxgsm.com/alerts/mailgun
mailgunalert="off"
+mailgunapiregion="us"
mailguntoken="accesstoken"
mailgundomain="example.com"
mailgunemailfrom="alert@example.com"
@@ -67,15 +64,20 @@ channeltag=""
# Pushover Alerts | https://docs.linuxgsm.com/alerts/pushover
pushoveralert="off"
pushovertoken="accesstoken"
+pushoveruserkey="userkey"
+
+# Rocket.Chat Alerts | https://docs.linuxgsm.com/alerts/rocket.chat
+rocketchatalert="off"
+rocketchatwebhook="webhook"
+rocketchattoken=""
# Slack Alerts | https://docs.linuxgsm.com/alerts/slack
slackalert="off"
slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
-# You can add a custom cURL string eg proxy (useful in Russia) or else in "curlcustomstring".
-# like a "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help", if you not need
-# any custom string in curl - simple ignore this parameter.
+# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
@@ -108,8 +110,10 @@ sleeptime="0.5"
## SteamCMD Settings | https://docs.linuxgsm.com/steamcmd
# Server appid
appid="416880"
+steamcmdforcewindows="no"
# SteamCMD Branch | https://docs.linuxgsm.com/steamcmd/branch
branch=""
+betapassword=""
# Master Server | https://docs.linuxgsm.com/steamcmd/steam-master-server
steammaster="false"
@@ -124,17 +128,22 @@ steammaster="false"
# 8: 7 Days to Die
# 9: GoldSrc
# 10: Avorion
+# 11: end
stopmode="2"
## Query mode
# 1: session only
-# 2: gamedig + gsquery
+# 2: gamedig (gsquery fallback)
# 3: gamedig
# 4: gsquery
# 5: tcp
querymode="2"
querytype="protocol-valve"
+## Console type
+consoleverbose="yes"
+consoleinteract="no"
+
## Game Server Details
# Do not edit
gamename="Ballistic Overkill"
@@ -147,7 +156,7 @@ glibc="2.15"
## Game Server Directories
systemdir="${serverfiles}"
executabledir="${serverfiles}"
-executable="./BODS.x86"
+executable="./BODS.x86_64"
servercfgdir="${systemdir}"
servercfg="${selfname}.txt"
servercfgdefault="config.txt"
diff --git a/lgsm/config-default/config-lgsm/bsserver/_default.cfg b/lgsm/config-default/config-lgsm/bsserver/_default.cfg
index 69094f8ef..00a0b2e18 100644
--- a/lgsm/config-default/config-lgsm/bsserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/bsserver/_default.cfg
@@ -12,7 +12,7 @@
steamuser="username"
steampass='password'
-## Server Start Settings | https://docs.linuxgsm.com/configuration/start-parameters
+## Predefined Parameters | https://docs.linuxgsm.com/configuration/start-parameters
ip="0.0.0.0"
port="27015"
clientport="27005"
@@ -25,10 +25,8 @@ maxplayers="16"
# More info: https://docs.linuxgsm.com/steamcmd/gslt
gslt=""
-## Server Start Command | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
-fn_parms(){
-parms="-game "${serverfiles}/berimbau" -autoupdate -strictportbind -ip ${ip} -port ${port} +clientport ${clientport} +tv_port ${sourcetvport} +sv_setsteamaccount ${gslt} +map ${defaultmap} +servercfgfile ${servercfg} -maxplayers ${maxplayers}"
-}
+## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
+startparameters="-game "${serverfiles}/berimbau" -autoupdate -strictportbind -ip ${ip} -port ${port} +clientport ${clientport} +tv_port ${sourcetvport} +sv_setsteamaccount ${gslt} +map ${defaultmap} +servercfgfile ${servercfg} -maxplayers ${maxplayers}"
#### LinuxGSM Settings ####
@@ -46,8 +44,6 @@ displayip=""
# More info | https://docs.linuxgsm.com/alerts#more-info
postalert="off"
-postdays="7"
-posttarget="https://termbin.com"
# Discord Alerts | https://docs.linuxgsm.com/alerts/discord
discordalert="off"
@@ -65,6 +61,7 @@ iftttevent="linuxgsm_alert"
# Mailgun Email Alerts | https://docs.linuxgsm.com/alerts/mailgun
mailgunalert="off"
+mailgunapiregion="us"
mailguntoken="accesstoken"
mailgundomain="example.com"
mailgunemailfrom="alert@example.com"
@@ -78,15 +75,20 @@ channeltag=""
# Pushover Alerts | https://docs.linuxgsm.com/alerts/pushover
pushoveralert="off"
pushovertoken="accesstoken"
+pushoveruserkey="userkey"
+
+# Rocket.Chat Alerts | https://docs.linuxgsm.com/alerts/rocket.chat
+rocketchatalert="off"
+rocketchatwebhook="webhook"
+rocketchattoken=""
# Slack Alerts | https://docs.linuxgsm.com/alerts/slack
slackalert="off"
slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
-# You can add a custom cURL string eg proxy (useful in Russia) or else in "curlcustomstring".
-# like a "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help", if you not need
-# any custom string in curl - simple ignore this parameter.
+# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
@@ -119,8 +121,10 @@ sleeptime="0.5"
## SteamCMD Settings | https://docs.linuxgsm.com/steamcmd
# Server appid
appid="228780"
+steamcmdforcewindows="no"
# SteamCMD Branch | https://docs.linuxgsm.com/steamcmd/branch
branch=""
+betapassword=""
# Master Server | https://docs.linuxgsm.com/steamcmd/steam-master-server
steammaster="true"
@@ -135,17 +139,22 @@ steammaster="true"
# 8: 7 Days to Die
# 9: GoldSrc
# 10: Avorion
+# 11: end
stopmode="3"
## Query mode
# 1: session only
-# 2: gamedig + gsquery
+# 2: gamedig (gsquery fallback)
# 3: gamedig
# 4: gsquery
# 5: tcp
querymode="2"
querytype="protocol-valve"
+## Console type
+consoleverbose="yes"
+consoleinteract="yes"
+
## Game Server Details
# Do not edit
gamename="Blade Symphony"
diff --git a/lgsm/config-default/config-lgsm/bt1944server/_default.cfg b/lgsm/config-default/config-lgsm/bt1944server/_default.cfg
index d90b94523..7f066accf 100644
--- a/lgsm/config-default/config-lgsm/bt1944server/_default.cfg
+++ b/lgsm/config-default/config-lgsm/bt1944server/_default.cfg
@@ -8,15 +8,13 @@
#### Game Server Settings ####
-## Server Start Settings | https://docs.linuxgsm.com/configuration/start-parameters
+## Predefined Parameters | https://docs.linuxgsm.com/configuration/start-parameters
ip="0.0.0.0"
port="7777"
queryport="7780"
-## Server Start Command | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
-fn_parms(){
-parms="/Game/Maps/Final_Maps/Derailed?Game=/Script/ShooterGame.WartideGameMode?listen -log -broadcastip=\"${extip}\" -PORT=${port} -QueryPort=${queryport} -defgameini=\"${servercfgfullpath}\""
-}
+## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
+startparameters="/Game/Maps/Final_Maps/Derailed?Game=/Script/ShooterGame.WartideGameMode?listen -log -broadcastip=\"${extip}\" -PORT=${port} -QueryPort=${queryport} -defgameini=\"${servercfgfullpath}\""
#### LinuxGSM Settings ####
@@ -34,8 +32,6 @@ displayip=""
# More info | https://docs.linuxgsm.com/alerts#more-info
postalert="off"
-postdays="7"
-posttarget="https://termbin.com"
# Discord Alerts | https://docs.linuxgsm.com/alerts/discord
discordalert="off"
@@ -53,6 +49,7 @@ iftttevent="linuxgsm_alert"
# Mailgun Email Alerts | https://docs.linuxgsm.com/alerts/mailgun
mailgunalert="off"
+mailgunapiregion="us"
mailguntoken="accesstoken"
mailgundomain="example.com"
mailgunemailfrom="alert@example.com"
@@ -66,15 +63,20 @@ channeltag=""
# Pushover Alerts | https://docs.linuxgsm.com/alerts/pushover
pushoveralert="off"
pushovertoken="accesstoken"
+pushoveruserkey="userkey"
+
+# Rocket.Chat Alerts | https://docs.linuxgsm.com/alerts/rocket.chat
+rocketchatalert="off"
+rocketchatwebhook="webhook"
+rocketchattoken=""
# Slack Alerts | https://docs.linuxgsm.com/alerts/slack
slackalert="off"
slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
-# You can add a custom cURL string eg proxy (useful in Russia) or else in "curlcustomstring".
-# like a "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help", if you not need
-# any custom string in curl - simple ignore this parameter.
+# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
@@ -107,8 +109,10 @@ sleeptime="0.5"
## SteamCMD Settings | https://docs.linuxgsm.com/steamcmd
# Server appid
appid="805140"
+steamcmdforcewindows="no"
# SteamCMD Branch | https://docs.linuxgsm.com/steamcmd/branch
branch=""
+betapassword=""
# Master Server | https://docs.linuxgsm.com/steamcmd/steam-master-server
steammaster="false"
@@ -123,17 +127,22 @@ steammaster="false"
# 8: 7 Days to Die
# 9: GoldSrc
# 10: Avorion
+# 11: end
stopmode="2"
## Query mode
# 1: session only
-# 2: gamedig + gsquery
+# 2: gamedig (gsquery fallback)
# 3: gamedig
# 4: gsquery
# 5: tcp
querymode="2"
querytype="protocol-valve"
+## Console type
+consoleverbose="no"
+consoleinteract="no"
+
## Game Server Details
# Do not edit
gamename="Battalion 1944"
diff --git a/lgsm/config-default/config-lgsm/btserver/_default.cfg b/lgsm/config-default/config-lgsm/btserver/_default.cfg
index 416e77c09..92c65e1ce 100644
--- a/lgsm/config-default/config-lgsm/btserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/btserver/_default.cfg
@@ -8,10 +8,8 @@
#### Game Server Settings ####
-## Server Start Command | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
-fn_parms(){
-parms=""
-}
+## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
+startparameters=""
#### LinuxGSM Settings ####
@@ -29,8 +27,6 @@ displayip=""
# More info | https://docs.linuxgsm.com/alerts#more-info
postalert="off"
-postdays="7"
-posttarget="https://termbin.com"
# Discord Alerts | https://docs.linuxgsm.com/alerts/discord
discordalert="off"
@@ -48,6 +44,7 @@ iftttevent="linuxgsm_alert"
# Mailgun Email Alerts | https://docs.linuxgsm.com/alerts/mailgun
mailgunalert="off"
+mailgunapiregion="us"
mailguntoken="accesstoken"
mailgundomain="example.com"
mailgunemailfrom="alert@example.com"
@@ -61,15 +58,20 @@ channeltag=""
# Pushover Alerts | https://docs.linuxgsm.com/alerts/pushover
pushoveralert="off"
pushovertoken="accesstoken"
+pushoveruserkey="userkey"
+
+# Rocket.Chat Alerts | https://docs.linuxgsm.com/alerts/rocket.chat
+rocketchatalert="off"
+rocketchatwebhook="webhook"
+rocketchattoken=""
# Slack Alerts | https://docs.linuxgsm.com/alerts/slack
slackalert="off"
slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
-# You can add a custom cURL string eg proxy (useful in Russia) or else in "curlcustomstring".
-# like a "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help", if you not need
-# any custom string in curl - simple ignore this parameter.
+# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
@@ -102,8 +104,10 @@ sleeptime="0.5"
## SteamCMD Settings | https://docs.linuxgsm.com/steamcmd
# Server appid
appid="1026340"
+steamcmdforcewindows="no"
# SteamCMD Branch | https://docs.linuxgsm.com/steamcmd/branch
branch=""
+betapassword=""
# Master Server | https://docs.linuxgsm.com/steamcmd/steam-master-server
steammaster="true"
@@ -118,17 +122,22 @@ steammaster="true"
# 8: 7 Days to Die
# 9: GoldSrc
# 10: Avorion
+# 11: end
stopmode="7"
## Query mode
# 1: session only
-# 2: gamedig + gsquery
+# 2: gamedig (gsquery fallback)
# 3: gamedig
# 4: gsquery
# 5: tcp
querymode="2"
querytype="protocol-valve"
+## Console type
+consoleverbose="yes"
+consoleinteract="yes"
+
## Game Server Details
# Do not edit
gamename="Barotrauma"
diff --git a/lgsm/config-default/config-lgsm/ccserver/_default.cfg b/lgsm/config-default/config-lgsm/ccserver/_default.cfg
index e9f0a70dd..ef9433aff 100644
--- a/lgsm/config-default/config-lgsm/ccserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/ccserver/_default.cfg
@@ -8,7 +8,7 @@
#### Game Server Settings ####
-## Server Start Settings | https://docs.linuxgsm.com/configuration/start-parameters
+## Predefined Parameters | https://docs.linuxgsm.com/configuration/start-parameters
ip="0.0.0.0"
port="27015"
clientport="27005"
@@ -16,10 +16,8 @@ sourcetvport="27020"
defaultmap="cbe_bunker"
maxplayers="6"
-## Server Start Command | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
-fn_parms(){
-parms="-game cure -strictportbind -ip ${ip} -port ${port} +clientport ${clientport} +tv_port ${sourcetvport} +map ${defaultmap} +servercfgfile ${servercfg} -maxplayers ${maxplayers}"
-}
+## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
+startparameters="-game cure -strictportbind -ip ${ip} -port ${port} +clientport ${clientport} +tv_port ${sourcetvport} +map ${defaultmap} +servercfgfile ${servercfg} -maxplayers ${maxplayers}"
#### LinuxGSM Settings ####
@@ -37,8 +35,6 @@ displayip=""
# More info | https://docs.linuxgsm.com/alerts#more-info
postalert="off"
-postdays="7"
-posttarget="https://termbin.com"
# Discord Alerts | https://docs.linuxgsm.com/alerts/discord
discordalert="off"
@@ -56,6 +52,7 @@ iftttevent="linuxgsm_alert"
# Mailgun Email Alerts | https://docs.linuxgsm.com/alerts/mailgun
mailgunalert="off"
+mailgunapiregion="us"
mailguntoken="accesstoken"
mailgundomain="example.com"
mailgunemailfrom="alert@example.com"
@@ -69,15 +66,20 @@ channeltag=""
# Pushover Alerts | https://docs.linuxgsm.com/alerts/pushover
pushoveralert="off"
pushovertoken="accesstoken"
+pushoveruserkey="userkey"
+
+# Rocket.Chat Alerts | https://docs.linuxgsm.com/alerts/rocket.chat
+rocketchatalert="off"
+rocketchatwebhook="webhook"
+rocketchattoken=""
# Slack Alerts | https://docs.linuxgsm.com/alerts/slack
slackalert="off"
slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
-# You can add a custom cURL string eg proxy (useful in Russia) or else in "curlcustomstring".
-# like a "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help", if you not need
-# any custom string in curl - simple ignore this parameter.
+# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
@@ -110,8 +112,10 @@ sleeptime="0.5"
## SteamCMD Settings | https://docs.linuxgsm.com/steamcmd
# Server appid
appid="383410"
+steamcmdforcewindows="no"
# SteamCMD Branch | https://docs.linuxgsm.com/steamcmd/branch
branch=""
+betapassword=""
# Master Server | https://docs.linuxgsm.com/steamcmd/steam-master-server
steammaster="false"
@@ -126,17 +130,22 @@ steammaster="false"
# 8: 7 Days to Die
# 9: GoldSrc
# 10: Avorion
+# 11: end
stopmode="3"
## Query mode
# 1: session only
-# 2: gamedig + gsquery
+# 2: gamedig (gsquery fallback)
# 3: gamedig
# 4: gsquery
# 5: tcp
querymode="2"
querytype="protocol-valve"
+## Console type
+consoleverbose="yes"
+consoleinteract="yes"
+
## Game Server Details
# Do not edit
gamename="Codename CURE"
diff --git a/lgsm/config-default/config-lgsm/cmwserver/_default.cfg b/lgsm/config-default/config-lgsm/cmwserver/_default.cfg
index 155ef0c17..cb259c2a9 100644
--- a/lgsm/config-default/config-lgsm/cmwserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/cmwserver/_default.cfg
@@ -8,19 +8,15 @@
#### Game Server Settings ####
-## Server Start Settings | https://docs.linuxgsm.com/configuration/start-parameters
+## Predefined Parameters | https://docs.linuxgsm.com/configuration/start-parameters
ip="0.0.0.0"
port="7777"
queryport="7779"
defaultmap="AOCTD-Frigid_p"
-## Server Start Command | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
-fn_parms(){
-
-parms="${defaultmap}?steamsockets -multihome=${ip} -Port=${port} -QueryPort=${queryport} -seekfreeloadingserver -configsubdir=${gamelogdir} -log=${gamelog}"
-
-}
+## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
+startparameters="${defaultmap}?steamsockets -multihome=${ip} -Port=${port} -QueryPort=${queryport} -seekfreeloadingserver -configsubdir=${gamelogdir} -log=${gamelog}"
#### LinuxGSM Settings ####
@@ -38,8 +34,6 @@ displayip=""
# More info | https://docs.linuxgsm.com/alerts#more-info
postalert="off"
-postdays="7"
-posttarget="https://termbin.com"
# Discord Alerts | https://docs.linuxgsm.com/alerts/discord
discordalert="off"
@@ -57,6 +51,7 @@ iftttevent="linuxgsm_alert"
# Mailgun Email Alerts | https://docs.linuxgsm.com/alerts/mailgun
mailgunalert="off"
+mailgunapiregion="us"
mailguntoken="accesstoken"
mailgundomain="example.com"
mailgunemailfrom="alert@example.com"
@@ -70,15 +65,20 @@ channeltag=""
# Pushover Alerts | https://docs.linuxgsm.com/alerts/pushover
pushoveralert="off"
pushovertoken="accesstoken"
+pushoveruserkey="userkey"
+
+# Rocket.Chat Alerts | https://docs.linuxgsm.com/alerts/rocket.chat
+rocketchatalert="off"
+rocketchatwebhook="webhook"
+rocketchattoken=""
# Slack Alerts | https://docs.linuxgsm.com/alerts/slack
slackalert="off"
slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
-# You can add a custom cURL string eg proxy (useful in Russia) or else in "curlcustomstring".
-# like a "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help", if you not need
-# any custom string in curl - simple ignore this parameter.
+# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
@@ -111,8 +111,10 @@ sleeptime="0.5"
## SteamCMD Settings | https://docs.linuxgsm.com/steamcmd
# Server appid
appid="220070"
+steamcmdforcewindows="no"
# SteamCMD Branch | https://docs.linuxgsm.com/steamcmd/branch
branch=""
+betapassword=""
# Master Server | https://docs.linuxgsm.com/steamcmd/steam-master-server
steammaster="false"
@@ -127,17 +129,22 @@ steammaster="false"
# 8: 7 Days to Die
# 9: GoldSrc
# 10: Avorion
+# 11: end
stopmode="2"
## Query mode
# 1: session only
-# 2: gamedig + gsquery
+# 2: gamedig (gsquery fallback)
# 3: gamedig
# 4: gsquery
# 5: tcp
querymode="2"
querytype="protocol-valve"
+## Console type
+consoleverbose="yes"
+consoleinteract="no"
+
## Game Server Details
# Do not edit
gamename="Chivalry: Medieval Warfare"
diff --git a/lgsm/config-default/config-lgsm/cod2server/_default.cfg b/lgsm/config-default/config-lgsm/cod2server/_default.cfg
index a686ea45f..53a4521dc 100644
--- a/lgsm/config-default/config-lgsm/cod2server/_default.cfg
+++ b/lgsm/config-default/config-lgsm/cod2server/_default.cfg
@@ -8,16 +8,14 @@
#### Game Server Settings ####
-## Server Start Settings | https://docs.linuxgsm.com/configuration/start-parameters
+## Predefined Parameters | https://docs.linuxgsm.com/configuration/start-parameters
ip="0.0.0.0"
port="28960"
defaultmap="mp_leningrad"
maxplayers="20"
-## Server Start Command | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
-fn_parms(){
-parms="+set sv_punkbuster 0 +set fs_basepath ${serverfiles} +set dedicated 2 +set net_ip ${ip} +set net_port ${port} +set sv_maxclients ${maxplayers} +exec ${servercfg} +map ${defaultmap}"
-}
+## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
+startparameters="+set sv_punkbuster 0 +set fs_basepath ${serverfiles} +set dedicated 2 +set net_ip ${ip} +set net_port ${port} +set sv_maxclients ${maxplayers} +exec ${servercfg} +map ${defaultmap}"
#### LinuxGSM Settings ####
@@ -35,8 +33,6 @@ displayip=""
# More info | https://docs.linuxgsm.com/alerts#more-info
postalert="off"
-postdays="7"
-posttarget="https://termbin.com"
# Discord Alerts | https://docs.linuxgsm.com/alerts/discord
discordalert="off"
@@ -54,6 +50,7 @@ iftttevent="linuxgsm_alert"
# Mailgun Email Alerts | https://docs.linuxgsm.com/alerts/mailgun
mailgunalert="off"
+mailgunapiregion="us"
mailguntoken="accesstoken"
mailgundomain="example.com"
mailgunemailfrom="alert@example.com"
@@ -67,15 +64,20 @@ channeltag=""
# Pushover Alerts | https://docs.linuxgsm.com/alerts/pushover
pushoveralert="off"
pushovertoken="accesstoken"
+pushoveruserkey="userkey"
+
+# Rocket.Chat Alerts | https://docs.linuxgsm.com/alerts/rocket.chat
+rocketchatalert="off"
+rocketchatwebhook="webhook"
+rocketchattoken=""
# Slack Alerts | https://docs.linuxgsm.com/alerts/slack
slackalert="off"
slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
-# You can add a custom cURL string eg proxy (useful in Russia) or else in "curlcustomstring".
-# like a "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help", if you not need
-# any custom string in curl - simple ignore this parameter.
+# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
@@ -113,17 +115,22 @@ sleeptime="0.5"
# 8: 7 Days to Die
# 9: GoldSrc
# 10: Avorion
+# 11: end
stopmode="3"
## Query mode
# 1: session only
-# 2: gamedig + gsquery
+# 2: gamedig (gsquery fallback)
# 3: gamedig
# 4: gsquery
# 5: tcp
querymode="2"
querytype="protocol-quake3"
+## Console type
+consoleverbose="yes"
+consoleinteract="no"
+
## Game Server Details
# Do not edit
gamename="Call of Duty 2"
diff --git a/lgsm/config-default/config-lgsm/cod4server/_default.cfg b/lgsm/config-default/config-lgsm/cod4server/_default.cfg
index 027c52509..8cde67086 100644
--- a/lgsm/config-default/config-lgsm/cod4server/_default.cfg
+++ b/lgsm/config-default/config-lgsm/cod4server/_default.cfg
@@ -8,16 +8,14 @@
#### Game Server Settings ####
-## Server Start Settings | https://docs.linuxgsm.com/configuration/start-parameters
+## Predefined Parameters | https://docs.linuxgsm.com/configuration/start-parameters
ip="0.0.0.0"
port="28960"
defaultmap="mp_crossfire"
maxplayers="32"
-## Server Start Command | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
-fn_parms(){
-parms="+set sv_punkbuster 0 +set fs_basepath ${serverfiles} +set fs_homepath ${serverfiles} +set sv_authorizemode "-1" +set dedicated 2 +set net_ip ${ip} +set net_port ${port} +set sv_maxclients ${maxplayers} +exec ${servercfg} +map ${defaultmap}"
-}
+## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
+startparameters="+set sv_punkbuster 0 +set fs_basepath ${serverfiles} +set fs_homepath ${serverfiles} +set sv_authorizemode "-1" +set dedicated 2 +set net_ip ${ip} +set net_port ${port} +set sv_maxclients ${maxplayers} +exec ${servercfg} +map ${defaultmap}"
#### LinuxGSM Settings ####
@@ -35,8 +33,6 @@ displayip=""
# More info | https://docs.linuxgsm.com/alerts#more-info
postalert="off"
-postdays="7"
-posttarget="https://termbin.com"
# Discord Alerts | https://docs.linuxgsm.com/alerts/discord
discordalert="off"
@@ -54,6 +50,7 @@ iftttevent="linuxgsm_alert"
# Mailgun Email Alerts | https://docs.linuxgsm.com/alerts/mailgun
mailgunalert="off"
+mailgunapiregion="us"
mailguntoken="accesstoken"
mailgundomain="example.com"
mailgunemailfrom="alert@example.com"
@@ -67,15 +64,20 @@ channeltag=""
# Pushover Alerts | https://docs.linuxgsm.com/alerts/pushover
pushoveralert="off"
pushovertoken="accesstoken"
+pushoveruserkey="userkey"
+
+# Rocket.Chat Alerts | https://docs.linuxgsm.com/alerts/rocket.chat
+rocketchatalert="off"
+rocketchatwebhook="webhook"
+rocketchattoken=""
# Slack Alerts | https://docs.linuxgsm.com/alerts/slack
slackalert="off"
slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
-# You can add a custom cURL string eg proxy (useful in Russia) or else in "curlcustomstring".
-# like a "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help", if you not need
-# any custom string in curl - simple ignore this parameter.
+# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
@@ -113,17 +115,22 @@ sleeptime="0.5"
# 8: 7 Days to Die
# 9: GoldSrc
# 10: Avorion
+# 11: end
stopmode="3"
## Query mode
# 1: session only
-# 2: gamedig + gsquery
+# 2: gamedig (gsquery fallback)
# 3: gamedig
# 4: gsquery
# 5: tcp
querymode="2"
querytype="protocol-quake3"
+## Console type
+consoleverbose="yes"
+consoleinteract="no"
+
## Game Server Details
# Do not edit
gamename="Call of Duty 4"
diff --git a/lgsm/config-default/config-lgsm/codserver/_default.cfg b/lgsm/config-default/config-lgsm/codserver/_default.cfg
index 74e186466..487edbeaf 100644
--- a/lgsm/config-default/config-lgsm/codserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/codserver/_default.cfg
@@ -8,16 +8,14 @@
#### Game Server Settings ####
-## Server Start Settings | https://docs.linuxgsm.com/configuration/start-parameters
+## Predefined Parameters | https://docs.linuxgsm.com/configuration/start-parameters
ip="0.0.0.0"
port="28960"
defaultmap="mp_neuville"
maxplayers="20"
-## Server Start Command | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
-fn_parms(){
-parms="+set sv_punkbuster 0 +set fs_basepath ${serverfiles} +set dedicated 2 +set net_ip ${ip} +set net_port ${port} +set sv_maxclients ${maxplayers} +exec ${servercfg} +map ${defaultmap}"
-}
+## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
+startparameters="+set sv_punkbuster 0 +set fs_basepath ${serverfiles} +set dedicated 2 +set net_ip ${ip} +set net_port ${port} +set sv_maxclients ${maxplayers} +exec ${servercfg} +map ${defaultmap}"
#### LinuxGSM Settings ####
@@ -35,8 +33,6 @@ displayip=""
# More info | https://docs.linuxgsm.com/alerts#more-info
postalert="off"
-postdays="7"
-posttarget="https://termbin.com"
# Discord Alerts | https://docs.linuxgsm.com/alerts/discord
discordalert="off"
@@ -54,6 +50,7 @@ iftttevent="linuxgsm_alert"
# Mailgun Email Alerts | https://docs.linuxgsm.com/alerts/mailgun
mailgunalert="off"
+mailgunapiregion="us"
mailguntoken="accesstoken"
mailgundomain="example.com"
mailgunemailfrom="alert@example.com"
@@ -67,15 +64,20 @@ channeltag=""
# Pushover Alerts | https://docs.linuxgsm.com/alerts/pushover
pushoveralert="off"
pushovertoken="accesstoken"
+pushoveruserkey="userkey"
+
+# Rocket.Chat Alerts | https://docs.linuxgsm.com/alerts/rocket.chat
+rocketchatalert="off"
+rocketchatwebhook="webhook"
+rocketchattoken=""
# Slack Alerts | https://docs.linuxgsm.com/alerts/slack
slackalert="off"
slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
-# You can add a custom cURL string eg proxy (useful in Russia) or else in "curlcustomstring".
-# like a "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help", if you not need
-# any custom string in curl - simple ignore this parameter.
+# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
@@ -113,17 +115,22 @@ sleeptime="0.5"
# 8: 7 Days to Die
# 9: GoldSrc
# 10: Avorion
+# 11: end
stopmode="3"
## Query mode
# 1: session only
-# 2: gamedig + gsquery
+# 2: gamedig (gsquery fallback)
# 3: gamedig
# 4: gsquery
# 5: tcp
querymode="2"
querytype="protocol-quake3"
+## Console type
+consoleverbose="yes"
+consoleinteract="no"
+
## Game Server Details
# Do not edit
gamename="Call of Duty"
diff --git a/lgsm/config-default/config-lgsm/coduoserver/_default.cfg b/lgsm/config-default/config-lgsm/coduoserver/_default.cfg
index b4e16cfff..d6a9d2a5d 100644
--- a/lgsm/config-default/config-lgsm/coduoserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/coduoserver/_default.cfg
@@ -8,16 +8,14 @@
#### Game Server Settings ####
-## Server Start Settings | https://docs.linuxgsm.com/configuration/start-parameters
+## Predefined Parameters | https://docs.linuxgsm.com/configuration/start-parameters
ip="0.0.0.0"
port="28960"
defaultmap="mp_cassino"
maxplayers="20"
-## Server Start Command | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
-fn_parms(){
-parms="+set sv_punkbuster 0 +set fs_basepath ${serverfiles} +set dedicated 2 +set net_ip ${ip} +set net_port ${port} +set sv_maxclients ${maxplayers} +exec ${servercfg} +map ${defaultmap}"
-}
+## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
+startparameters="+set sv_punkbuster 0 +set fs_basepath ${serverfiles} +set dedicated 2 +set net_ip ${ip} +set net_port ${port} +set sv_maxclients ${maxplayers} +exec ${servercfg} +map ${defaultmap}"
#### LinuxGSM Settings ####
@@ -35,8 +33,6 @@ displayip=""
# More info | https://docs.linuxgsm.com/alerts#more-info
postalert="off"
-postdays="7"
-posttarget="https://termbin.com"
# Discord Alerts | https://docs.linuxgsm.com/alerts/discord
discordalert="off"
@@ -54,6 +50,7 @@ iftttevent="linuxgsm_alert"
# Mailgun Email Alerts | https://docs.linuxgsm.com/alerts/mailgun
mailgunalert="off"
+mailgunapiregion="us"
mailguntoken="accesstoken"
mailgundomain="example.com"
mailgunemailfrom="alert@example.com"
@@ -67,15 +64,20 @@ channeltag=""
# Pushover Alerts | https://docs.linuxgsm.com/alerts/pushover
pushoveralert="off"
pushovertoken="accesstoken"
+pushoveruserkey="userkey"
+
+# Rocket.Chat Alerts | https://docs.linuxgsm.com/alerts/rocket.chat
+rocketchatalert="off"
+rocketchatwebhook="webhook"
+rocketchattoken=""
# Slack Alerts | https://docs.linuxgsm.com/alerts/slack
slackalert="off"
slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
-# You can add a custom cURL string eg proxy (useful in Russia) or else in "curlcustomstring".
-# like a "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help", if you not need
-# any custom string in curl - simple ignore this parameter.
+# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
@@ -113,17 +115,22 @@ sleeptime="0.5"
# 8: 7 Days to Die
# 9: GoldSrc
# 10: Avorion
+# 11: end
stopmode="3"
## Query mode
# 1: session only
-# 2: gamedig + gsquery
+# 2: gamedig (gsquery fallback)
# 3: gamedig
# 4: gsquery
# 5: tcp
querymode="2"
querytype="protocol-quake3"
+## Console type
+consoleverbose="yes"
+consoleinteract="no"
+
## Game Server Details
# Do not edit
gamename="Call of Duty: United Offensive"
diff --git a/lgsm/config-default/config-lgsm/codwawserver/_default.cfg b/lgsm/config-default/config-lgsm/codwawserver/_default.cfg
index aeecf8f7b..2efd85826 100644
--- a/lgsm/config-default/config-lgsm/codwawserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/codwawserver/_default.cfg
@@ -8,16 +8,14 @@
#### Game Server Settings ####
-## Server Start Settings | https://docs.linuxgsm.com/configuration/start-parameters
+## Predefined Parameters | https://docs.linuxgsm.com/configuration/start-parameters
ip="0.0.0.0"
port="28960"
defaultmap="mp_castle"
maxplayers="20"
-## Server Start Command | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
-fn_parms(){
-parms="+set sv_punkbuster 0 +set fs_basepath ${serverfiles} +set dedicated 2 +set net_ip ${ip} +set net_port ${port} +set sv_maxclients ${maxplayers} +exec ${servercfg} +map ${defaultmap}"
-}
+## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
+startparameters="+set sv_punkbuster 0 +set fs_basepath ${serverfiles} +set dedicated 2 +set net_ip ${ip} +set net_port ${port} +set sv_maxclients ${maxplayers} +exec ${servercfg} +map ${defaultmap}"
#### LinuxGSM Settings ####
@@ -35,8 +33,6 @@ displayip=""
# More info | https://docs.linuxgsm.com/alerts#more-info
postalert="off"
-postdays="7"
-posttarget="https://termbin.com"
# Discord Alerts | https://docs.linuxgsm.com/alerts/discord
discordalert="off"
@@ -54,6 +50,7 @@ iftttevent="linuxgsm_alert"
# Mailgun Email Alerts | https://docs.linuxgsm.com/alerts/mailgun
mailgunalert="off"
+mailgunapiregion="us"
mailguntoken="accesstoken"
mailgundomain="example.com"
mailgunemailfrom="alert@example.com"
@@ -67,15 +64,20 @@ channeltag=""
# Pushover Alerts | https://docs.linuxgsm.com/alerts/pushover
pushoveralert="off"
pushovertoken="accesstoken"
+pushoveruserkey="userkey"
+
+# Rocket.Chat Alerts | https://docs.linuxgsm.com/alerts/rocket.chat
+rocketchatalert="off"
+rocketchatwebhook="webhook"
+rocketchattoken=""
# Slack Alerts | https://docs.linuxgsm.com/alerts/slack
slackalert="off"
slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
-# You can add a custom cURL string eg proxy (useful in Russia) or else in "curlcustomstring".
-# like a "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help", if you not need
-# any custom string in curl - simple ignore this parameter.
+# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
@@ -113,17 +115,22 @@ sleeptime="0.5"
# 8: 7 Days to Die
# 9: GoldSrc
# 10: Avorion
+# 11: end
stopmode="3"
## Query mode
# 1: session only
-# 2: gamedig + gsquery
+# 2: gamedig (gsquery fallback)
# 3: gamedig
# 4: gsquery
# 5: tcp
querymode="2"
querytype="protocol-quake3"
+## Console type
+consoleverbose="yes"
+consoleinteract="no"
+
## Game Server Details
# Do not edit
gamename="Call of Duty: World at War"
diff --git a/lgsm/config-default/config-lgsm/ss3server/_default.cfg b/lgsm/config-default/config-lgsm/colserver/_default.cfg
similarity index 77%
rename from lgsm/config-default/config-lgsm/ss3server/_default.cfg
rename to lgsm/config-default/config-lgsm/colserver/_default.cfg
index 9032678a4..c0cdf7892 100644
--- a/lgsm/config-default/config-lgsm/ss3server/_default.cfg
+++ b/lgsm/config-default/config-lgsm/colserver/_default.cfg
@@ -8,14 +8,9 @@
#### Game Server Settings ####
-## Server Start Settings | https://docs.linuxgsm.com/configuration/start-parameters
-ip="0.0.0.0"
-
-## Server Start Command | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
-# Edit with care | https://raw.githubusercontent.com/GameServerManagers/Game-Server-Configs/master/SeriousSam3BFE/help/DedicatedServer_Readme.txt
-fn_parms(){
-parms="+ip ${ip} +logfile ${gamelog} +exec ${servercfgfullpath}"
-}
+## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
+# Edit with care | https://colonysurvival.gamepedia.com/Dedicated_Server#Installation_.28Linux.29
+startparameters="-batchmode -nographics +server.config ${servercfgfullpath}"
#### LinuxGSM Settings ####
@@ -33,8 +28,6 @@ displayip=""
# More info | https://docs.linuxgsm.com/alerts#more-info
postalert="off"
-postdays="7"
-posttarget="https://termbin.com"
# Discord Alerts | https://docs.linuxgsm.com/alerts/discord
discordalert="off"
@@ -52,6 +45,7 @@ iftttevent="linuxgsm_alert"
# Mailgun Email Alerts | https://docs.linuxgsm.com/alerts/mailgun
mailgunalert="off"
+mailgunapiregion="us"
mailguntoken="accesstoken"
mailgundomain="example.com"
mailgunemailfrom="alert@example.com"
@@ -65,15 +59,20 @@ channeltag=""
# Pushover Alerts | https://docs.linuxgsm.com/alerts/pushover
pushoveralert="off"
pushovertoken="accesstoken"
+pushoveruserkey="userkey"
+
+# Rocket.Chat Alerts | https://docs.linuxgsm.com/alerts/rocket.chat
+rocketchatalert="off"
+rocketchatwebhook="webhook"
+rocketchattoken=""
# Slack Alerts | https://docs.linuxgsm.com/alerts/slack
slackalert="off"
slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
-# You can add a custom cURL string eg proxy (useful in Russia) or else in "curlcustomstring".
-# like a "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help", if you not need
-# any custom string in curl - simple ignore this parameter.
+# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
@@ -105,9 +104,11 @@ sleeptime="0.5"
## SteamCMD Settings | https://docs.linuxgsm.com/steamcmd
# Server appid
-appid="41080"
+appid="748090"
+steamcmdforcewindows="no"
# SteamCMD Branch | https://docs.linuxgsm.com/steamcmd/branch
branch=""
+betapassword=""
# Master Server | https://docs.linuxgsm.com/steamcmd/steam-master-server
steammaster="false"
@@ -122,33 +123,38 @@ steammaster="false"
# 8: 7 Days to Die
# 9: GoldSrc
# 10: Avorion
+# 11: end
stopmode="2"
## Query mode
# 1: session only
-# 2: gamedig + gsquery
+# 2: gamedig (gsquery fallback)
# 3: gamedig
# 4: gsquery
# 5: tcp
querymode="2"
querytype="protocol-valve"
+## Console type
+consoleverbose="no"
+consoleinteract="no"
+
## Game Server Details
# Do not edit
-gamename="Serious Sam 3: BFE"
-engine="seriousengine35"
-glibc="2.13"
+gamename="Colony Survival"
+engine="unity3d"
+glibc="2.15"
#### Directories ####
# Edit with care
## Game Server Directories
-systemdir="${serverfiles}/Bin"
-executabledir="${systemdir}"
-executable="./runSam3_DedicatedServer.sh"
-servercfgdir="${serverfiles}/Content/SeriousSam3/Config"
-servercfg="${selfname}.ini"
-servercfgdefault="server.ini"
+systemdir="${serverfiles}"
+executabledir="${serverfiles}"
+executable="./colonyserver.x86_64"
+servercfgdir="${systemdir}/gamedata/settings"
+servercfg="${selfname}.json"
+servercfgdefault="colserver.json"
servercfgfullpath="${servercfgdir}/${servercfg}"
## Backup Directory
@@ -156,7 +162,7 @@ backupdir="${lgsmdir}/backup"
## Logging Directories
logdir="${rootdir}/log"
-gamelogdir="${logdir}/server"
+gamelogdir="${serverfiles}/gamedata/logs/server/"
lgsmlogdir="${logdir}/script"
consolelogdir="${logdir}/console"
gamelog="${gamelogdir}/${selfname}-game.log"
@@ -166,6 +172,6 @@ alertlog="${lgsmlogdir}/${selfname}-alert.log"
postdetailslog="${lgsmlogdir}/${selfname}-postdetails.log"
## Logs Naming
+gamelogdate="${gamelogdir}/${selfname}-game-$(date '+%Y-%m-%d-%H:%M:%S').log"
lgsmlogdate="${lgsmlogdir}/${selfname}-script-$(date '+%Y-%m-%d-%H:%M:%S').log"
consolelogdate="${consolelogdir}/${selfname}-console-$(date '+%Y-%m-%d-%H:%M:%S').log"
-gamelogdate="${gamelogdir}/${selfname}-game-$(date '+%Y-%m-%d-%H:%M:%S').log"
diff --git a/lgsm/config-default/config-lgsm/csczserver/_default.cfg b/lgsm/config-default/config-lgsm/csczserver/_default.cfg
index 8065dbba2..559fc1fb5 100644
--- a/lgsm/config-default/config-lgsm/csczserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/csczserver/_default.cfg
@@ -8,17 +8,15 @@
#### Game Server Settings ####
-## Server Start Settings | https://docs.linuxgsm.com/configuration/start-parameters
+## Predefined Parameters | https://docs.linuxgsm.com/configuration/start-parameters
ip="0.0.0.0"
port="27015"
clientport="27005"
defaultmap="de_dust2"
maxplayers="16"
-## Server Start Command | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
-fn_parms(){
-parms="-game czero -strictportbind +ip ${ip} -port ${port} +clientport ${clientport} +map ${defaultmap} +servercfgfile ${servercfg} -maxplayers ${maxplayers}"
-}
+## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
+startparameters="-game czero -strictportbind +ip ${ip} -port ${port} +clientport ${clientport} +map ${defaultmap} +servercfgfile ${servercfg} -maxplayers ${maxplayers}"
#### LinuxGSM Settings ####
@@ -36,8 +34,6 @@ displayip=""
# More info | https://docs.linuxgsm.com/alerts#more-info
postalert="off"
-postdays="7"
-posttarget="https://termbin.com"
# Discord Alerts | https://docs.linuxgsm.com/alerts/discord
discordalert="off"
@@ -55,6 +51,7 @@ iftttevent="linuxgsm_alert"
# Mailgun Email Alerts | https://docs.linuxgsm.com/alerts/mailgun
mailgunalert="off"
+mailgunapiregion="us"
mailguntoken="accesstoken"
mailgundomain="example.com"
mailgunemailfrom="alert@example.com"
@@ -68,15 +65,20 @@ channeltag=""
# Pushover Alerts | https://docs.linuxgsm.com/alerts/pushover
pushoveralert="off"
pushovertoken="accesstoken"
+pushoveruserkey="userkey"
+
+# Rocket.Chat Alerts | https://docs.linuxgsm.com/alerts/rocket.chat
+rocketchatalert="off"
+rocketchatwebhook="webhook"
+rocketchattoken=""
# Slack Alerts | https://docs.linuxgsm.com/alerts/slack
slackalert="off"
slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
-# You can add a custom cURL string eg proxy (useful in Russia) or else in "curlcustomstring".
-# like a "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help", if you not need
-# any custom string in curl - simple ignore this parameter.
+# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
@@ -109,9 +111,11 @@ sleeptime="0.5"
## SteamCMD Settings | https://docs.linuxgsm.com/steamcmd
# Server appid
appid="90"
+steamcmdforcewindows="no"
appidmod="czero"
# SteamCMD Branch | https://docs.linuxgsm.com/steamcmd/branch
branch=""
+betapassword=""
# Master Server | https://docs.linuxgsm.com/steamcmd/steam-master-server
steammaster="true"
@@ -126,17 +130,22 @@ steammaster="true"
# 8: 7 Days to Die
# 9: GoldSrc
# 10: Avorion
+# 11: end
stopmode="9"
## Query mode
# 1: session only
-# 2: gamedig + gsquery
+# 2: gamedig (gsquery fallback)
# 3: gamedig
# 4: gsquery
# 5: tcp
querymode="2"
querytype="protocol-valve"
+## Console type
+consoleverbose="yes"
+consoleinteract="yes"
+
## Game Server Details
# Do not edit
gamename="Counter-Strike: Condition Zero"
diff --git a/lgsm/config-default/config-lgsm/csgoserver/_default.cfg b/lgsm/config-default/config-lgsm/csgoserver/_default.cfg
index 963f873c5..41eb3e251 100644
--- a/lgsm/config-default/config-lgsm/csgoserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/csgoserver/_default.cfg
@@ -8,7 +8,7 @@
#### Game Server Settings ####
-## Server Start Settings | https://docs.linuxgsm.com/configuration/start-parameters
+## Predefined Parameters | https://docs.linuxgsm.com/configuration/start-parameters
# https://docs.linuxgsm.com/game-servers/counter-strike-global-offensive
# [Game Modes] gametype gamemode mapgroup (you can mix these across all Game Modes except Danger Zone, but use only one)
# Arms Race 1 0 mg_armsrace
@@ -41,10 +41,8 @@ wsapikey=""
wscollectionid=""
wsstartmap=""
-## Server Start Command | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
-fn_parms(){
-parms="-game csgo -usercon -strictportbind -ip ${ip} -port ${port} +clientport ${clientport} +tv_port ${sourcetvport} +sv_setsteamaccount ${gslt} -tickrate ${tickrate} +map ${defaultmap} +servercfgfile ${servercfg} -maxplayers_override ${maxplayers} +mapgroup ${mapgroup} +game_type ${gametype} +game_mode ${gamemode} +host_workshop_collection ${wscollectionid} +workshop_start_map ${wsstartmap} -authkey ${wsapikey} -nobreakpad"
-}
+## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
+startparameters="-game csgo -usercon -strictportbind -ip ${ip} -port ${port} +clientport ${clientport} +tv_port ${sourcetvport} +sv_setsteamaccount ${gslt} -tickrate ${tickrate} +map ${defaultmap} +servercfgfile ${servercfg} -maxplayers_override ${maxplayers} +mapgroup ${mapgroup} +game_type ${gametype} +game_mode ${gamemode} +host_workshop_collection ${wscollectionid} +workshop_start_map ${wsstartmap} -authkey ${wsapikey} -nobreakpad"
#### LinuxGSM Settings ####
@@ -62,8 +60,6 @@ displayip=""
# More info | https://docs.linuxgsm.com/alerts#more-info
postalert="off"
-postdays="7"
-posttarget="https://termbin.com"
# Discord Alerts | https://docs.linuxgsm.com/alerts/discord
discordalert="off"
@@ -81,6 +77,7 @@ iftttevent="linuxgsm_alert"
# Mailgun Email Alerts | https://docs.linuxgsm.com/alerts/mailgun
mailgunalert="off"
+mailgunapiregion="us"
mailguntoken="accesstoken"
mailgundomain="example.com"
mailgunemailfrom="alert@example.com"
@@ -94,15 +91,20 @@ channeltag=""
# Pushover Alerts | https://docs.linuxgsm.com/alerts/pushover
pushoveralert="off"
pushovertoken="accesstoken"
+pushoveruserkey="userkey"
+
+# Rocket.Chat Alerts | https://docs.linuxgsm.com/alerts/rocket.chat
+rocketchatalert="off"
+rocketchatwebhook="webhook"
+rocketchattoken=""
# Slack Alerts | https://docs.linuxgsm.com/alerts/slack
slackalert="off"
slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
-# You can add a custom cURL string eg proxy (useful in Russia) or else in "curlcustomstring".
-# like a "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help", if you not need
-# any custom string in curl - simple ignore this parameter.
+# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
@@ -135,8 +137,10 @@ sleeptime="0.5"
## SteamCMD Settings | https://docs.linuxgsm.com/steamcmd
# Server appid
appid="740"
+steamcmdforcewindows="no"
# SteamCMD Branch | https://docs.linuxgsm.com/steamcmd/branch
branch=""
+betapassword=""
# Master Server | https://docs.linuxgsm.com/steamcmd/steam-master-server
steammaster="true"
@@ -151,17 +155,22 @@ steammaster="true"
# 8: 7 Days to Die
# 9: GoldSrc
# 10: Avorion
-stopmode="3"
+# 11: end
+stopmode="9"
## Query mode
# 1: session only
-# 2: gamedig + gsquery
+# 2: gamedig (gsquery fallback)
# 3: gamedig
# 4: gsquery
# 5: tcp
querymode="2"
querytype="protocol-valve"
+## Console type
+consoleverbose="yes"
+consoleinteract="yes"
+
## Game Server Details
# Do not edit
gamename="Counter-Strike: Global Offensive"
diff --git a/lgsm/config-default/config-lgsm/csserver/_default.cfg b/lgsm/config-default/config-lgsm/csserver/_default.cfg
index 584e0ad77..4e79e4e52 100644
--- a/lgsm/config-default/config-lgsm/csserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/csserver/_default.cfg
@@ -8,17 +8,15 @@
#### Game Server Settings ####
-## Server Start Settings | https://docs.linuxgsm.com/configuration/start-parameters
+## Predefined Parameters | https://docs.linuxgsm.com/configuration/start-parameters
ip="0.0.0.0"
port="27015"
clientport="27005"
defaultmap="de_dust2"
maxplayers="16"
-## Server Start Command | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
-fn_parms(){
-parms="-game cstrike -strictportbind +ip ${ip} -port ${port} +clientport ${clientport} +map ${defaultmap} +servercfgfile ${servercfg} -maxplayers ${maxplayers}"
-}
+## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
+startparameters="-game cstrike -strictportbind +ip ${ip} -port ${port} +clientport ${clientport} +map ${defaultmap} +servercfgfile ${servercfg} -maxplayers ${maxplayers}"
#### LinuxGSM Settings ####
@@ -36,8 +34,6 @@ displayip=""
# More info | https://docs.linuxgsm.com/alerts#more-info
postalert="off"
-postdays="7"
-posttarget="https://termbin.com"
# Discord Alerts | https://docs.linuxgsm.com/alerts/discord
discordalert="off"
@@ -55,6 +51,7 @@ iftttevent="linuxgsm_alert"
# Mailgun Email Alerts | https://docs.linuxgsm.com/alerts/mailgun
mailgunalert="off"
+mailgunapiregion="us"
mailguntoken="accesstoken"
mailgundomain="example.com"
mailgunemailfrom="alert@example.com"
@@ -68,15 +65,20 @@ channeltag=""
# Pushover Alerts | https://docs.linuxgsm.com/alerts/pushover
pushoveralert="off"
pushovertoken="accesstoken"
+pushoveruserkey="userkey"
+
+# Rocket.Chat Alerts | https://docs.linuxgsm.com/alerts/rocket.chat
+rocketchatalert="off"
+rocketchatwebhook="webhook"
+rocketchattoken=""
# Slack Alerts | https://docs.linuxgsm.com/alerts/slack
slackalert="off"
slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
-# You can add a custom cURL string eg proxy (useful in Russia) or else in "curlcustomstring".
-# like a "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help", if you not need
-# any custom string in curl - simple ignore this parameter.
+# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
@@ -109,9 +111,11 @@ sleeptime="0.5"
## SteamCMD Settings | https://docs.linuxgsm.com/steamcmd
# Server appid
appid="90"
+steamcmdforcewindows="no"
appidmod="cstrike"
# SteamCMD Branch | https://docs.linuxgsm.com/steamcmd/branch
branch=""
+betapassword=""
# Master Server | https://docs.linuxgsm.com/steamcmd/steam-master-server
steammaster="true"
@@ -126,17 +130,22 @@ steammaster="true"
# 8: 7 Days to Die
# 9: GoldSrc
# 10: Avorion
+# 11: end
stopmode="9"
## Query mode
# 1: session only
-# 2: gamedig + gsquery
+# 2: gamedig (gsquery fallback)
# 3: gamedig
# 4: gsquery
# 5: tcp
querymode="2"
querytype="protocol-valve"
+## Console type
+consoleverbose="yes"
+consoleinteract="yes"
+
## Game Server Details
# Do not edit
gamename="Counter-Strike 1.6"
diff --git a/lgsm/config-default/config-lgsm/cssserver/_default.cfg b/lgsm/config-default/config-lgsm/cssserver/_default.cfg
index 316eb26f8..dcdb9ab8a 100644
--- a/lgsm/config-default/config-lgsm/cssserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/cssserver/_default.cfg
@@ -8,7 +8,7 @@
#### Game Server Settings ####
-## Server Start Settings | https://docs.linuxgsm.com/configuration/start-parameters
+## Predefined Parameters | https://docs.linuxgsm.com/configuration/start-parameters
ip="0.0.0.0"
port="27015"
clientport="27005"
@@ -21,10 +21,8 @@ maxplayers="16"
# More info: https://docs.linuxgsm.com/steamcmd/gslt
gslt=""
-## Server Start Command | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
-fn_parms(){
-parms="-game cstrike -strictportbind -ip ${ip} -port ${port} +clientport ${clientport} +tv_port ${sourcetvport} +sv_setsteamaccount ${gslt} +map ${defaultmap} +servercfgfile ${servercfg} -maxplayers ${maxplayers}"
-}
+## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
+startparameters="-game cstrike -strictportbind -ip ${ip} -port ${port} +clientport ${clientport} +tv_port ${sourcetvport} +sv_setsteamaccount ${gslt} +map ${defaultmap} +servercfgfile ${servercfg} -maxplayers ${maxplayers}"
#### LinuxGSM Settings ####
@@ -42,8 +40,6 @@ displayip=""
# More info | https://docs.linuxgsm.com/alerts#more-info
postalert="off"
-postdays="7"
-posttarget="https://termbin.com"
# Discord Alerts | https://docs.linuxgsm.com/alerts/discord
discordalert="off"
@@ -61,6 +57,7 @@ iftttevent="linuxgsm_alert"
# Mailgun Email Alerts | https://docs.linuxgsm.com/alerts/mailgun
mailgunalert="off"
+mailgunapiregion="us"
mailguntoken="accesstoken"
mailgundomain="example.com"
mailgunemailfrom="alert@example.com"
@@ -74,15 +71,20 @@ channeltag=""
# Pushover Alerts | https://docs.linuxgsm.com/alerts/pushover
pushoveralert="off"
pushovertoken="accesstoken"
+pushoveruserkey="userkey"
+
+# Rocket.Chat Alerts | https://docs.linuxgsm.com/alerts/rocket.chat
+rocketchatalert="off"
+rocketchatwebhook="webhook"
+rocketchattoken=""
# Slack Alerts | https://docs.linuxgsm.com/alerts/slack
slackalert="off"
slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
-# You can add a custom cURL string eg proxy (useful in Russia) or else in "curlcustomstring".
-# like a "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help", if you not need
-# any custom string in curl - simple ignore this parameter.
+# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
@@ -115,8 +117,10 @@ sleeptime="0.5"
## SteamCMD Settings | https://docs.linuxgsm.com/steamcmd
# Server appid
appid="232330"
+steamcmdforcewindows="no"
# SteamCMD Branch | https://docs.linuxgsm.com/steamcmd/branch
branch=""
+betapassword=""
# Master Server | https://docs.linuxgsm.com/steamcmd/steam-master-server
steammaster="true"
@@ -131,17 +135,22 @@ steammaster="true"
# 8: 7 Days to Die
# 9: GoldSrc
# 10: Avorion
+# 11: end
stopmode="3"
## Query mode
# 1: session only
-# 2: gamedig + gsquery
+# 2: gamedig (gsquery fallback)
# 3: gamedig
# 4: gsquery
# 5: tcp
querymode="2"
querytype="protocol-valve"
+## Console type
+consoleverbose="yes"
+consoleinteract="yes"
+
## Game Server Details
# Do not edit
gamename="Counter-Strike: Source"
diff --git a/lgsm/config-default/config-lgsm/dabserver/_default.cfg b/lgsm/config-default/config-lgsm/dabserver/_default.cfg
index 612ea671f..ee2bacca2 100644
--- a/lgsm/config-default/config-lgsm/dabserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/dabserver/_default.cfg
@@ -8,7 +8,7 @@
#### Game Server Settings ####
-## Server Start Settings | https://docs.linuxgsm.com/configuration/start-parameters
+## Predefined Parameters | https://docs.linuxgsm.com/configuration/start-parameters
ip="0.0.0.0"
port="27015"
clientport="27005"
@@ -16,10 +16,8 @@ sourcetvport="27020"
defaultmap="da_rooftops"
maxplayers="10"
-## Server Start Command | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
-fn_parms(){
-parms="-strictportbind -ip ${ip} -port ${port} +clientport ${clientport} +tv_port ${sourcetvport} +map ${defaultmap} +servercfgfile ${servercfg} -maxplayers ${maxplayers}"
-}
+## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
+startparameters="-strictportbind -ip ${ip} -port ${port} +clientport ${clientport} +tv_port ${sourcetvport} +map ${defaultmap} +servercfgfile ${servercfg} -maxplayers ${maxplayers}"
#### LinuxGSM Settings ####
@@ -37,8 +35,6 @@ displayip=""
# More info | https://docs.linuxgsm.com/alerts#more-info
postalert="off"
-postdays="7"
-posttarget="https://termbin.com"
# Discord Alerts | https://docs.linuxgsm.com/alerts/discord
discordalert="off"
@@ -56,6 +52,7 @@ iftttevent="linuxgsm_alert"
# Mailgun Email Alerts | https://docs.linuxgsm.com/alerts/mailgun
mailgunalert="off"
+mailgunapiregion="us"
mailguntoken="accesstoken"
mailgundomain="example.com"
mailgunemailfrom="alert@example.com"
@@ -69,15 +66,20 @@ channeltag=""
# Pushover Alerts | https://docs.linuxgsm.com/alerts/pushover
pushoveralert="off"
pushovertoken="accesstoken"
+pushoveruserkey="userkey"
+
+# Rocket.Chat Alerts | https://docs.linuxgsm.com/alerts/rocket.chat
+rocketchatalert="off"
+rocketchatwebhook="webhook"
+rocketchattoken=""
# Slack Alerts | https://docs.linuxgsm.com/alerts/slack
slackalert="off"
slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
-# You can add a custom cURL string eg proxy (useful in Russia) or else in "curlcustomstring".
-# like a "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help", if you not need
-# any custom string in curl - simple ignore this parameter.
+# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
@@ -110,8 +112,10 @@ sleeptime="0.5"
## SteamCMD Settings | https://docs.linuxgsm.com/steamcmd
# Server appid
appid="317800"
+steamcmdforcewindows="no"
# SteamCMD Branch | https://docs.linuxgsm.com/steamcmd/branch
branch=""
+betapassword=""
# Master Server | https://docs.linuxgsm.com/steamcmd/steam-master-server
steammaster="true"
@@ -126,17 +130,22 @@ steammaster="true"
# 8: 7 Days to Die
# 9: GoldSrc
# 10: Avorion
+# 11: end
stopmode="3"
## Query mode
# 1: session only
-# 2: gamedig + gsquery
+# 2: gamedig (gsquery fallback)
# 3: gamedig
# 4: gsquery
# 5: tcp
querymode="2"
querytype="protocol-valve"
+## Console type
+consoleverbose="yes"
+consoleinteract="yes"
+
## Game Server Details
# Do not edit
gamename="Double Action: Boogaloo"
diff --git a/lgsm/config-default/config-lgsm/dmcserver/_default.cfg b/lgsm/config-default/config-lgsm/dmcserver/_default.cfg
index 43fe8e8f1..71e670d77 100644
--- a/lgsm/config-default/config-lgsm/dmcserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/dmcserver/_default.cfg
@@ -8,17 +8,15 @@
#### Game Server Settings ####
-## Server Start Settings | https://docs.linuxgsm.com/configuration/start-parameters
+## Predefined Parameters | https://docs.linuxgsm.com/configuration/start-parameters
ip="0.0.0.0"
port="27015"
clientport="27005"
defaultmap="dcdm5"
maxplayers="16"
-## Server Start Command | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
-fn_parms(){
-parms="-game dmc -strictportbind +ip ${ip} -port ${port} +clientport ${clientport} +map ${defaultmap} +servercfgfile ${servercfg} -maxplayers ${maxplayers}"
-}
+## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
+startparameters="-game dmc -strictportbind +ip ${ip} -port ${port} +clientport ${clientport} +map ${defaultmap} +servercfgfile ${servercfg} -maxplayers ${maxplayers}"
#### LinuxGSM Settings ####
@@ -36,8 +34,6 @@ displayip=""
# More info | https://docs.linuxgsm.com/alerts#more-info
postalert="off"
-postdays="7"
-posttarget="https://termbin.com"
# Discord Alerts | https://docs.linuxgsm.com/alerts/discord
discordalert="off"
@@ -55,6 +51,7 @@ iftttevent="linuxgsm_alert"
# Mailgun Email Alerts | https://docs.linuxgsm.com/alerts/mailgun
mailgunalert="off"
+mailgunapiregion="us"
mailguntoken="accesstoken"
mailgundomain="example.com"
mailgunemailfrom="alert@example.com"
@@ -68,15 +65,20 @@ channeltag=""
# Pushover Alerts | https://docs.linuxgsm.com/alerts/pushover
pushoveralert="off"
pushovertoken="accesstoken"
+pushoveruserkey="userkey"
+
+# Rocket.Chat Alerts | https://docs.linuxgsm.com/alerts/rocket.chat
+rocketchatalert="off"
+rocketchatwebhook="webhook"
+rocketchattoken=""
# Slack Alerts | https://docs.linuxgsm.com/alerts/slack
slackalert="off"
slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
-# You can add a custom cURL string eg proxy (useful in Russia) or else in "curlcustomstring".
-# like a "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help", if you not need
-# any custom string in curl - simple ignore this parameter.
+# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
@@ -109,9 +111,11 @@ sleeptime="0.5"
## SteamCMD Settings | https://docs.linuxgsm.com/steamcmd
# Server appid
appid="90"
+steamcmdforcewindows="no"
appidmod="dmc"
# SteamCMD Branch | https://docs.linuxgsm.com/steamcmd/branch
branch=""
+betapassword=""
# Master Server | https://docs.linuxgsm.com/steamcmd/steam-master-server
steammaster="true"
@@ -126,17 +130,22 @@ steammaster="true"
# 8: 7 Days to Die
# 9: GoldSrc
# 10: Avorion
+# 11: end
stopmode="9"
## Query mode
# 1: session only
-# 2: gamedig + gsquery
+# 2: gamedig (gsquery fallback)
# 3: gamedig
# 4: gsquery
# 5: tcp
querymode="2"
querytype="protocol-valve"
+## Console type
+consoleverbose="yes"
+consoleinteract="yes"
+
## Game Server Details
# Do not edit
gamename="Deathmatch Classic"
diff --git a/lgsm/config-default/config-lgsm/dodserver/_default.cfg b/lgsm/config-default/config-lgsm/dodserver/_default.cfg
index 0d1b447c3..2685d0077 100644
--- a/lgsm/config-default/config-lgsm/dodserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/dodserver/_default.cfg
@@ -8,17 +8,15 @@
#### Game Server Settings ####
-## Server Start Settings | https://docs.linuxgsm.com/configuration/start-parameters
+## Predefined Parameters | https://docs.linuxgsm.com/configuration/start-parameters
ip="0.0.0.0"
port="27015"
clientport="27005"
defaultmap="dod_Anzio"
maxplayers="16"
-## Server Start Command | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
-fn_parms(){
-parms="-game dod -strictportbind +ip ${ip} -port ${port} +clientport ${clientport} +map ${defaultmap} +servercfgfile ${servercfg} -maxplayers ${maxplayers}"
-}
+## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
+startparameters="-game dod -strictportbind +ip ${ip} -port ${port} +clientport ${clientport} +map ${defaultmap} +servercfgfile ${servercfg} -maxplayers ${maxplayers}"
#### LinuxGSM Settings ####
@@ -36,8 +34,6 @@ displayip=""
# More info | https://docs.linuxgsm.com/alerts#more-info
postalert="off"
-postdays="7"
-posttarget="https://termbin.com"
# Discord Alerts | https://docs.linuxgsm.com/alerts/discord
discordalert="off"
@@ -55,6 +51,7 @@ iftttevent="linuxgsm_alert"
# Mailgun Email Alerts | https://docs.linuxgsm.com/alerts/mailgun
mailgunalert="off"
+mailgunapiregion="us"
mailguntoken="accesstoken"
mailgundomain="example.com"
mailgunemailfrom="alert@example.com"
@@ -68,15 +65,20 @@ channeltag=""
# Pushover Alerts | https://docs.linuxgsm.com/alerts/pushover
pushoveralert="off"
pushovertoken="accesstoken"
+pushoveruserkey="userkey"
+
+# Rocket.Chat Alerts | https://docs.linuxgsm.com/alerts/rocket.chat
+rocketchatalert="off"
+rocketchatwebhook="webhook"
+rocketchattoken=""
# Slack Alerts | https://docs.linuxgsm.com/alerts/slack
slackalert="off"
slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
-# You can add a custom cURL string eg proxy (useful in Russia) or else in "curlcustomstring".
-# like a "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help", if you not need
-# any custom string in curl - simple ignore this parameter.
+# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
@@ -109,9 +111,11 @@ sleeptime="0.5"
## SteamCMD Settings | https://docs.linuxgsm.com/steamcmd
# Server appid
appid="90"
+steamcmdforcewindows="no"
appidmod="dod"
# SteamCMD Branch | https://docs.linuxgsm.com/steamcmd/branch
branch=""
+betapassword=""
# Master Server | https://docs.linuxgsm.com/steamcmd/steam-master-server
steammaster="true"
@@ -126,17 +130,22 @@ steammaster="true"
# 8: 7 Days to Die
# 9: GoldSrc
# 10: Avorion
+# 11: end
stopmode="9"
## Query mode
# 1: session only
-# 2: gamedig + gsquery
+# 2: gamedig (gsquery fallback)
# 3: gamedig
# 4: gsquery
# 5: tcp
querymode="2"
querytype="protocol-valve"
+## Console type
+consoleverbose="yes"
+consoleinteract="yes"
+
## Game Server Details
# Do not edit
gamename="Day of Defeat"
diff --git a/lgsm/config-default/config-lgsm/dodsserver/_default.cfg b/lgsm/config-default/config-lgsm/dodsserver/_default.cfg
index 572046108..a92c46091 100644
--- a/lgsm/config-default/config-lgsm/dodsserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/dodsserver/_default.cfg
@@ -8,7 +8,7 @@
#### Game Server Settings ####
-## Server Start Settings | https://docs.linuxgsm.com/configuration/start-parameters
+## Predefined Parameters | https://docs.linuxgsm.com/configuration/start-parameters
ip="0.0.0.0"
port="27015"
clientport="27005"
@@ -16,10 +16,8 @@ sourcetvport="27020"
defaultmap="dod_Anzio"
maxplayers="16"
-## Server Start Command | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
-fn_parms(){
-parms="-game dod -strictportbind -ip ${ip} -port ${port} +clientport ${clientport} +tv_port ${sourcetvport} +map ${defaultmap} +servercfgfile ${servercfg} -maxplayers ${maxplayers}"
-}
+## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
+startparameters="-game dod -strictportbind -ip ${ip} -port ${port} +clientport ${clientport} +tv_port ${sourcetvport} +map ${defaultmap} +servercfgfile ${servercfg} -maxplayers ${maxplayers}"
#### LinuxGSM Settings ####
@@ -37,8 +35,6 @@ displayip=""
# More info | https://docs.linuxgsm.com/alerts#more-info
postalert="off"
-postdays="7"
-posttarget="https://termbin.com"
# Discord Alerts | https://docs.linuxgsm.com/alerts/discord
discordalert="off"
@@ -56,6 +52,7 @@ iftttevent="linuxgsm_alert"
# Mailgun Email Alerts | https://docs.linuxgsm.com/alerts/mailgun
mailgunalert="off"
+mailgunapiregion="us"
mailguntoken="accesstoken"
mailgundomain="example.com"
mailgunemailfrom="alert@example.com"
@@ -69,15 +66,20 @@ channeltag=""
# Pushover Alerts | https://docs.linuxgsm.com/alerts/pushover
pushoveralert="off"
pushovertoken="accesstoken"
+pushoveruserkey="userkey"
+
+# Rocket.Chat Alerts | https://docs.linuxgsm.com/alerts/rocket.chat
+rocketchatalert="off"
+rocketchatwebhook="webhook"
+rocketchattoken=""
# Slack Alerts | https://docs.linuxgsm.com/alerts/slack
slackalert="off"
slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
-# You can add a custom cURL string eg proxy (useful in Russia) or else in "curlcustomstring".
-# like a "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help", if you not need
-# any custom string in curl - simple ignore this parameter.
+# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
@@ -110,8 +112,10 @@ sleeptime="0.5"
## SteamCMD Settings | https://docs.linuxgsm.com/steamcmd
# Server appid
appid="232290"
+steamcmdforcewindows="no"
# SteamCMD Branch | https://docs.linuxgsm.com/steamcmd/branch
branch=""
+betapassword=""
# Master Server | https://docs.linuxgsm.com/steamcmd/steam-master-server
steammaster="true"
@@ -126,17 +130,22 @@ steammaster="true"
# 8: 7 Days to Die
# 9: GoldSrc
# 10: Avorion
+# 11: end
stopmode="3"
## Query mode
# 1: session only
-# 2: gamedig + gsquery
+# 2: gamedig (gsquery fallback)
# 3: gamedig
# 4: gsquery
# 5: tcp
querymode="2"
querytype="protocol-valve"
+## Console type
+consoleverbose="yes"
+consoleinteract="yes"
+
## Game Server Details
# Do not edit
gamename="Day of Defeat: Source"
diff --git a/lgsm/config-default/config-lgsm/doiserver/_default.cfg b/lgsm/config-default/config-lgsm/doiserver/_default.cfg
index d7916e2b5..4caa856f3 100644
--- a/lgsm/config-default/config-lgsm/doiserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/doiserver/_default.cfg
@@ -8,7 +8,7 @@
#### Game Server Settings ####
-## Server Start Settings | https://docs.linuxgsm.com/configuration/start-parameters
+## Predefined Parameters | https://docs.linuxgsm.com/configuration/start-parameters
ip="0.0.0.0"
port="27015"
clientport="27005"
@@ -17,10 +17,8 @@ defaultmap="bastogne stronghold"
maxplayers="32"
tickrate="64"
-## Server Start Command | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
-fn_parms(){
-parms="-game doi -strictportbind -ip ${ip} -port ${port} +clientport ${clientport} +tv_port ${sourcetvport} -tickrate ${tickrate} +map ${defaultmap} +servercfgfile ${servercfg} -maxplayers ${maxplayers} -workshop -norestart"
-}
+## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
+startparameters="-game doi -strictportbind -ip ${ip} -port ${port} +clientport ${clientport} +tv_port ${sourcetvport} -tickrate ${tickrate} +map ${defaultmap} +servercfgfile ${servercfg} -maxplayers ${maxplayers} -workshop -norestart"
#### LinuxGSM Settings ####
@@ -38,8 +36,6 @@ displayip=""
# More info | https://docs.linuxgsm.com/alerts#more-info
postalert="off"
-postdays="7"
-posttarget="https://termbin.com"
# Discord Alerts | https://docs.linuxgsm.com/alerts/discord
discordalert="off"
@@ -57,6 +53,7 @@ iftttevent="linuxgsm_alert"
# Mailgun Email Alerts | https://docs.linuxgsm.com/alerts/mailgun
mailgunalert="off"
+mailgunapiregion="us"
mailguntoken="accesstoken"
mailgundomain="example.com"
mailgunemailfrom="alert@example.com"
@@ -70,15 +67,20 @@ channeltag=""
# Pushover Alerts | https://docs.linuxgsm.com/alerts/pushover
pushoveralert="off"
pushovertoken="accesstoken"
+pushoveruserkey="userkey"
+
+# Rocket.Chat Alerts | https://docs.linuxgsm.com/alerts/rocket.chat
+rocketchatalert="off"
+rocketchatwebhook="webhook"
+rocketchattoken=""
# Slack Alerts | https://docs.linuxgsm.com/alerts/slack
slackalert="off"
slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
-# You can add a custom cURL string eg proxy (useful in Russia) or else in "curlcustomstring".
-# like a "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help", if you not need
-# any custom string in curl - simple ignore this parameter.
+# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
@@ -111,8 +113,10 @@ sleeptime="0.5"
## SteamCMD Settings | https://docs.linuxgsm.com/steamcmd
# Server appid
appid="462310"
+steamcmdforcewindows="no"
# SteamCMD Branch | https://docs.linuxgsm.com/steamcmd/branch
branch=""
+betapassword=""
# Master Server | https://docs.linuxgsm.com/steamcmd/steam-master-server
steammaster="true"
@@ -127,17 +131,22 @@ steammaster="true"
# 8: 7 Days to Die
# 9: GoldSrc
# 10: Avorion
+# 11: end
stopmode="3"
## Query mode
# 1: session only
-# 2: gamedig + gsquery
+# 2: gamedig (gsquery fallback)
# 3: gamedig
# 4: gsquery
# 5: tcp
querymode="2"
querytype="protocol-valve"
+## Console type
+consoleverbose="yes"
+consoleinteract="yes"
+
## Game Server Details
# Do not edit
gamename="Day of Infamy"
diff --git a/lgsm/config-default/config-lgsm/dstserver/_default.cfg b/lgsm/config-default/config-lgsm/dstserver/_default.cfg
index 7491e7e55..2ab6fdde1 100644
--- a/lgsm/config-default/config-lgsm/dstserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/dstserver/_default.cfg
@@ -8,7 +8,7 @@
#### Game Server Settings ####
-## Installation Variables | https://docs.linuxgsm.com/game-servers/dont-starve-together
+## Predefined Parameters | https://docs.linuxgsm.com/configuration/start-parameters
sharding="false"
master="true"
shard="Master"
@@ -19,10 +19,8 @@ cave="false"
persistentstorageroot="${HOME}/.klei"
confdir="DoNotStarveTogether"
-## Server Start Command | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
-fn_parms(){
-parms="-persistent_storage_root ${persistentstorageroot} -conf_dir ${confdir} -cluster ${cluster} -shard ${shard}"
-}
+## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
+startparameters="-persistent_storage_root ${persistentstorageroot} -conf_dir ${confdir} -cluster ${cluster} -shard ${shard}"
#### LinuxGSM Settings ####
@@ -40,8 +38,6 @@ displayip=""
# More info | https://docs.linuxgsm.com/alerts#more-info
postalert="off"
-postdays="7"
-posttarget="https://termbin.com"
# Discord Alerts | https://docs.linuxgsm.com/alerts/discord
discordalert="off"
@@ -59,6 +55,7 @@ iftttevent="linuxgsm_alert"
# Mailgun Email Alerts | https://docs.linuxgsm.com/alerts/mailgun
mailgunalert="off"
+mailgunapiregion="us"
mailguntoken="accesstoken"
mailgundomain="example.com"
mailgunemailfrom="alert@example.com"
@@ -72,15 +69,20 @@ channeltag=""
# Pushover Alerts | https://docs.linuxgsm.com/alerts/pushover
pushoveralert="off"
pushovertoken="accesstoken"
+pushoveruserkey="userkey"
+
+# Rocket.Chat Alerts | https://docs.linuxgsm.com/alerts/rocket.chat
+rocketchatalert="off"
+rocketchatwebhook="webhook"
+rocketchattoken=""
# Slack Alerts | https://docs.linuxgsm.com/alerts/slack
slackalert="off"
slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
-# You can add a custom cURL string eg proxy (useful in Russia) or else in "curlcustomstring".
-# like a "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help", if you not need
-# any custom string in curl - simple ignore this parameter.
+# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
@@ -113,8 +115,10 @@ sleeptime="0.5"
## SteamCMD Settings | https://docs.linuxgsm.com/steamcmd
# Server appid
appid="343050"
+steamcmdforcewindows="no"
# SteamCMD Branch | https://docs.linuxgsm.com/steamcmd/branch
branch=""
+betapassword=""
# Master Server | https://docs.linuxgsm.com/steamcmd/steam-master-server
steammaster="false"
@@ -129,17 +133,22 @@ steammaster="false"
# 8: 7 Days to Die
# 9: GoldSrc
# 10: Avorion
+# 11: end
stopmode="2"
## Query mode
# 1: session only
-# 2: gamedig + gsquery
+# 2: gamedig (gsquery fallback)
# 3: gamedig
# 4: gsquery
# 5: tcp
querymode="1"
querytype=""
+## Console type
+consoleverbose="yes"
+consoleinteract="yes"
+
## Game Server Details
# Do not edit
gamename="Don't Starve Together"
diff --git a/lgsm/config-default/config-lgsm/dysserver/_default.cfg b/lgsm/config-default/config-lgsm/dysserver/_default.cfg
index 28cc7fb98..1cef60f0d 100644
--- a/lgsm/config-default/config-lgsm/dysserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/dysserver/_default.cfg
@@ -8,7 +8,7 @@
#### Game Server Settings ####
-## Server Start Settings | https://docs.linuxgsm.com/configuration/start-parameters
+## Predefined Parameters | https://docs.linuxgsm.com/configuration/start-parameters
ip="0.0.0.0"
port="27015"
clientport="27005"
@@ -21,10 +21,8 @@ maxplayers="16"
# More info: https://docs.linuxgsm.com/steamcmd/gslt
gslt=""
-## Server Start Command | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
-fn_parms(){
-parms="-game "${serverfiles}/dystopia" -strictportbind -ip ${ip} -port ${port} +clientport ${clientport} +tv_port ${sourcetvport} +map ${defaultmap} +sv_setsteamaccount ${gslt} +servercfgfile ${servercfg} -maxplayers ${maxplayers}"
-}
+## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
+startparameters="-game "${serverfiles}/dystopia" -strictportbind -ip ${ip} -port ${port} +clientport ${clientport} +tv_port ${sourcetvport} +map ${defaultmap} +sv_setsteamaccount ${gslt} +servercfgfile ${servercfg} -maxplayers ${maxplayers}"
#### LinuxGSM Settings ####
@@ -42,8 +40,6 @@ displayip=""
# More info | https://docs.linuxgsm.com/alerts#more-info
postalert="off"
-postdays="7"
-posttarget="https://termbin.com"
# Discord Alerts | https://docs.linuxgsm.com/alerts/discord
discordalert="off"
@@ -61,6 +57,7 @@ iftttevent="linuxgsm_alert"
# Mailgun Email Alerts | https://docs.linuxgsm.com/alerts/mailgun
mailgunalert="off"
+mailgunapiregion="us"
mailguntoken="accesstoken"
mailgundomain="example.com"
mailgunemailfrom="alert@example.com"
@@ -74,15 +71,20 @@ channeltag=""
# Pushover Alerts | https://docs.linuxgsm.com/alerts/pushover
pushoveralert="off"
pushovertoken="accesstoken"
+pushoveruserkey="userkey"
+
+# Rocket.Chat Alerts | https://docs.linuxgsm.com/alerts/rocket.chat
+rocketchatalert="off"
+rocketchatwebhook="webhook"
+rocketchattoken=""
# Slack Alerts | https://docs.linuxgsm.com/alerts/slack
slackalert="off"
slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
-# You can add a custom cURL string eg proxy (useful in Russia) or else in "curlcustomstring".
-# like a "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help", if you not need
-# any custom string in curl - simple ignore this parameter.
+# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
@@ -115,8 +117,10 @@ sleeptime="0.5"
## SteamCMD Settings | https://docs.linuxgsm.com/steamcmd
# Server appid
appid="17585"
+steamcmdforcewindows="no"
# SteamCMD Branch | https://docs.linuxgsm.com/steamcmd/branch
branch=""
+betapassword=""
# Master Server | https://docs.linuxgsm.com/steamcmd/steam-master-server
steammaster="true"
@@ -131,17 +135,22 @@ steammaster="true"
# 8: 7 Days to Die
# 9: GoldSrc
# 10: Avorion
+# 11: end
stopmode="3"
## Query mode
# 1: session only
-# 2: gamedig + gsquery
+# 2: gamedig (gsquery fallback)
# 3: gamedig
# 4: gsquery
# 5: tcp
querymode="2"
querytype="protocol-valve"
+## Console type
+consoleverbose="yes"
+consoleinteract="yes"
+
## Game Server Details
# Do not edit
gamename="Dystopia"
diff --git a/lgsm/config-default/config-lgsm/ecoserver/_default.cfg b/lgsm/config-default/config-lgsm/ecoserver/_default.cfg
index b4a4b92eb..f929b64d9 100644
--- a/lgsm/config-default/config-lgsm/ecoserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/ecoserver/_default.cfg
@@ -8,10 +8,8 @@
#### Game Server Settings ####
-## Server Start Command | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
-fn_parms(){
- parms="-nogui"
-}
+## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
+startparameters="-nogui"
#### LinuxGSM Settings ####
@@ -29,8 +27,6 @@ displayip=""
# More info | https://docs.linuxgsm.com/alerts#more-info
postalert="off"
-postdays="7"
-posttarget="https://termbin.com"
# Discord Alerts | https://docs.linuxgsm.com/alerts/discord
discordalert="off"
@@ -48,6 +44,7 @@ iftttevent="linuxgsm_alert"
# Mailgun Email Alerts | https://docs.linuxgsm.com/alerts/mailgun
mailgunalert="off"
+mailgunapiregion="us"
mailguntoken="accesstoken"
mailgundomain="example.com"
mailgunemailfrom="alert@example.com"
@@ -61,15 +58,20 @@ channeltag=""
# Pushover Alerts | https://docs.linuxgsm.com/alerts/pushover
pushoveralert="off"
pushovertoken="accesstoken"
+pushoveruserkey="userkey"
+
+# Rocket.Chat Alerts | https://docs.linuxgsm.com/alerts/rocket.chat
+rocketchatalert="off"
+rocketchatwebhook="webhook"
+rocketchattoken=""
# Slack Alerts | https://docs.linuxgsm.com/alerts/slack
slackalert="off"
slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
-# You can add a custom cURL string eg proxy (useful in Russia) or else in "curlcustomstring".
-# like a "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help", if you not need
-# any custom string in curl - simple ignore this parameter.
+# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
@@ -102,8 +104,10 @@ sleeptime="0.5"
## SteamCMD Settings | https://docs.linuxgsm.com/steamcmd
# Server appid
appid="739590"
+steamcmdforcewindows="no"
# SteamCMD Branch | https://docs.linuxgsm.com/steamcmd/branch
branch=""
+betapassword=""
# Master Server | https://docs.linuxgsm.com/steamcmd/steam-master-server
steammaster="false"
@@ -118,22 +122,27 @@ steammaster="false"
# 8: 7 Days to Die
# 9: GoldSrc
# 10: Avorion
+# 11: end
stopmode="2"
## Query mode
# 1: session only
-# 2: gamedig + gsquery
+# 2: gamedig (gsquery fallback)
# 3: gamedig
# 4: gsquery
# 5: tcp
querymode="1"
querytype=""
+## Console type
+consoleverbose=""
+consoleinteract=""
+
## Game Server Details
# Do not edit
gamename="Eco"
engine="unity3d"
-glibc="null"
+glibc="2.15"
#### Directories ####
# Edit with care
@@ -141,7 +150,7 @@ glibc="null"
## Game Server Directories
systemdir="${serverfiles}"
executabledir="${serverfiles}"
-executable="mono ./EcoServer.exe"
+executable="./EcoServer"
servercfgdir="${systemdir}/Configs"
servercfg="Network.eco"
servercfgdefault="Network.eco"
diff --git a/lgsm/config-default/config-lgsm/emserver/_default.cfg b/lgsm/config-default/config-lgsm/emserver/_default.cfg
index 8ab7aefe1..99e1cd44a 100644
--- a/lgsm/config-default/config-lgsm/emserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/emserver/_default.cfg
@@ -8,7 +8,7 @@
#### Game Server Settings ####
-## Server Start Settings | https://docs.linuxgsm.com/configuration/start-parameters
+## Predefined Parameters | https://docs.linuxgsm.com/configuration/start-parameters
ip="0.0.0.0"
port="27015"
clientport="27005"
@@ -21,10 +21,8 @@ maxplayers="62"
# More info: https://docs.linuxgsm.com/steamcmd/gslt
gslt=""
-## Server Start Command | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
-fn_parms(){
-parms="-game empires -strictportbind -ip ${ip} -port ${port} +clientport ${clientport} +tv_port ${sourcetvport} +map ${defaultmap} +servercfgfile ${servercfg} -maxplayers ${maxplayers}"
-}
+## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
+startparameters="-game empires -strictportbind -ip ${ip} -port ${port} +clientport ${clientport} +tv_port ${sourcetvport} +map ${defaultmap} +servercfgfile ${servercfg} -maxplayers ${maxplayers}"
#### LinuxGSM Settings ####
@@ -42,8 +40,6 @@ displayip=""
# More info | https://docs.linuxgsm.com/alerts#more-info
postalert="off"
-postdays="7"
-posttarget="https://termbin.com"
# Discord Alerts | https://docs.linuxgsm.com/alerts/discord
discordalert="off"
@@ -61,6 +57,7 @@ iftttevent="linuxgsm_alert"
# Mailgun Email Alerts | https://docs.linuxgsm.com/alerts/mailgun
mailgunalert="off"
+mailgunapiregion="us"
mailguntoken="accesstoken"
mailgundomain="example.com"
mailgunemailfrom="alert@example.com"
@@ -74,15 +71,20 @@ channeltag=""
# Pushover Alerts | https://docs.linuxgsm.com/alerts/pushover
pushoveralert="off"
pushovertoken="accesstoken"
+pushoveruserkey="userkey"
+
+# Rocket.Chat Alerts | https://docs.linuxgsm.com/alerts/rocket.chat
+rocketchatalert="off"
+rocketchatwebhook="webhook"
+rocketchattoken=""
# Slack Alerts | https://docs.linuxgsm.com/alerts/slack
slackalert="off"
slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
-# You can add a custom cURL string eg proxy (useful in Russia) or else in "curlcustomstring".
-# like a "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help", if you not need
-# any custom string in curl - simple ignore this parameter.
+# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
@@ -115,8 +117,10 @@ sleeptime="0.5"
## SteamCMD Settings | https://docs.linuxgsm.com/steamcmd
# Server appid
appid="460040"
+steamcmdforcewindows="no"
# SteamCMD Branch | https://docs.linuxgsm.com/steamcmd/branch
branch=""
+betapassword=""
# Master Server | https://docs.linuxgsm.com/steamcmd/steam-master-server
steammaster="true"
@@ -131,17 +135,22 @@ steammaster="true"
# 8: 7 Days to Die
# 9: GoldSrc
# 10: Avorion
+# 11: end
stopmode="3"
## Query mode
# 1: session only
-# 2: gamedig + gsquery
+# 2: gamedig (gsquery fallback)
# 3: gamedig
# 4: gsquery
# 5: tcp
querymode="2"
querytype="protocol-valve"
+## Console type
+consoleverbose="yes"
+consoleinteract="yes"
+
## Game Server Details
# Do not edit
gamename="Empires Mod"
diff --git a/lgsm/config-default/config-lgsm/etlserver/_default.cfg b/lgsm/config-default/config-lgsm/etlserver/_default.cfg
index add0f74b6..b1db388c0 100644
--- a/lgsm/config-default/config-lgsm/etlserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/etlserver/_default.cfg
@@ -8,10 +8,8 @@
#### Game Server Settings ####
-## Server Start Command | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
-fn_parms(){
-parms="+set net_strict 1 +set fs_homepath ${serverfiles} +exec ${servercfg}"
-}
+## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
+startparameters="+set net_strict 1 +set fs_homepath ${serverfiles} +exec ${servercfg}"
#### LinuxGSM Settings ####
@@ -29,8 +27,6 @@ displayip=""
# More info | https://docs.linuxgsm.com/alerts#more-info
postalert="off"
-postdays="7"
-posttarget="https://termbin.com"
# Discord Alerts | https://docs.linuxgsm.com/alerts/discord
discordalert="off"
@@ -48,6 +44,7 @@ iftttevent="linuxgsm_alert"
# Mailgun Email Alerts | https://docs.linuxgsm.com/alerts/mailgun
mailgunalert="off"
+mailgunapiregion="us"
mailguntoken="accesstoken"
mailgundomain="example.com"
mailgunemailfrom="alert@example.com"
@@ -61,15 +58,20 @@ channeltag=""
# Pushover Alerts | https://docs.linuxgsm.com/alerts/pushover
pushoveralert="off"
pushovertoken="accesstoken"
+pushoveruserkey="userkey"
+
+# Rocket.Chat Alerts | https://docs.linuxgsm.com/alerts/rocket.chat
+rocketchatalert="off"
+rocketchatwebhook="webhook"
+rocketchattoken=""
# Slack Alerts | https://docs.linuxgsm.com/alerts/slack
slackalert="off"
slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
-# You can add a custom cURL string eg proxy (useful in Russia) or else in "curlcustomstring".
-# like a "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help", if you not need
-# any custom string in curl - simple ignore this parameter.
+# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
@@ -107,17 +109,22 @@ sleeptime="0.5"
# 8: 7 Days to Die
# 9: GoldSrc
# 10: Avorion
+# 11: end
stopmode="3"
## Query mode
# 1: session only
-# 2: gamedig + gsquery
+# 2: gamedig (gsquery fallback)
# 3: gamedig
# 4: gsquery
# 5: tcp
querymode="2"
querytype="protocol-quake3"
+## Console type
+consoleverbose="yes"
+consoleinteract="yes"
+
## Game Server Details
# Do not edit
gamename="ET: Legacy"
diff --git a/lgsm/config-default/config-lgsm/fctrserver/_default.cfg b/lgsm/config-default/config-lgsm/fctrserver/_default.cfg
index fddab05ee..de0b5f3d7 100644
--- a/lgsm/config-default/config-lgsm/fctrserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/fctrserver/_default.cfg
@@ -8,7 +8,7 @@
#### Game Server Settings ####
-## Server Start Settings | https://docs.linuxgsm.com/configuration/start-parameters
+## Predefined Parameters | https://docs.linuxgsm.com/configuration/start-parameters
ip="0.0.0.0"
port="34197"
rconport="34198"
@@ -16,10 +16,8 @@ rconpassword="CHANGE_ME"
# (stable|experimental)
branch="stable"
-## Server Start Command | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
-fn_parms(){
-parms="--start-server ${serverfiles}/save1.zip --server-settings ${servercfgfullpath} --port ${port} --rcon-port ${rconport} --rcon-password ${rconpassword}"
-}
+## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
+startparameters="--bind ${ip} --start-server ${serverfiles}/save1.zip --server-settings ${servercfgfullpath} --port ${port} --rcon-port ${rconport} --rcon-password ${rconpassword}"
#### LinuxGSM Settings ####
@@ -37,8 +35,6 @@ displayip=""
# More info | https://docs.linuxgsm.com/alerts#more-info
postalert="off"
-postdays="7"
-posttarget="https://termbin.com"
# Discord Alerts | https://docs.linuxgsm.com/alerts/discord
discordalert="off"
@@ -56,6 +52,7 @@ iftttevent="linuxgsm_alert"
# Mailgun Email Alerts | https://docs.linuxgsm.com/alerts/mailgun
mailgunalert="off"
+mailgunapiregion="us"
mailguntoken="accesstoken"
mailgundomain="example.com"
mailgunemailfrom="alert@example.com"
@@ -69,15 +66,20 @@ channeltag=""
# Pushover Alerts | https://docs.linuxgsm.com/alerts/pushover
pushoveralert="off"
pushovertoken="accesstoken"
+pushoveruserkey="userkey"
+
+# Rocket.Chat Alerts | https://docs.linuxgsm.com/alerts/rocket.chat
+rocketchatalert="off"
+rocketchatwebhook="webhook"
+rocketchattoken=""
# Slack Alerts | https://docs.linuxgsm.com/alerts/slack
slackalert="off"
slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
-# You can add a custom cURL string eg proxy (useful in Russia) or else in "curlcustomstring".
-# like a "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help", if you not need
-# any custom string in curl - simple ignore this parameter.
+# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
@@ -118,17 +120,22 @@ sleeptime="0.5"
# 8: 7 Days to Die
# 9: GoldSrc
# 10: Avorion
+# 11: end
stopmode="2"
## Query mode
# 1: session only
-# 2: gamedig + gsquery
+# 2: gamedig (gsquery fallback)
# 3: gamedig
# 4: gsquery
# 5: tcp
querymode="1"
querytype=""
+## Console type
+consoleverbose="yes"
+consoleinteract="yes"
+
## Game Server Details
# Do not edit
gamename="Factorio"
diff --git a/lgsm/config-default/config-lgsm/fofserver/_default.cfg b/lgsm/config-default/config-lgsm/fofserver/_default.cfg
index 49105660c..b89c58e3c 100644
--- a/lgsm/config-default/config-lgsm/fofserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/fofserver/_default.cfg
@@ -8,7 +8,7 @@
#### Game Server Settings ####
-## Server Start Settings | https://docs.linuxgsm.com/configuration/start-parameters
+## Predefined Parameters | https://docs.linuxgsm.com/configuration/start-parameters
ip="0.0.0.0"
port="27015"
clientport="27005"
@@ -16,10 +16,8 @@ sourcetvport="27020"
defaultmap="fof_depot"
maxplayers="20"
-## Server Start Command | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
-fn_parms(){
-parms="-game fof -strictportbind -ip ${ip} -port ${port} +clientport ${clientport} +tv_port ${sourcetvport} +map ${defaultmap} +servercfgfile ${servercfg} -maxplayers ${maxplayers}"
-}
+## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
+startparameters="-game fof -strictportbind -ip ${ip} -port ${port} +clientport ${clientport} +tv_port ${sourcetvport} +map ${defaultmap} +servercfgfile ${servercfg} -maxplayers ${maxplayers}"
#### LinuxGSM Settings ####
@@ -37,8 +35,6 @@ displayip=""
# More info | https://docs.linuxgsm.com/alerts#more-info
postalert="off"
-postdays="7"
-posttarget="https://termbin.com"
# Discord Alerts | https://docs.linuxgsm.com/alerts/discord
discordalert="off"
@@ -56,6 +52,7 @@ iftttevent="linuxgsm_alert"
# Mailgun Email Alerts | https://docs.linuxgsm.com/alerts/mailgun
mailgunalert="off"
+mailgunapiregion="us"
mailguntoken="accesstoken"
mailgundomain="example.com"
mailgunemailfrom="alert@example.com"
@@ -69,15 +66,20 @@ channeltag=""
# Pushover Alerts | https://docs.linuxgsm.com/alerts/pushover
pushoveralert="off"
pushovertoken="accesstoken"
+pushoveruserkey="userkey"
+
+# Rocket.Chat Alerts | https://docs.linuxgsm.com/alerts/rocket.chat
+rocketchatalert="off"
+rocketchatwebhook="webhook"
+rocketchattoken=""
# Slack Alerts | https://docs.linuxgsm.com/alerts/slack
slackalert="off"
slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
-# You can add a custom cURL string eg proxy (useful in Russia) or else in "curlcustomstring".
-# like a "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help", if you not need
-# any custom string in curl - simple ignore this parameter.
+# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
@@ -110,8 +112,10 @@ sleeptime="0.5"
## SteamCMD Settings | https://docs.linuxgsm.com/steamcmd
# Server appid
appid="295230"
+steamcmdforcewindows="no"
# SteamCMD Branch | https://docs.linuxgsm.com/steamcmd/branch
branch=""
+betapassword=""
# Master Server | https://docs.linuxgsm.com/steamcmd/steam-master-server
steammaster="true"
@@ -126,17 +130,22 @@ steammaster="true"
# 8: 7 Days to Die
# 9: GoldSrc
# 10: Avorion
+# 11: end
stopmode="3"
## Query mode
# 1: session only
-# 2: gamedig + gsquery
+# 2: gamedig (gsquery fallback)
# 3: gamedig
# 4: gsquery
# 5: tcp
querymode="2"
querytype="protocol-valve"
+## Console type
+consoleverbose="yes"
+consoleinteract="yes"
+
## Game Server Details
# Do not edit
gamename="Fistful of Frags"
diff --git a/lgsm/config-default/config-lgsm/gmodserver/_default.cfg b/lgsm/config-default/config-lgsm/gmodserver/_default.cfg
index bd254e8b1..3aa8d948b 100644
--- a/lgsm/config-default/config-lgsm/gmodserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/gmodserver/_default.cfg
@@ -8,7 +8,7 @@
#### Game Server Settings ####
-## Server Start Settings | https://docs.linuxgsm.com/configuration/start-parameters
+## Predefined Parameters | https://docs.linuxgsm.com/configuration/start-parameters
ip="0.0.0.0"
port="27015"
clientport="27005"
@@ -18,24 +18,18 @@ maxplayers="16"
tickrate="66"
gamemode="sandbox"
-## Workshop Parameters | https://wiki.garrysmod.com/page/Workshop_for_Dedicated_Servers
+## Workshop Parameters | https://wiki.facepunch.com/gmod/Workshop_for_Dedicated_Servers
# To get an API key visit - https://steamcommunity.com/dev/apikey
wsapikey=""
wscollectionid=""
-## Custom Start Parameters
-# Default -disableluarefresh, disables lua autorefresh reducing server lag. Auto refresh only useful for developers.
-customparms="-disableluarefresh"
-
## Game Server Login Token (GSLT): Optional
# GSLT can be used for running a public server.
# More info: https://docs.linuxgsm.com/steamcmd/gslt
gslt=""
-## Server Start Command | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
-fn_parms(){
-parms="-game garrysmod -strictportbind -ip ${ip} -port ${port} -tickrate ${tickrate} +host_workshop_collection ${wscollectionid} -authkey ${wsapikey} +clientport ${clientport} +tv_port ${sourcetvport} +gamemode ${gamemode} +map ${defaultmap} +sv_setsteamaccount ${gslt} +servercfgfile ${servercfg} -maxplayers ${maxplayers} ${customparms}"
-}
+## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
+startparameters="-game garrysmod -strictportbind -ip ${ip} -port ${port} -tickrate ${tickrate} +host_workshop_collection ${wscollectionid} -authkey ${wsapikey} +clientport ${clientport} +tv_port ${sourcetvport} +gamemode ${gamemode} +map ${defaultmap} +sv_setsteamaccount ${gslt} +servercfgfile ${servercfg} -maxplayers ${maxplayers} -disableluarefresh"
#### LinuxGSM Settings ####
@@ -53,8 +47,6 @@ displayip=""
# More info | https://docs.linuxgsm.com/alerts#more-info
postalert="off"
-postdays="7"
-posttarget="https://termbin.com"
# Discord Alerts | https://docs.linuxgsm.com/alerts/discord
discordalert="off"
@@ -72,6 +64,7 @@ iftttevent="linuxgsm_alert"
# Mailgun Email Alerts | https://docs.linuxgsm.com/alerts/mailgun
mailgunalert="off"
+mailgunapiregion="us"
mailguntoken="accesstoken"
mailgundomain="example.com"
mailgunemailfrom="alert@example.com"
@@ -85,15 +78,20 @@ channeltag=""
# Pushover Alerts | https://docs.linuxgsm.com/alerts/pushover
pushoveralert="off"
pushovertoken="accesstoken"
+pushoveruserkey="userkey"
+
+# Rocket.Chat Alerts | https://docs.linuxgsm.com/alerts/rocket.chat
+rocketchatalert="off"
+rocketchatwebhook="webhook"
+rocketchattoken=""
# Slack Alerts | https://docs.linuxgsm.com/alerts/slack
slackalert="off"
slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
-# You can add a custom cURL string eg proxy (useful in Russia) or else in "curlcustomstring".
-# like a "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help", if you not need
-# any custom string in curl - simple ignore this parameter.
+# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
@@ -126,8 +124,10 @@ sleeptime="0.5"
## SteamCMD Settings | https://docs.linuxgsm.com/steamcmd
# Server appid
appid="4020"
+steamcmdforcewindows="no"
# SteamCMD Branch | https://docs.linuxgsm.com/steamcmd/branch
branch=""
+betapassword=""
# Master Server | https://docs.linuxgsm.com/steamcmd/steam-master-server
steammaster="true"
@@ -142,17 +142,22 @@ steammaster="true"
# 8: 7 Days to Die
# 9: GoldSrc
# 10: Avorion
+# 11: end
stopmode="3"
## Query mode
# 1: session only
-# 2: gamedig + gsquery
+# 2: gamedig (gsquery fallback)
# 3: gamedig
# 4: gsquery
# 5: tcp
querymode="2"
querytype="protocol-valve"
+## Console type
+consoleverbose="yes"
+consoleinteract="yes"
+
## Game Server Details
# Do not edit
gamename="Garry's Mod"
diff --git a/lgsm/config-default/config-lgsm/hl2dmserver/_default.cfg b/lgsm/config-default/config-lgsm/hl2dmserver/_default.cfg
index 22c3da329..a2c36586d 100644
--- a/lgsm/config-default/config-lgsm/hl2dmserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/hl2dmserver/_default.cfg
@@ -8,7 +8,7 @@
#### Game Server Settings ####
-## Server Start Settings | https://docs.linuxgsm.com/configuration/start-parameters
+## Predefined Parameters | https://docs.linuxgsm.com/configuration/start-parameters
ip="0.0.0.0"
port="27015"
clientport="27005"
@@ -16,10 +16,8 @@ sourcetvport="27020"
defaultmap="dm_lockdown"
maxplayers="16"
-## Server Start Command | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
-fn_parms(){
-parms="-game hl2mp -strictportbind -ip ${ip} -port ${port} +clientport ${clientport} +tv_port ${sourcetvport} +map ${defaultmap} +servercfgfile ${servercfg} -maxplayers ${maxplayers}"
-}
+## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
+startparameters="-game hl2mp -strictportbind -ip ${ip} -port ${port} +clientport ${clientport} +tv_port ${sourcetvport} +map ${defaultmap} +servercfgfile ${servercfg} -maxplayers ${maxplayers}"
#### LinuxGSM Settings ####
@@ -37,8 +35,6 @@ displayip=""
# More info | https://docs.linuxgsm.com/alerts#more-info
postalert="off"
-postdays="7"
-posttarget="https://termbin.com"
# Discord Alerts | https://docs.linuxgsm.com/alerts/discord
discordalert="off"
@@ -56,6 +52,7 @@ iftttevent="linuxgsm_alert"
# Mailgun Email Alerts | https://docs.linuxgsm.com/alerts/mailgun
mailgunalert="off"
+mailgunapiregion="us"
mailguntoken="accesstoken"
mailgundomain="example.com"
mailgunemailfrom="alert@example.com"
@@ -69,15 +66,20 @@ channeltag=""
# Pushover Alerts | https://docs.linuxgsm.com/alerts/pushover
pushoveralert="off"
pushovertoken="accesstoken"
+pushoveruserkey="userkey"
+
+# Rocket.Chat Alerts | https://docs.linuxgsm.com/alerts/rocket.chat
+rocketchatalert="off"
+rocketchatwebhook="webhook"
+rocketchattoken=""
# Slack Alerts | https://docs.linuxgsm.com/alerts/slack
slackalert="off"
slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
-# You can add a custom cURL string eg proxy (useful in Russia) or else in "curlcustomstring".
-# like a "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help", if you not need
-# any custom string in curl - simple ignore this parameter.
+# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
@@ -110,8 +112,10 @@ sleeptime="0.5"
## SteamCMD Settings | https://docs.linuxgsm.com/steamcmd
# Server appid
appid="232370"
+steamcmdforcewindows="no"
# SteamCMD Branch | https://docs.linuxgsm.com/steamcmd/branch
branch=""
+betapassword=""
# Master Server | https://docs.linuxgsm.com/steamcmd/steam-master-server
steammaster="true"
@@ -126,17 +130,22 @@ steammaster="true"
# 8: 7 Days to Die
# 9: GoldSrc
# 10: Avorion
+# 11: end
stopmode="3"
## Query mode
# 1: session only
-# 2: gamedig + gsquery
+# 2: gamedig (gsquery fallback)
# 3: gamedig
# 4: gsquery
# 5: tcp
querymode="2"
querytype="protocol-valve"
+## Console type
+consoleverbose="yes"
+consoleinteract="yes"
+
## Game Server Details
# Do not edit
gamename="Half Life 2: Deathmatch"
diff --git a/lgsm/config-default/config-lgsm/hldmserver/_default.cfg b/lgsm/config-default/config-lgsm/hldmserver/_default.cfg
index 1a17fdd91..4543b9e2b 100644
--- a/lgsm/config-default/config-lgsm/hldmserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/hldmserver/_default.cfg
@@ -8,17 +8,15 @@
#### Game Server Settings ####
-## Server Start Settings | https://docs.linuxgsm.com/configuration/start-parameters
+## Predefined Parameters | https://docs.linuxgsm.com/configuration/start-parameters
ip="0.0.0.0"
port="27015"
clientport="27005"
defaultmap="crossfire"
maxplayers="16"
-## Server Start Command | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
-fn_parms(){
-parms="-game valve -strictportbind +ip ${ip} -port ${port} +clientport ${clientport} +map ${defaultmap} +servercfgfile ${servercfg} -maxplayers ${maxplayers}"
-}
+## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
+startparameters="-game valve -strictportbind +ip ${ip} -port ${port} +clientport ${clientport} +map ${defaultmap} +servercfgfile ${servercfg} -maxplayers ${maxplayers}"
#### LinuxGSM Settings ####
@@ -36,8 +34,6 @@ displayip=""
# More info | https://docs.linuxgsm.com/alerts#more-info
postalert="off"
-postdays="7"
-posttarget="https://termbin.com"
# Discord Alerts | https://docs.linuxgsm.com/alerts/discord
discordalert="off"
@@ -55,6 +51,7 @@ iftttevent="linuxgsm_alert"
# Mailgun Email Alerts | https://docs.linuxgsm.com/alerts/mailgun
mailgunalert="off"
+mailgunapiregion="us"
mailguntoken="accesstoken"
mailgundomain="example.com"
mailgunemailfrom="alert@example.com"
@@ -68,15 +65,20 @@ channeltag=""
# Pushover Alerts | https://docs.linuxgsm.com/alerts/pushover
pushoveralert="off"
pushovertoken="accesstoken"
+pushoveruserkey="userkey"
+
+# Rocket.Chat Alerts | https://docs.linuxgsm.com/alerts/rocket.chat
+rocketchatalert="off"
+rocketchatwebhook="webhook"
+rocketchattoken=""
# Slack Alerts | https://docs.linuxgsm.com/alerts/slack
slackalert="off"
slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
-# You can add a custom cURL string eg proxy (useful in Russia) or else in "curlcustomstring".
-# like a "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help", if you not need
-# any custom string in curl - simple ignore this parameter.
+# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
@@ -109,8 +111,10 @@ sleeptime="0.5"
## SteamCMD Settings | https://docs.linuxgsm.com/steamcmd
# Server appid
appid="90"
+steamcmdforcewindows="no"
# SteamCMD Branch | https://docs.linuxgsm.com/steamcmd/branch
branch=""
+betapassword=""
# Master Server | https://docs.linuxgsm.com/steamcmd/steam-master-server
steammaster="true"
@@ -125,17 +129,22 @@ steammaster="true"
# 8: 7 Days to Die
# 9: GoldSrc
# 10: Avorion
+# 11: end
stopmode="9"
## Query mode
# 1: session only
-# 2: gamedig + gsquery
+# 2: gamedig (gsquery fallback)
# 3: gamedig
# 4: gsquery
# 5: tcp
querymode="2"
querytype="protocol-valve"
+## Console type
+consoleverbose="yes"
+consoleinteract="yes"
+
## Game Server Details
# Do not edit
gamename="Half Life: Deathmatch"
diff --git a/lgsm/config-default/config-lgsm/hldmsserver/_default.cfg b/lgsm/config-default/config-lgsm/hldmsserver/_default.cfg
index 0036ec7e1..f4d8ee17b 100644
--- a/lgsm/config-default/config-lgsm/hldmsserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/hldmsserver/_default.cfg
@@ -8,7 +8,7 @@
#### Game Server Settings ####
-## Server Start Settings | https://docs.linuxgsm.com/configuration/start-parameters
+## Predefined Parameters | https://docs.linuxgsm.com/configuration/start-parameters
ip="0.0.0.0"
port="27015"
clientport="27005"
@@ -16,10 +16,8 @@ sourcetvport="27020"
defaultmap="crossfire"
maxplayers="16"
-## Server Start Command | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
-fn_parms(){
-parms="-game hl1mp -strictportbind -ip ${ip} -port ${port} +clientport ${clientport} +tv_port ${sourcetvport} +map ${defaultmap} +servercfgfile ${servercfg} -maxplayers ${maxplayers}"
-}
+## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
+startparameters="-game hl1mp -strictportbind -ip ${ip} -port ${port} +clientport ${clientport} +tv_port ${sourcetvport} +map ${defaultmap} +servercfgfile ${servercfg} -maxplayers ${maxplayers}"
#### LinuxGSM Settings ####
@@ -37,8 +35,6 @@ displayip=""
# More info | https://docs.linuxgsm.com/alerts#more-info
postalert="off"
-postdays="7"
-posttarget="https://termbin.com"
# Discord Alerts | https://docs.linuxgsm.com/alerts/discord
discordalert="off"
@@ -56,6 +52,7 @@ iftttevent="linuxgsm_alert"
# Mailgun Email Alerts | https://docs.linuxgsm.com/alerts/mailgun
mailgunalert="off"
+mailgunapiregion="us"
mailguntoken="accesstoken"
mailgundomain="example.com"
mailgunemailfrom="alert@example.com"
@@ -69,15 +66,20 @@ channeltag=""
# Pushover Alerts | https://docs.linuxgsm.com/alerts/pushover
pushoveralert="off"
pushovertoken="accesstoken"
+pushoveruserkey="userkey"
+
+# Rocket.Chat Alerts | https://docs.linuxgsm.com/alerts/rocket.chat
+rocketchatalert="off"
+rocketchatwebhook="webhook"
+rocketchattoken=""
# Slack Alerts | https://docs.linuxgsm.com/alerts/slack
slackalert="off"
slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
-# You can add a custom cURL string eg proxy (useful in Russia) or else in "curlcustomstring".
-# like a "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help", if you not need
-# any custom string in curl - simple ignore this parameter.
+# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
@@ -110,8 +112,10 @@ sleeptime="0.5"
## SteamCMD Settings | https://docs.linuxgsm.com/steamcmd
# Server appid
appid="255470"
+steamcmdforcewindows="no"
# SteamCMD Branch | https://docs.linuxgsm.com/steamcmd/branch
branch=""
+betapassword=""
# Master Server | https://docs.linuxgsm.com/steamcmd/steam-master-server
steammaster="true"
@@ -126,17 +130,22 @@ steammaster="true"
# 8: 7 Days to Die
# 9: GoldSrc
# 10: Avorion
+# 11: end
stopmode="3"
## Query mode
# 1: session only
-# 2: gamedig + gsquery
+# 2: gamedig (gsquery fallback)
# 3: gamedig
# 4: gsquery
# 5: tcp
querymode="2"
querytype="protocol-valve"
+## Console type
+consoleverbose="yes"
+consoleinteract="yes"
+
## Game Server Details
# Do not edit
gamename="Half-Life Deathmatch: Source"
diff --git a/lgsm/config-default/config-lgsm/hwserver/_default.cfg b/lgsm/config-default/config-lgsm/hwserver/_default.cfg
index 426d2d250..97de06bcb 100644
--- a/lgsm/config-default/config-lgsm/hwserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/hwserver/_default.cfg
@@ -8,17 +8,17 @@
#### Game Server Settings ####
-## Server Start Settings | https://docs.linuxgsm.com/configuration/start-parameters
+## Predefined Parameters | https://docs.linuxgsm.com/configuration/start-parameters
servername="LinuxGSM Server"
ip="0.0.0.0"
port="12871"
queryport="12881"
maxplayers="20"
-defaultmap="" #Optional
-creativemode="0" #Free Build: creativemode="1"
+defaultmap="" # Optional
+creativemode="0" # Free Build: creativemode="1"
gamelog="gamelog.txt"
-## Adding admins using STEAMID64
+## Add admins using STEAMID64
# Example : addadmin 012345678901234567; addadmin 987654321098765432
admins=""
@@ -26,11 +26,9 @@ admins=""
# Rollback server state (remove after start command)
loadsave=""
-## Server Start Command | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
+## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
# Edit with care | http://hurtworld.wikia.com/wiki/Hosting_A_Server
-fn_parms(){
-parms="-batchmode -nographics -exec \"host ${port} ${defaultmap} ${loadsave};queryport ${queryport};maxplayers ${maxplayers};servername ${servername};creativemode ${creativemode};${admins}\" -logfile \"${gamelog}\" "
-}
+startparameters="-batchmode -nographics -exec \"host ${port} ${defaultmap} ${loadsave};queryport ${queryport};maxplayers ${maxplayers};servername ${servername};creativemode ${creativemode};${admins}\""
#### LinuxGSM Settings ####
@@ -48,8 +46,6 @@ displayip=""
# More info | https://docs.linuxgsm.com/alerts#more-info
postalert="off"
-postdays="7"
-posttarget="https://termbin.com"
# Discord Alerts | https://docs.linuxgsm.com/alerts/discord
discordalert="off"
@@ -67,6 +63,7 @@ iftttevent="linuxgsm_alert"
# Mailgun Email Alerts | https://docs.linuxgsm.com/alerts/mailgun
mailgunalert="off"
+mailgunapiregion="us"
mailguntoken="accesstoken"
mailgundomain="example.com"
mailgunemailfrom="alert@example.com"
@@ -80,15 +77,20 @@ channeltag=""
# Pushover Alerts | https://docs.linuxgsm.com/alerts/pushover
pushoveralert="off"
pushovertoken="accesstoken"
+pushoveruserkey="userkey"
+
+# Rocket.Chat Alerts | https://docs.linuxgsm.com/alerts/rocket.chat
+rocketchatalert="off"
+rocketchatwebhook="webhook"
+rocketchattoken=""
# Slack Alerts | https://docs.linuxgsm.com/alerts/slack
slackalert="off"
slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
-# You can add a custom cURL string eg proxy (useful in Russia) or else in "curlcustomstring".
-# like a "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help", if you not need
-# any custom string in curl - simple ignore this parameter.
+# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
@@ -121,8 +123,10 @@ sleeptime="0.5"
## SteamCMD Settings | https://docs.linuxgsm.com/steamcmd
# Server appid
appid="405100"
+steamcmdforcewindows="no"
# SteamCMD Branch | https://docs.linuxgsm.com/steamcmd/branch
branch=""
+betapassword=""
# Master Server | https://docs.linuxgsm.com/steamcmd/steam-master-server
steammaster="false"
@@ -137,17 +141,22 @@ steammaster="false"
# 8: 7 Days to Die
# 9: GoldSrc
# 10: Avorion
+# 11: end
stopmode="2"
## Query mode
# 1: session only
-# 2: gamedig + gsquery
+# 2: gamedig (gsquery fallback)
# 3: gamedig
# 4: gsquery
# 5: tcp
querymode="2"
querytype="protocol-valve"
+## Console type
+consoleverbose="no"
+consoleinteract="no"
+
## Game Server Details
# Do not edit
gamename="Hurtworld"
@@ -160,7 +169,7 @@ glibc="2.15"
## Game Server Directories
systemdir="${serverfiles}"
executabledir="${serverfiles}"
-executable=$([ "$(uname -m)" == "x86_64" ] && echo -e "./Hurtworld.x86_64" || echo -e "./Hurtworld.x86")
+executable="./Hurtworld.x86_64"
## Backup Directory
backupdir="${lgsmdir}/backup"
diff --git a/lgsm/config-default/config-lgsm/insserver/_default.cfg b/lgsm/config-default/config-lgsm/insserver/_default.cfg
index 98817e908..6231501df 100644
--- a/lgsm/config-default/config-lgsm/insserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/insserver/_default.cfg
@@ -8,7 +8,7 @@
#### Game Server Settings ####
-## Server Start Settings | https://docs.linuxgsm.com/configuration/start-parameters
+## Predefined Parameters | https://docs.linuxgsm.com/configuration/start-parameters
ip="0.0.0.0"
port="27015"
clientport="27005"
@@ -22,10 +22,8 @@ tickrate="64"
# More info: https://docs.linuxgsm.com/steamcmd/gslt
gslt=""
-## Server Start Command | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
-fn_parms(){
-parms="-game insurgency -strictportbind -ip ${ip} -port ${port} +clientport ${clientport} +tv_port ${sourcetvport} -tickrate ${tickrate} +sv_setsteamaccount ${gslt} +map ${defaultmap} +servercfgfile ${servercfg} -maxplayers ${maxplayers} -workshop -norestart"
-}
+## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
+startparameters="-game insurgency -strictportbind -ip ${ip} -port ${port} +clientport ${clientport} +tv_port ${sourcetvport} -tickrate ${tickrate} +sv_setsteamaccount ${gslt} +map ${defaultmap} +servercfgfile ${servercfg} -maxplayers ${maxplayers} -workshop -norestart"
#### LinuxGSM Settings ####
@@ -43,8 +41,6 @@ displayip=""
# More info | https://docs.linuxgsm.com/alerts#more-info
postalert="off"
-postdays="7"
-posttarget="https://termbin.com"
# Discord Alerts | https://docs.linuxgsm.com/alerts/discord
discordalert="off"
@@ -62,6 +58,7 @@ iftttevent="linuxgsm_alert"
# Mailgun Email Alerts | https://docs.linuxgsm.com/alerts/mailgun
mailgunalert="off"
+mailgunapiregion="us"
mailguntoken="accesstoken"
mailgundomain="example.com"
mailgunemailfrom="alert@example.com"
@@ -75,15 +72,20 @@ channeltag=""
# Pushover Alerts | https://docs.linuxgsm.com/alerts/pushover
pushoveralert="off"
pushovertoken="accesstoken"
+pushoveruserkey="userkey"
+
+# Rocket.Chat Alerts | https://docs.linuxgsm.com/alerts/rocket.chat
+rocketchatalert="off"
+rocketchatwebhook="webhook"
+rocketchattoken=""
# Slack Alerts | https://docs.linuxgsm.com/alerts/slack
slackalert="off"
slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
-# You can add a custom cURL string eg proxy (useful in Russia) or else in "curlcustomstring".
-# like a "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help", if you not need
-# any custom string in curl - simple ignore this parameter.
+# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
@@ -116,8 +118,10 @@ sleeptime="0.5"
## SteamCMD Settings | https://docs.linuxgsm.com/steamcmd
# Server appid
appid="237410"
+steamcmdforcewindows="no"
# SteamCMD Branch | https://docs.linuxgsm.com/steamcmd/branch
branch=""
+betapassword=""
# Master Server | https://docs.linuxgsm.com/steamcmd/steam-master-server
steammaster="false"
@@ -132,17 +136,22 @@ steammaster="false"
# 8: 7 Days to Die
# 9: GoldSrc
# 10: Avorion
+# 11: end
stopmode="3"
## Query mode
# 1: session only
-# 2: gamedig + gsquery
+# 2: gamedig (gsquery fallback)
# 3: gamedig
# 4: gsquery
# 5: tcp
querymode="2"
querytype="protocol-valve"
+## Console type
+consoleverbose="yes"
+consoleinteract="yes"
+
## Game Server Details
# Do not edit
gamename="Insurgency"
diff --git a/lgsm/config-default/config-lgsm/inssserver/_default.cfg b/lgsm/config-default/config-lgsm/inssserver/_default.cfg
index 605a95fbb..b89d446ba 100644
--- a/lgsm/config-default/config-lgsm/inssserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/inssserver/_default.cfg
@@ -8,25 +8,19 @@
#### Game Server Settings ####
-## Server Start Settings | https://docs.linuxgsm.com/configuration/start-parameters
+## Predefined Parameters | https://docs.linuxgsm.com/configuration/start-parameters
ip="0.0.0.0"
port="27102"
queryport="27131"
servername="LinuxGSM Server"
-serverpassword=""
defaultmap="Canyon"
defaultscenario="Scenario_Crossing_Push_Security"
maxplayers="28"
-## Server Start Command | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
-fn_parms(){
- # Allows serverpassword to work with parameters
- if [ "${serverpassword}" != "NOT SET" ]; then
- parms="${defaultmap}?Scenario=${defaultscenario}?MaxPlayers=${maxplayers}?Port=${port}?QueryPort=${queryport}?password="${serverpassword}" -hostname='${servername}' -log"
- else
- parms="${defaultmap}?Scenario=${defaultscenario}?MaxPlayers=${maxplayers}?Port=${port}?QueryPort=${queryport} -hostname='${servername}' -log"
- fi
-}
+## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
+## Parameter Docs | https://sandstorm-support.newworldinteractive.com/hc/en-us/articles/360049211072-Server-Admin-Guide
+# To allows serverpassword to work with parameters edit as follows
+startparameters="${defaultmap}?Scenario=${defaultscenario}?MaxPlayers=${maxplayers} -Port=${port} -QueryPort=${queryport} -hostname='${servername}' -log"
#### LinuxGSM Settings ####
@@ -44,8 +38,6 @@ displayip=""
# More info | https://docs.linuxgsm.com/alerts#more-info
postalert="off"
-postdays="7"
-posttarget="https://termbin.com"
# Discord Alerts | https://docs.linuxgsm.com/alerts/discord
discordalert="off"
@@ -63,6 +55,7 @@ iftttevent="linuxgsm_alert"
# Mailgun Email Alerts | https://docs.linuxgsm.com/alerts/mailgun
mailgunalert="off"
+mailgunapiregion="us"
mailguntoken="accesstoken"
mailgundomain="example.com"
mailgunemailfrom="alert@example.com"
@@ -76,15 +69,20 @@ channeltag=""
# Pushover Alerts | https://docs.linuxgsm.com/alerts/pushover
pushoveralert="off"
pushovertoken="accesstoken"
+pushoveruserkey="userkey"
+
+# Rocket.Chat Alerts | https://docs.linuxgsm.com/alerts/rocket.chat
+rocketchatalert="off"
+rocketchatwebhook="webhook"
+rocketchattoken=""
# Slack Alerts | https://docs.linuxgsm.com/alerts/slack
slackalert="off"
slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
-# You can add a custom cURL string eg proxy (useful in Russia) or else in "curlcustomstring".
-# like a "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help", if you not need
-# any custom string in curl - simple ignore this parameter.
+# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
@@ -117,8 +115,10 @@ sleeptime="0.5"
## SteamCMD Settings | https://docs.linuxgsm.com/steamcmd
# Server appid
appid="581330"
+steamcmdforcewindows="no"
# SteamCMD Branch | https://docs.linuxgsm.com/steamcmd/branch
branch=""
+betapassword=""
# Master Server | https://docs.linuxgsm.com/steamcmd/steam-master-server
steammaster="false"
@@ -133,17 +133,22 @@ steammaster="false"
# 8: 7 Days to Die
# 9: GoldSrc
# 10: Avorion
+# 11: end
stopmode="2"
## Query mode
# 1: session only
-# 2: gamedig + gsquery
+# 2: gamedig (gsquery fallback)
# 3: gamedig
# 4: gsquery
# 5: tcp
querymode="2"
querytype="protocol-valve"
+## Console type
+consoleverbose="yes"
+consoleinteract="no"
+
## Game Server Details
# Do not edit
gamename="Insurgency: Sandstorm"
@@ -160,7 +165,6 @@ executable="./InsurgencyServer-Linux-Shipping"
servercfgdir="${systemdir}/Saved/Config/LinuxServer"
servercfg="Game.ini"
servercfgdefault="Game.ini"
-servercfgfullpath="${servercfgdir}/${servercfg}"
## Backup Directory
backupdir="${lgsmdir}/backup"
diff --git a/lgsm/config-default/config-lgsm/iosserver/_default.cfg b/lgsm/config-default/config-lgsm/iosserver/_default.cfg
index acf13f368..f02f9d903 100644
--- a/lgsm/config-default/config-lgsm/iosserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/iosserver/_default.cfg
@@ -8,7 +8,7 @@
#### Game Server Settings ####
-## Server Start Settings | https://docs.linuxgsm.com/configuration/start-parameters
+## Predefined Parameters | https://docs.linuxgsm.com/configuration/start-parameters
ip="0.0.0.0"
port="27015"
clientport="27005"
@@ -16,10 +16,8 @@ sourcetvport="27020"
defaultmap="8v8_vienna"
maxplayers="32"
-## Server Start Command | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
-fn_parms(){
-parms="-game iosoccer -strictportbind -ip ${ip} -port ${port} +clientport ${clientport} +tv_port ${sourcetvport} +map ${defaultmap} +servercfgfile ${servercfg} -maxplayers ${maxplayers}"
-}
+## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
+startparameters="-game iosoccer -strictportbind -ip ${ip} -port ${port} +clientport ${clientport} +tv_port ${sourcetvport} +map ${defaultmap} +servercfgfile ${servercfg} -maxplayers ${maxplayers}"
#### LinuxGSM Settings ####
@@ -37,8 +35,6 @@ displayip=""
# More info | https://docs.linuxgsm.com/alerts#more-info
postalert="off"
-postdays="7"
-posttarget="https://termbin.com"
# Discord Alerts | https://docs.linuxgsm.com/alerts/discord
discordalert="off"
@@ -56,6 +52,7 @@ iftttevent="linuxgsm_alert"
# Mailgun Email Alerts | https://docs.linuxgsm.com/alerts/mailgun
mailgunalert="off"
+mailgunapiregion="us"
mailguntoken="accesstoken"
mailgundomain="example.com"
mailgunemailfrom="alert@example.com"
@@ -69,15 +66,20 @@ channeltag=""
# Pushover Alerts | https://docs.linuxgsm.com/alerts/pushover
pushoveralert="off"
pushovertoken="accesstoken"
+pushoveruserkey="userkey"
+
+# Rocket.Chat Alerts | https://docs.linuxgsm.com/alerts/rocket.chat
+rocketchatalert="off"
+rocketchatwebhook="webhook"
+rocketchattoken=""
# Slack Alerts | https://docs.linuxgsm.com/alerts/slack
slackalert="off"
slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
-# You can add a custom cURL string eg proxy (useful in Russia) or else in "curlcustomstring".
-# like a "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help", if you not need
-# any custom string in curl - simple ignore this parameter.
+# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
@@ -110,8 +112,10 @@ sleeptime="0.5"
## SteamCMD Settings | https://docs.linuxgsm.com/steamcmd
# Server appid
appid="673990"
+steamcmdforcewindows="no"
# SteamCMD Branch | https://docs.linuxgsm.com/steamcmd/branch
branch=""
+betapassword=""
# Master Server | https://docs.linuxgsm.com/steamcmd/steam-master-server
steammaster="false"
@@ -126,17 +130,22 @@ steammaster="false"
# 8: 7 Days to Die
# 9: GoldSrc
# 10: Avorion
+# 11: end
stopmode="3"
## Query mode
# 1: session only
-# 2: gamedig + gsquery
+# 2: gamedig (gsquery fallback)
# 3: gamedig
# 4: gsquery
# 5: tcp
querymode="2"
querytype="protocol-valve"
+## Console type
+consoleverbose="yes"
+consoleinteract="yes"
+
## Game Server Details
# Do not edit
gamename="IOSoccer"
diff --git a/lgsm/config-default/config-lgsm/jc2server/_default.cfg b/lgsm/config-default/config-lgsm/jc2server/_default.cfg
index 81cd0ff5b..ba6f19e96 100644
--- a/lgsm/config-default/config-lgsm/jc2server/_default.cfg
+++ b/lgsm/config-default/config-lgsm/jc2server/_default.cfg
@@ -8,10 +8,8 @@
#### Game Server Settings ####
-## Server Start Command | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
-fn_parms(){
-parms=""
-}
+## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
+startparameters=""
#### LinuxGSM Settings ####
@@ -29,8 +27,6 @@ displayip=""
# More info | https://docs.linuxgsm.com/alerts#more-info
postalert="off"
-postdays="7"
-posttarget="https://termbin.com"
# Discord Alerts | https://docs.linuxgsm.com/alerts/discord
discordalert="off"
@@ -48,6 +44,7 @@ iftttevent="linuxgsm_alert"
# Mailgun Email Alerts | https://docs.linuxgsm.com/alerts/mailgun
mailgunalert="off"
+mailgunapiregion="us"
mailguntoken="accesstoken"
mailgundomain="example.com"
mailgunemailfrom="alert@example.com"
@@ -61,15 +58,27 @@ channeltag=""
# Pushover Alerts | https://docs.linuxgsm.com/alerts/pushover
pushoveralert="off"
pushovertoken="accesstoken"
+pushoveruserkey="userkey"
+
+# Rocket.Chat Alerts | https://docs.linuxgsm.com/alerts/rocket.chat
+rocketchatalert="off"
+rocketchatwebhook="webhook"
+rocketchattoken=""
+
+# Sendgrid Email Alerts | https://docs.linuxgsm.com/alerts/sendgrid
+sendgridalert="off"
+sendgridtoken="accesstoken"
+sendgriddomain="example.com"
+sendgridemailfrom="alert@example.com"
+sendgridemail="email@myemail.com"
# Slack Alerts | https://docs.linuxgsm.com/alerts/slack
slackalert="off"
slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
-# You can add a custom cURL string eg proxy (useful in Russia) or else in "curlcustomstring".
-# like a "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help", if you not need
-# any custom string in curl - simple ignore this parameter.
+# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
@@ -102,8 +111,10 @@ sleeptime="0.5"
## SteamCMD Settings | https://docs.linuxgsm.com/steamcmd
# Server appid
appid="261140"
+steamcmdforcewindows="no"
# SteamCMD Branch | https://docs.linuxgsm.com/steamcmd/branch
branch=""
+betapassword=""
# Master Server | https://docs.linuxgsm.com/steamcmd/steam-master-server
steammaster="true"
@@ -118,17 +129,22 @@ steammaster="true"
# 8: 7 Days to Die
# 9: GoldSrc
# 10: Avorion
+# 11: end
stopmode="2"
## Query mode
# 1: session only
-# 2: gamedig + gsquery
+# 2: gamedig (gsquery fallback)
# 3: gamedig
# 4: gsquery
# 5: tcp
querymode="2"
querytype="jc2mp"
+## Console type
+consoleverbose="yes"
+consoleinteract="no"
+
## Game Server Details
# Do not edit
gamename="Just Cause 2"
diff --git a/lgsm/config-default/config-lgsm/jc3server/_default.cfg b/lgsm/config-default/config-lgsm/jc3server/_default.cfg
index e3793f805..b671533de 100644
--- a/lgsm/config-default/config-lgsm/jc3server/_default.cfg
+++ b/lgsm/config-default/config-lgsm/jc3server/_default.cfg
@@ -8,10 +8,8 @@
#### Game Server Settings ####
-## Server Start Command | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
-fn_parms(){
-parms=""
-}
+## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
+startparameters=""
#### LinuxGSM Settings ####
@@ -29,8 +27,6 @@ displayip=""
# More info | https://docs.linuxgsm.com/alerts#more-info
postalert="off"
-postdays="7"
-posttarget="https://termbin.com"
# Discord Alerts | https://docs.linuxgsm.com/alerts/discord
discordalert="off"
@@ -48,6 +44,7 @@ iftttevent="linuxgsm_alert"
# Mailgun Email Alerts | https://docs.linuxgsm.com/alerts/mailgun
mailgunalert="off"
+mailgunapiregion="us"
mailguntoken="accesstoken"
mailgundomain="example.com"
mailgunemailfrom="alert@example.com"
@@ -61,15 +58,20 @@ channeltag=""
# Pushover Alerts | https://docs.linuxgsm.com/alerts/pushover
pushoveralert="off"
pushovertoken="accesstoken"
+pushoveruserkey="userkey"
+
+# Rocket.Chat Alerts | https://docs.linuxgsm.com/alerts/rocket.chat
+rocketchatalert="off"
+rocketchatwebhook="webhook"
+rocketchattoken=""
# Slack Alerts | https://docs.linuxgsm.com/alerts/slack
slackalert="off"
slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
-# You can add a custom cURL string eg proxy (useful in Russia) or else in "curlcustomstring".
-# like a "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help", if you not need
-# any custom string in curl - simple ignore this parameter.
+# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
@@ -102,8 +104,10 @@ sleeptime="0.5"
## SteamCMD Settings | https://docs.linuxgsm.com/steamcmd
# Server appid
appid="619960"
+steamcmdforcewindows="no"
# SteamCMD Branch | https://docs.linuxgsm.com/steamcmd/branch
branch=""
+betapassword=""
# Master Server | https://docs.linuxgsm.com/steamcmd/steam-master-server
steammaster="false"
@@ -118,17 +122,22 @@ steammaster="false"
# 8: 7 Days to Die
# 9: GoldSrc
# 10: Avorion
+# 11: end
stopmode="2"
## Query mode
# 1: session only
-# 2: gamedig + gsquery
+# 2: gamedig (gsquery fallback)
# 3: gamedig
# 4: gsquery
# 5: tcp
querymode="2"
querytype="protocol-valve"
+## Console type
+consoleverbose="yes"
+consoleinteract="yes"
+
## Game Server Details
# Do not edit
gamename="Just Cause 3"
diff --git a/lgsm/config-default/config-lgsm/jk2server/_default.cfg b/lgsm/config-default/config-lgsm/jk2server/_default.cfg
new file mode 100644
index 000000000..fdb3317e8
--- /dev/null
+++ b/lgsm/config-default/config-lgsm/jk2server/_default.cfg
@@ -0,0 +1,175 @@
+##################################
+######## Default Settings ########
+##################################
+# DO NOT EDIT WILL BE OVERWRITTEN!
+# Copy settings from here and use them in either
+# common.cfg - applies settings to every instance
+# [instance].cfg - applies settings to a specific instance
+
+#### Server Settings ####
+
+## SteamCMD Login | https://docs.linuxgsm.com/steamcmd#steamcmd-login
+steamuser="username"
+steampass='password'
+
+## Server Start Settings | https://docs.linuxgsm.com/configuration/start-parameters
+ip="0.0.0.0"
+port="27960"
+defaultmap="ffa_bespin"
+
+## Server Start Command | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
+startparameters="+set sv_punkbuster 0 +set fs_basepath ${serverfiles} +set net_ip ${ip} +set net_port ${port} +exec ${servercfg} +map ${defaultmap}"
+
+#### LinuxGSM Settings ####
+
+## Notification Alerts
+# (on|off)
+
+# Display IP | https://docs.linuxgsm.com/alerts#display-ip
+displayip=""
+
+# More info | https://docs.linuxgsm.com/alerts#more-info
+postalert="off"
+
+# Discord Alerts | https://docs.linuxgsm.com/alerts/discord
+discordalert="off"
+discordwebhook="webhook"
+
+# Slack Alerts | https://docs.linuxgsm.com/alerts/slack
+slackalert="off"
+slackwebhook="webhook"
+
+# Email Alerts | https://docs.linuxgsm.com/alerts/email
+emailalert="off"
+email="email@example.com"
+emailfrom=""
+
+# IFTTT Alerts | https://docs.linuxgsm.com/alerts/ifttt
+iftttalert="off"
+ifttttoken="accesstoken"
+iftttevent="linuxgsm_alert"
+
+# Mailgun Email Alerts | https://docs.linuxgsm.com/alerts/mailgun
+mailgunalert="off"
+mailgunapiregion="us"
+mailguntoken="accesstoken"
+mailgundomain="example.com"
+mailgunemailfrom="alert@example.com"
+mailgunemail="email@myemail.com"
+
+# Pushbullet Alerts | https://docs.linuxgsm.com/alerts/pushbullet
+pushbulletalert="off"
+pushbullettoken="accesstoken"
+channeltag=""
+
+# Pushover Alerts | https://docs.linuxgsm.com/alerts/pushover
+pushoveralert="off"
+pushovertoken="accesstoken"
+pushoveruserkey="userkey"
+
+# Rocket.Chat Alerts | https://docs.linuxgsm.com/alerts/rocket.chat
+rocketchatalert="off"
+rocketchatwebhook="webhook"
+rocketchattoken=""
+
+# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
+# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
+telegramalert="off"
+telegramtoken="accesstoken"
+telegramchatid=""
+curlcustomstring=""
+
+## Updating | https://docs.linuxgsm.com/commands/update
+updateonstart="off"
+
+## Backup | https://docs.linuxgsm.com/commands/backup
+maxbackups="4"
+maxbackupdays="30"
+stoponbackup="on"
+
+## Logging | https://docs.linuxgsm.com/features/logging
+consolelogging="on"
+logdays="7"
+
+## Monitor | https://docs.linuxgsm.com/commands/monitor
+# Query delay time
+querydelay="1"
+
+#### LinuxGSM Advanced Settings ####
+
+# ANSI Colors
+ansi="on"
+
+# Message Display Time
+sleeptime="0.5"
+
+# Stop Mode | https://docs.linuxgsm.com/steamcmd/stopmode
+# 1: tmux kill
+# 2: CTRL+c
+# 3: quit
+# 4: quit 120s
+# 5: stop
+# 6: q
+# 7: exit
+# 8: 7 Days to Die
+# 9: Gold Source
+# 10: Teamspeak 3
+stopmode="3"
+
+## Query mode
+# 1: session only
+# 2: gamedig (gsquery fallback)
+# 3: gamedig
+# 4: gsquery
+# 5: tcp
+querymode="2"
+querytype="protocol-quake3"
+
+## Console type
+consoleverbose="yes"
+consoleinteract="yes"
+
+## SteamCMD Settings
+# Server appid
+appid="6030"
+steamcmdforcewindows="yes"
+# SteamCMD Branch | https://docs.linuxgsm.com/steamcmd/branch
+branch=""
+# Master Server | https://docs.linuxgsm.com/steamcmd/steam-master-server
+steammaster="true"
+
+## LinuxGSM Server Details
+# Do not edit
+gamename="Jedi Knight II: Jedi Outcast"
+engine="idtech3"
+glibc="2.15"
+
+#### Directories ####
+# Edit with care
+
+## Server Specific Directories
+systemdir="${serverfiles}/GameData"
+executabledir="${systemdir}"
+executable="./jk2mvded"
+servercfg="${selfname}.cfg"
+servercfgdefault="server.cfg"
+servercfgdir="${systemdir}"
+servercfgfullpath="${servercfgdir}/${servercfg}"
+
+## Backup Directory
+backupdir="${rootdir}/backups"
+
+## Logging Directories
+logdir="${rootdir}/log"
+gamelogdir="${systemdir}/logs"
+lgsmlogdir="${logdir}/script"
+consolelogdir="${logdir}/console"
+lgsmlog="${lgsmlogdir}/${selfname}-script.log"
+consolelog="${consolelogdir}/${selfname}-console.log"
+alertlog="${lgsmlogdir}/${selfname}-alert.log"
+postdetailslog="${lgsmlogdir}/${selfname}-postdetails.log"
+
+## Logs Naming
+lgsmlogdate="${lgsmlogdir}/${selfname}-script-$(date '+%Y-%m-%d-%H:%M:%S').log"
+consolelogdate="${consolelogdir}/${selfname}-console-$(date '+%Y-%m-%d-%H:%M:%S').log"
diff --git a/lgsm/config-default/config-lgsm/kf2server/_default.cfg b/lgsm/config-default/config-lgsm/kf2server/_default.cfg
index 7ad9fc930..2c2770394 100644
--- a/lgsm/config-default/config-lgsm/kf2server/_default.cfg
+++ b/lgsm/config-default/config-lgsm/kf2server/_default.cfg
@@ -8,16 +8,14 @@
#### Game Server Settings ####
-## Server Start Settings | https://docs.linuxgsm.com/configuration/start-parameters
+## Predefined Parameters | https://docs.linuxgsm.com/configuration/start-parameters
ip="0.0.0.0"
queryport="27015"
defaultmap="KF-BioticsLab"
gamemode="KFGameContent.KFGameInfo_VersusSurvival"
-## Server Start Command | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
-fn_parms(){
-parms="\"${defaultmap}?Game=${gamemode}?ConfigSubDir=${selfname} -QueryPort=${queryport}\""
-}
+## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
+startparameters="\"${defaultmap}?Game=${gamemode}?ConfigSubDir=${selfname} -QueryPort=${queryport}\""
#### LinuxGSM Settings ####
@@ -35,8 +33,6 @@ displayip=""
# More info | https://docs.linuxgsm.com/alerts#more-info
postalert="off"
-postdays="7"
-posttarget="https://termbin.com"
# Discord Alerts | https://docs.linuxgsm.com/alerts/discord
discordalert="off"
@@ -54,6 +50,7 @@ iftttevent="linuxgsm_alert"
# Mailgun Email Alerts | https://docs.linuxgsm.com/alerts/mailgun
mailgunalert="off"
+mailgunapiregion="us"
mailguntoken="accesstoken"
mailgundomain="example.com"
mailgunemailfrom="alert@example.com"
@@ -67,15 +64,20 @@ channeltag=""
# Pushover Alerts | https://docs.linuxgsm.com/alerts/pushover
pushoveralert="off"
pushovertoken="accesstoken"
+pushoveruserkey="userkey"
+
+# Rocket.Chat Alerts | https://docs.linuxgsm.com/alerts/rocket.chat
+rocketchatalert="off"
+rocketchatwebhook="webhook"
+rocketchattoken=""
# Slack Alerts | https://docs.linuxgsm.com/alerts/slack
slackalert="off"
slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
-# You can add a custom cURL string eg proxy (useful in Russia) or else in "curlcustomstring".
-# like a "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help", if you not need
-# any custom string in curl - simple ignore this parameter.
+# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
@@ -108,8 +110,10 @@ sleeptime="0.5"
## SteamCMD Settings | https://docs.linuxgsm.com/steamcmd
# Server appid
appid="232130"
+steamcmdforcewindows="no"
# SteamCMD Branch | https://docs.linuxgsm.com/steamcmd/branch
branch=""
+betapassword=""
# Master Server | https://docs.linuxgsm.com/steamcmd/steam-master-server
steammaster="false"
@@ -124,17 +128,22 @@ steammaster="false"
# 8: 7 Days to Die
# 9: GoldSrc
# 10: Avorion
+# 11: end
stopmode="2"
## Query mode
# 1: session only
-# 2: gamedig + gsquery
+# 2: gamedig (gsquery fallback)
# 3: gamedig
# 4: gsquery
# 5: tcp
querymode="2"
querytype="protocol-valve"
+## Console type
+consoleverbose="yes"
+consoleinteract="no"
+
## Game Server Details
# Do not edit
gamename="Killing Floor 2"
diff --git a/lgsm/config-default/config-lgsm/kfserver/_default.cfg b/lgsm/config-default/config-lgsm/kfserver/_default.cfg
index f4ef0a7f7..f582cf1f0 100644
--- a/lgsm/config-default/config-lgsm/kfserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/kfserver/_default.cfg
@@ -12,18 +12,16 @@
steamuser="username"
steampass='password'
-## Server Start Settings | https://docs.linuxgsm.com/configuration/start-parameters
+## Predefined Parameters | https://docs.linuxgsm.com/configuration/start-parameters
ip="0.0.0.0"
defaultmap="KF-BioticsLab.rom"
-## Server Start Command | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
-fn_parms(){
-parms="server ${defaultmap}?game=KFmod.KFGameType?VACSecured=true -nohomedir ini=${servercfg} log=${gamelog}"
+## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
+startparameters="server ${defaultmap}?game=KFmod.KFGameType?VACSecured=true -nohomedir ini=${servercfg} log=${gamelog}"
-# Server Start Command for Objective mode
+## Server Parameters for Objective mode
#defaultmap="KFO-Steamland"
-#parms="server ${defaultmap}?Game=KFStoryGame.KFStoryGame?VACSecured=true -nohomedir ini=${servercfg} log=${gamelog}"
-}
+#startparameters="server ${defaultmap}?Game=KFStoryGame.KFStoryGame?VACSecured=true -nohomedir ini=${servercfg} log=${gamelog}"
#### LinuxGSM Settings ####
@@ -41,8 +39,6 @@ displayip=""
# More info | https://docs.linuxgsm.com/alerts#more-info
postalert="off"
-postdays="7"
-posttarget="https://termbin.com"
# Discord Alerts | https://docs.linuxgsm.com/alerts/discord
discordalert="off"
@@ -60,6 +56,7 @@ iftttevent="linuxgsm_alert"
# Mailgun Email Alerts | https://docs.linuxgsm.com/alerts/mailgun
mailgunalert="off"
+mailgunapiregion="us"
mailguntoken="accesstoken"
mailgundomain="example.com"
mailgunemailfrom="alert@example.com"
@@ -73,15 +70,20 @@ channeltag=""
# Pushover Alerts | https://docs.linuxgsm.com/alerts/pushover
pushoveralert="off"
pushovertoken="accesstoken"
+pushoveruserkey="userkey"
+
+# Rocket.Chat Alerts | https://docs.linuxgsm.com/alerts/rocket.chat
+rocketchatalert="off"
+rocketchatwebhook="webhook"
+rocketchattoken=""
# Slack Alerts | https://docs.linuxgsm.com/alerts/slack
slackalert="off"
slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
-# You can add a custom cURL string eg proxy (useful in Russia) or else in "curlcustomstring".
-# like a "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help", if you not need
-# any custom string in curl - simple ignore this parameter.
+# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
@@ -114,8 +116,10 @@ sleeptime="0.5"
## SteamCMD Settings | https://docs.linuxgsm.com/steamcmd
# Server appid
appid="215360"
+steamcmdforcewindows="no"
# SteamCMD Branch | https://docs.linuxgsm.com/steamcmd/branch
branch=""
+betapassword=""
# Master Server | https://docs.linuxgsm.com/steamcmd/steam-master-server
steammaster="false"
@@ -130,17 +134,22 @@ steammaster="false"
# 8: 7 Days to Die
# 9: GoldSrc
# 10: Avorion
+# 11: end
stopmode="2"
## Query mode
# 1: session only
-# 2: gamedig + gsquery
+# 2: gamedig (gsquery fallback)
# 3: gamedig
# 4: gsquery
# 5: tcp
querymode="2"
querytype="protocol-unreal2"
+## Console type
+consoleverbose="yes"
+consoleinteract="no"
+
## Game Server Details
# Do not edit
gamename="Killing Floor"
diff --git a/lgsm/config-default/config-lgsm/l4d2server/_default.cfg b/lgsm/config-default/config-lgsm/l4d2server/_default.cfg
index 4852b2231..adfb6c42c 100644
--- a/lgsm/config-default/config-lgsm/l4d2server/_default.cfg
+++ b/lgsm/config-default/config-lgsm/l4d2server/_default.cfg
@@ -8,17 +8,15 @@
#### Game Server Settings ####
-## Server Start Settings | https://docs.linuxgsm.com/configuration/start-parameters
+## Predefined Parameters | https://docs.linuxgsm.com/configuration/start-parameters
ip="0.0.0.0"
port="27015"
clientport="27005"
defaultmap="c5m1_waterfront"
maxplayers="8"
-## Server Start Command | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
-fn_parms(){
-parms="-game left4dead2 -strictportbind -ip ${ip} -port ${port} +clientport ${clientport} +map ${defaultmap} +servercfgfile ${servercfg} -maxplayers ${maxplayers}"
-}
+## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
+startparameters="-game left4dead2 -strictportbind -ip ${ip} -port ${port} +clientport ${clientport} +map ${defaultmap} +servercfgfile ${servercfg} -maxplayers ${maxplayers}"
#### LinuxGSM Settings ####
@@ -36,8 +34,6 @@ displayip=""
# More info | https://docs.linuxgsm.com/alerts#more-info
postalert="off"
-postdays="7"
-posttarget="https://termbin.com"
# Discord Alerts | https://docs.linuxgsm.com/alerts/discord
discordalert="off"
@@ -55,6 +51,7 @@ iftttevent="linuxgsm_alert"
# Mailgun Email Alerts | https://docs.linuxgsm.com/alerts/mailgun
mailgunalert="off"
+mailgunapiregion="us"
mailguntoken="accesstoken"
mailgundomain="example.com"
mailgunemailfrom="alert@example.com"
@@ -68,15 +65,20 @@ channeltag=""
# Pushover Alerts | https://docs.linuxgsm.com/alerts/pushover
pushoveralert="off"
pushovertoken="accesstoken"
+pushoveruserkey="userkey"
+
+# Rocket.Chat Alerts | https://docs.linuxgsm.com/alerts/rocket.chat
+rocketchatalert="off"
+rocketchatwebhook="webhook"
+rocketchattoken=""
# Slack Alerts | https://docs.linuxgsm.com/alerts/slack
slackalert="off"
slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
-# You can add a custom cURL string eg proxy (useful in Russia) or else in "curlcustomstring".
-# like a "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help", if you not need
-# any custom string in curl - simple ignore this parameter.
+# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
@@ -109,8 +111,10 @@ sleeptime="0.5"
## SteamCMD Settings | https://docs.linuxgsm.com/steamcmd
# Server appid
appid="222860"
+steamcmdforcewindows="no"
# SteamCMD Branch | https://docs.linuxgsm.com/steamcmd/branch
branch=""
+betapassword=""
# Master Server | https://docs.linuxgsm.com/steamcmd/steam-master-server
steammaster="false"
@@ -125,17 +129,22 @@ steammaster="false"
# 8: 7 Days to Die
# 9: GoldSrc
# 10: Avorion
+# 11: end
stopmode="3"
## Query mode
# 1: session only
-# 2: gamedig + gsquery
+# 2: gamedig (gsquery fallback)
# 3: gamedig
# 4: gsquery
# 5: tcp
querymode="2"
querytype="protocol-valve"
+## Console type
+consoleverbose="yes"
+consoleinteract="yes"
+
## Game Server Details
# Do not edit
gamename="Left 4 Dead 2"
diff --git a/lgsm/config-default/config-lgsm/l4dserver/_default.cfg b/lgsm/config-default/config-lgsm/l4dserver/_default.cfg
index 158605d2f..24521fb2a 100644
--- a/lgsm/config-default/config-lgsm/l4dserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/l4dserver/_default.cfg
@@ -8,17 +8,15 @@
#### Game Server Settings ####
-## Server Start Settings | https://docs.linuxgsm.com/configuration/start-parameters
+## Predefined Parameters | https://docs.linuxgsm.com/configuration/start-parameters
ip="0.0.0.0"
port="27015"
clientport="27005"
defaultmap="l4d_hospital01_apartment"
maxplayers="8"
-## Server Start Command | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
-fn_parms(){
-parms="-game left4dead -strictportbind -ip ${ip} -port ${port} +clientport ${clientport} +map ${defaultmap} -maxplayers ${maxplayers}"
-}
+## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
+startparameters="-game left4dead -strictportbind -ip ${ip} -port ${port} +clientport ${clientport} +map ${defaultmap} -maxplayers ${maxplayers}"
#### LinuxGSM Settings ####
@@ -36,8 +34,6 @@ displayip=""
# More info | https://docs.linuxgsm.com/alerts#more-info
postalert="off"
-postdays="7"
-posttarget="https://termbin.com"
# Discord Alerts | https://docs.linuxgsm.com/alerts/discord
discordalert="off"
@@ -55,6 +51,7 @@ iftttevent="linuxgsm_alert"
# Mailgun Email Alerts | https://docs.linuxgsm.com/alerts/mailgun
mailgunalert="off"
+mailgunapiregion="us"
mailguntoken="accesstoken"
mailgundomain="example.com"
mailgunemailfrom="alert@example.com"
@@ -68,15 +65,20 @@ channeltag=""
# Pushover Alerts | https://docs.linuxgsm.com/alerts/pushover
pushoveralert="off"
pushovertoken="accesstoken"
+pushoveruserkey="userkey"
+
+# Rocket.Chat Alerts | https://docs.linuxgsm.com/alerts/rocket.chat
+rocketchatalert="off"
+rocketchatwebhook="webhook"
+rocketchattoken=""
# Slack Alerts | https://docs.linuxgsm.com/alerts/slack
slackalert="off"
slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
-# You can add a custom cURL string eg proxy (useful in Russia) or else in "curlcustomstring".
-# like a "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help", if you not need
-# any custom string in curl - simple ignore this parameter.
+# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
@@ -109,8 +111,10 @@ sleeptime="0.5"
## SteamCMD Settings | https://docs.linuxgsm.com/steamcmd
# Server appid
appid="222840"
+steamcmdforcewindows="no"
# SteamCMD Branch | https://docs.linuxgsm.com/steamcmd/branch
branch=""
+betapassword=""
# Master Server | https://docs.linuxgsm.com/steamcmd/steam-master-server
steammaster="false"
@@ -125,17 +129,22 @@ steammaster="false"
# 8: 7 Days to Die
# 9: GoldSrc
# 10: Avorion
+# 11: end
stopmode="2"
## Query mode
# 1: session only
-# 2: gamedig + gsquery
+# 2: gamedig (gsquery fallback)
# 3: gamedig
# 4: gsquery
# 5: tcp
querymode="2"
querytype="protocol-valve"
+## Console type
+consoleverbose="yes"
+consoleinteract="yes"
+
## Game Server Details
# Do not edit
gamename="Left 4 Dead"
diff --git a/lgsm/config-default/config-lgsm/mcbserver/_default.cfg b/lgsm/config-default/config-lgsm/mcbserver/_default.cfg
index 839f5a9af..4c8e3c2ae 100644
--- a/lgsm/config-default/config-lgsm/mcbserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/mcbserver/_default.cfg
@@ -8,10 +8,8 @@
#### Game Server Settings ####
-## Server Start Command | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
-fn_parms(){
-parms=""
-}
+## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
+startparameters=""
#### LinuxGSM Settings ####
@@ -29,8 +27,6 @@ displayip=""
# More info | https://docs.linuxgsm.com/alerts#more-info
postalert="off"
-postdays="7"
-posttarget="https://termbin.com"
# Discord Alerts | https://docs.linuxgsm.com/alerts/discord
discordalert="off"
@@ -48,6 +44,7 @@ iftttevent="linuxgsm_alert"
# Mailgun Email Alerts | https://docs.linuxgsm.com/alerts/mailgun
mailgunalert="off"
+mailgunapiregion="us"
mailguntoken="accesstoken"
mailgundomain="example.com"
mailgunemailfrom="alert@example.com"
@@ -61,15 +58,20 @@ channeltag=""
# Pushover Alerts | https://docs.linuxgsm.com/alerts/pushover
pushoveralert="off"
pushovertoken="accesstoken"
+pushoveruserkey="userkey"
+
+# Rocket.Chat Alerts | https://docs.linuxgsm.com/alerts/rocket.chat
+rocketchatalert="off"
+rocketchatwebhook="webhook"
+rocketchattoken=""
# Slack Alerts | https://docs.linuxgsm.com/alerts/slack
slackalert="off"
slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
-# You can add a custom cURL string eg proxy (useful in Russia) or else in "curlcustomstring".
-# like a "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help", if you not need
-# any custom string in curl - simple ignore this parameter.
+# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
@@ -110,17 +112,22 @@ sleeptime="0.5"
# 8: 7 Days to Die
# 9: GoldSrc
# 10: Avorion
+# 11: end
stopmode="5"
## Query mode
# 1: session only
-# 2: gamedig + gsquery
+# 2: gamedig (gsquery fallback)
# 3: gamedig
# 4: gsquery
# 5: tcp
querymode="4"
querytype="minecraftbe"
+## Console type
+consoleverbose="yes"
+consoleinteract="yes"
+
## Game Server Details
# Do not edit
gamename="Minecraft Bedrock"
diff --git a/lgsm/config-default/config-lgsm/mcserver/_default.cfg b/lgsm/config-default/config-lgsm/mcserver/_default.cfg
index a49465f45..b2b053490 100644
--- a/lgsm/config-default/config-lgsm/mcserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/mcserver/_default.cfg
@@ -8,16 +8,17 @@
#### Game Server Settings ####
-## Server Start Settings | https://docs.linuxgsm.com/configuration/start-parameters
+## Predefined Parameters | https://docs.linuxgsm.com/configuration/start-parameters
javaram="1024" # -Xmx$1024M
-## Server Start Command | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
-fn_parms(){
-parms="nogui"
-}
+## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
+startparameters="nogui"
-## Branch, "snapshot" include snapshot and pre-release versions. | (release|snapshot)
+## Release Settings | https://docs.linuxgsm.com/game-servers/minecraft#release-settings
+# Branch (release|snapshot)
branch="release"
+# Version (latest|1.16)
+mcversion="latest"
#### LinuxGSM Settings ####
@@ -35,8 +36,6 @@ displayip=""
# More info | https://docs.linuxgsm.com/alerts#more-info
postalert="off"
-postdays="7"
-posttarget="https://termbin.com"
# Discord Alerts | https://docs.linuxgsm.com/alerts/discord
discordalert="off"
@@ -54,6 +53,7 @@ iftttevent="linuxgsm_alert"
# Mailgun Email Alerts | https://docs.linuxgsm.com/alerts/mailgun
mailgunalert="off"
+mailgunapiregion="us"
mailguntoken="accesstoken"
mailgundomain="example.com"
mailgunemailfrom="alert@example.com"
@@ -67,15 +67,20 @@ channeltag=""
# Pushover Alerts | https://docs.linuxgsm.com/alerts/pushover
pushoveralert="off"
pushovertoken="accesstoken"
+pushoveruserkey="userkey"
+
+# Rocket.Chat Alerts | https://docs.linuxgsm.com/alerts/rocket.chat
+rocketchatalert="off"
+rocketchatwebhook="webhook"
+rocketchattoken=""
# Slack Alerts | https://docs.linuxgsm.com/alerts/slack
slackalert="off"
slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
-# You can add a custom cURL string eg proxy (useful in Russia) or else in "curlcustomstring".
-# like a "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help", if you not need
-# any custom string in curl - simple ignore this parameter.
+# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
@@ -116,17 +121,22 @@ sleeptime="0.5"
# 8: 7 Days to Die
# 9: GoldSrc
# 10: Avorion
+# 11: end
stopmode="5"
## Query mode
# 1: session only
-# 2: gamedig + gsquery
+# 2: gamedig (gsquery fallback)
# 3: gamedig
# 4: gsquery
# 5: tcp
querymode="2"
querytype="minecraft"
+## Console type
+consoleverbose="yes"
+consoleinteract="yes"
+
## Game Server Details
# Do not edit
gamename="Minecraft"
@@ -139,7 +149,8 @@ glibc="null"
## Game Server Directories
systemdir="${serverfiles}"
executabledir="${serverfiles}"
-executable="java -Xmx${javaram}M -jar ${serverfiles}/minecraft_server.jar"
+preexecutable="java -Xmx${javaram}M -jar"
+executable="./minecraft_server.jar"
servercfgdir="${systemdir}"
servercfg="server.properties"
servercfgdefault="server.properties"
diff --git a/lgsm/config-default/config-lgsm/mhserver/_default.cfg b/lgsm/config-default/config-lgsm/mhserver/_default.cfg
index 255ecdd04..85a487a81 100644
--- a/lgsm/config-default/config-lgsm/mhserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/mhserver/_default.cfg
@@ -8,7 +8,7 @@
#### Game Server Settings ####
-## Server Start Settings | https://docs.linuxgsm.com/configuration/start-parameters
+## Predefined Parameters | https://docs.linuxgsm.com/configuration/start-parameters
ip="0.0.0.0"
port="7777"
beaconport="15000"
@@ -16,10 +16,8 @@ queryport="27015"
# Maps: FFA_Camp, FFA_Contraband, FFA_Grad, FFA_MountainPeak, FFA_Taiga, FFA_ThePit, FFA_Tourney, SKM_Camp, SKM_Contraband, SKM_Grad, SKM_MountainPeak, SKM_Taiga, SKM_ThePit, SKM_Tourney, TDM_Camp, TDM_Contraband, TDM_Grad, TDM_MountainPeak, TDM_Taiga, TDM_ThePit, TDM_Tourney
defaultmap="FFA_ThePit"
-## Server Start Command | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
-fn_parms(){
-parms="Mordhau ${defaultmap} -log -MultiHome=${ip} -Port=${port} -BeaconPort=${beaconport} -QueryPort=${queryport}"
-}
+## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
+startparameters="Mordhau ${defaultmap} -log -MultiHome=${ip} -Port=${port} -BeaconPort=${beaconport} -QueryPort=${queryport}"
#### LinuxGSM Settings ####
@@ -37,8 +35,6 @@ displayip=""
# More info | https://docs.linuxgsm.com/alerts#more-info
postalert="off"
-postdays="7"
-posttarget="https://termbin.com"
# Discord Alerts | https://docs.linuxgsm.com/alerts/discord
discordalert="off"
@@ -56,6 +52,7 @@ iftttevent="linuxgsm_alert"
# Mailgun Email Alerts | https://docs.linuxgsm.com/alerts/mailgun
mailgunalert="off"
+mailgunapiregion="us"
mailguntoken="accesstoken"
mailgundomain="example.com"
mailgunemailfrom="alert@example.com"
@@ -69,15 +66,20 @@ channeltag=""
# Pushover Alerts | https://docs.linuxgsm.com/alerts/pushover
pushoveralert="off"
pushovertoken="accesstoken"
+pushoveruserkey="userkey"
+
+# Rocket.Chat Alerts | https://docs.linuxgsm.com/alerts/rocket.chat
+rocketchatalert="off"
+rocketchatwebhook="webhook"
+rocketchattoken=""
# Slack Alerts | https://docs.linuxgsm.com/alerts/slack
slackalert="off"
slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
-# You can add a custom cURL string eg proxy (useful in Russia) or else in "curlcustomstring".
-# like a "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help", if you not need
-# any custom string in curl - simple ignore this parameter.
+# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
@@ -110,8 +112,10 @@ sleeptime="0.5"
## SteamCMD Settings | https://docs.linuxgsm.com/steamcmd
# Server appid
appid="629800"
+steamcmdforcewindows="no"
# SteamCMD Branch | https://docs.linuxgsm.com/steamcmd/branch
branch=""
+betapassword=""
# Master Server | https://docs.linuxgsm.com/steamcmd/steam-master-server
steammaster="false"
@@ -126,17 +130,22 @@ steammaster="false"
# 8: 7 Days to Die
# 9: GoldSrc
# 10: Avorion
+# 11: end
stopmode="2"
## Query mode
# 1: session only
-# 2: gamedig + gsquery
+# 2: gamedig (gsquery fallback)
# 3: gamedig
# 4: gsquery
# 5: tcp
querymode="2"
querytype="protocol-valve"
+## Console type
+consoleverbose="yes"
+consoleinteract="no"
+
## Game Server Details
# Do not edit
gamename="MORDHAU"
diff --git a/lgsm/config-default/config-lgsm/mohaaserver/_default.cfg b/lgsm/config-default/config-lgsm/mohaaserver/_default.cfg
index 1f82fe0c4..6742f18ed 100644
--- a/lgsm/config-default/config-lgsm/mohaaserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/mohaaserver/_default.cfg
@@ -8,15 +8,13 @@
#### Game Server Settings ####
-## Server Start Settings | https://docs.linuxgsm.com/configuration/start-parameters
+## Predefined Parameters | https://docs.linuxgsm.com/configuration/start-parameters
ip="0.0.0.0"
port="12203"
defaultmap="dm/mohdm1"
-## Server Start Command | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
-fn_parms(){
-parms="+set sv_punkbuster 0 +set fs_basepath ${serverfiles} +set fs_outputpath ${gamelogdir} +set dedicated 2 +set net_ip ${ip} +set net_port ${port} +exec ${servercfg} +map ${defaultmap}"
-}
+## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
+startparameters="+set sv_punkbuster 0 +set fs_basepath ${serverfiles} +set fs_outputpath ${gamelogdir} +set dedicated 2 +set net_ip ${ip} +set net_port ${port} +exec ${servercfg} +map ${defaultmap}"
#### LinuxGSM Settings ####
@@ -34,8 +32,6 @@ displayip=""
# More info | https://docs.linuxgsm.com/alerts#more-info
postalert="off"
-postdays="7"
-posttarget="https://termbin.com"
# Discord Alerts | https://docs.linuxgsm.com/alerts/discord
discordalert="off"
@@ -53,6 +49,7 @@ iftttevent="linuxgsm_alert"
# Mailgun Email Alerts | https://docs.linuxgsm.com/alerts/mailgun
mailgunalert="off"
+mailgunapiregion="us"
mailguntoken="accesstoken"
mailgundomain="example.com"
mailgunemailfrom="alert@example.com"
@@ -66,15 +63,20 @@ channeltag=""
# Pushover Alerts | https://docs.linuxgsm.com/alerts/pushover
pushoveralert="off"
pushovertoken="accesstoken"
+pushoveruserkey="userkey"
+
+# Rocket.Chat Alerts | https://docs.linuxgsm.com/alerts/rocket.chat
+rocketchatalert="off"
+rocketchatwebhook="webhook"
+rocketchattoken=""
# Slack Alerts | https://docs.linuxgsm.com/alerts/slack
slackalert="off"
slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
-# You can add a custom cURL string eg proxy (useful in Russia) or else in "curlcustomstring".
-# like a "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help", if you not need
-# any custom string in curl - simple ignore this parameter.
+# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
@@ -112,17 +114,22 @@ sleeptime="0.5"
# 8: 7 Days to Die
# 9: GoldSrc
# 10: Avorion
+# 11: end
stopmode="3"
## Query mode
# 1: session only
-# 2: gamedig + gsquery
+# 2: gamedig (gsquery fallback)
# 3: gamedig
# 4: gsquery
# 5: tcp
querymode="2"
querytype="protocol-quake3"
+## Console type
+consoleverbose="yes"
+consoleinteract="no"
+
## Game Server Details
# Do not edit
gamename="Medal of Honor: Allied Assault"
diff --git a/lgsm/config-default/config-lgsm/momserver/_default.cfg b/lgsm/config-default/config-lgsm/momserver/_default.cfg
index 7e89d5b9f..d5df8fd59 100644
--- a/lgsm/config-default/config-lgsm/momserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/momserver/_default.cfg
@@ -8,16 +8,14 @@
#### Game Server Settings ####
-## Server Start Settings | https://docs.linuxgsm.com/configuration/start-parameters
+## Predefined Parameters | https://docs.linuxgsm.com/configuration/start-parameters
ip="0.0.0.0"
port="7777"
beaconport="15000"
maxplayers="32"
-## Server Start Command | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
-fn_parms(){
-parms="-port=${port} -beaconport=${beaconport} -MULTIHOME="${ip}" -maxplayers=${maxplayers}"
-}
+## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
+startparameters="-port="${port}" -beaconport="${beaconport}" -MULTIHOME="${ip}" -maxplayers=${maxplayers}"
#### LinuxGSM Settings ####
@@ -35,8 +33,6 @@ displayip=""
# More info | https://docs.linuxgsm.com/alerts#more-info
postalert="off"
-postdays="7"
-posttarget="https://termbin.com"
# Discord Alerts | https://docs.linuxgsm.com/alerts/discord
discordalert="off"
@@ -54,6 +50,7 @@ iftttevent="linuxgsm_alert"
# Mailgun Email Alerts | https://docs.linuxgsm.com/alerts/mailgun
mailgunalert="off"
+mailgunapiregion="us"
mailguntoken="accesstoken"
mailgundomain="example.com"
mailgunemailfrom="alert@example.com"
@@ -67,15 +64,20 @@ channeltag=""
# Pushover Alerts | https://docs.linuxgsm.com/alerts/pushover
pushoveralert="off"
pushovertoken="accesstoken"
+pushoveruserkey="userkey"
+
+# Rocket.Chat Alerts | https://docs.linuxgsm.com/alerts/rocket.chat
+rocketchatalert="off"
+rocketchatwebhook="webhook"
+rocketchattoken=""
# Slack Alerts | https://docs.linuxgsm.com/alerts/slack
slackalert="off"
slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
-# You can add a custom cURL string eg proxy (useful in Russia) or else in "curlcustomstring".
-# like a "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help", if you not need
-# any custom string in curl - simple ignore this parameter.
+# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
@@ -108,8 +110,10 @@ sleeptime="0.5"
## SteamCMD Settings | https://docs.linuxgsm.com/steamcmd
# Server appid
appid="897590"
+steamcmdforcewindows="no"
# SteamCMD Branch | https://docs.linuxgsm.com/steamcmd/branch
branch=""
+betapassword=""
# Master Server | https://docs.linuxgsm.com/steamcmd/steam-master-server
steammaster="false"
@@ -124,11 +128,12 @@ steammaster="false"
# 8: 7 Days to Die
# 9: GoldSrc
# 10: Avorion
+# 11: end
stopmode="2"
## Query mode
# 1: session only
-# 2: gamedig + gsquery
+# 2: gamedig (gsquery fallback)
# 3: gamedig
# 4: gsquery
# 5: tcp
diff --git a/lgsm/config-default/config-lgsm/mtaserver/_default.cfg b/lgsm/config-default/config-lgsm/mtaserver/_default.cfg
index dc6aac282..75aa660dd 100644
--- a/lgsm/config-default/config-lgsm/mtaserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/mtaserver/_default.cfg
@@ -8,14 +8,12 @@
#### Game Server Settings ####
-## Server Start Settings | https://docs.linuxgsm.com/configuration/start-parameters
+## Predefined Parameters | https://docs.linuxgsm.com/configuration/start-parameters
ip="0.0.0.0"
-## Server Start Command | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
+## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
# Edit with care
-fn_parms(){
-parms=""
-}
+startparameters=""
#### LinuxGSM Settings ####
@@ -33,8 +31,6 @@ displayip=""
# More info | https://docs.linuxgsm.com/alerts#more-info
postalert="off"
-postdays="7"
-posttarget="https://termbin.com"
# Discord Alerts | https://docs.linuxgsm.com/alerts/discord
discordalert="off"
@@ -52,6 +48,7 @@ iftttevent="linuxgsm_alert"
# Mailgun Email Alerts | https://docs.linuxgsm.com/alerts/mailgun
mailgunalert="off"
+mailgunapiregion="us"
mailguntoken="accesstoken"
mailgundomain="example.com"
mailgunemailfrom="alert@example.com"
@@ -65,15 +62,20 @@ channeltag=""
# Pushover Alerts | https://docs.linuxgsm.com/alerts/pushover
pushoveralert="off"
pushovertoken="accesstoken"
+pushoveruserkey="userkey"
+
+# Rocket.Chat Alerts | https://docs.linuxgsm.com/alerts/rocket.chat
+rocketchatalert="off"
+rocketchatwebhook="webhook"
+rocketchattoken=""
# Slack Alerts | https://docs.linuxgsm.com/alerts/slack
slackalert="off"
slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
-# You can add a custom cURL string eg proxy (useful in Russia) or else in "curlcustomstring".
-# like a "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help", if you not need
-# any custom string in curl - simple ignore this parameter.
+# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
@@ -111,17 +113,22 @@ sleeptime="0.5"
# 8: 7 Days to Die
# 9: GoldSrc
# 10: Avorion
+# 11: end
stopmode="4"
## Query mode
# 1: session only
-# 2: gamedig + gsquery
+# 2: gamedig (gsquery fallback)
# 3: gamedig
# 4: gsquery
# 5: tcp
querymode="3"
querytype="protocol-ase"
+## Console type
+consoleverbose="yes"
+consoleinteract="yes"
+
## Game Server Details
# Do not edit
gamename="Multi Theft Auto"
@@ -138,6 +145,7 @@ executabledir="${systemdir}"
executable="./mta-server64"
servercfgdir="${systemdir}/mods/deathmatch"
servercfg="mtaserver.conf"
+servercfgdefault="mtaserver.conf"
servercfgfullpath="${servercfgdir}/${servercfg}"
## Backup Directory
diff --git a/lgsm/config-default/config-lgsm/mumbleserver/_default.cfg b/lgsm/config-default/config-lgsm/mumbleserver/_default.cfg
index 6afe760ae..bfe847135 100644
--- a/lgsm/config-default/config-lgsm/mumbleserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/mumbleserver/_default.cfg
@@ -7,12 +7,9 @@
# [instance].cfg - applies settings to a specific instance.
#### Game Server Settings ####
-# Use .ini config file for Mumble (Murmur) server.
-## Server Start Command | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
-fn_parms(){
-parms="-fg -ini ${servercfgfullpath}"
-}
+## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
+startparameters="-fg -ini ${servercfgfullpath}"
#### LinuxGSM Settings ####
@@ -30,8 +27,6 @@ displayip=""
# More info | https://docs.linuxgsm.com/alerts#more-info
postalert="off"
-postdays="7"
-posttarget="https://termbin.com"
# Discord Alerts | https://docs.linuxgsm.com/alerts/discord
discordalert="off"
@@ -49,6 +44,7 @@ iftttevent="linuxgsm_alert"
# Mailgun Email Alerts | https://docs.linuxgsm.com/alerts/mailgun
mailgunalert="off"
+mailgunapiregion="us"
mailguntoken="accesstoken"
mailgundomain="example.com"
mailgunemailfrom="alert@example.com"
@@ -62,15 +58,20 @@ channeltag=""
# Pushover Alerts | https://docs.linuxgsm.com/alerts/pushover
pushoveralert="off"
pushovertoken="accesstoken"
+pushoveruserkey="userkey"
+
+# Rocket.Chat Alerts | https://docs.linuxgsm.com/alerts/rocket.chat
+rocketchatalert="off"
+rocketchatwebhook="webhook"
+rocketchattoken=""
# Slack Alerts | https://docs.linuxgsm.com/alerts/slack
slackalert="off"
slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
-# You can add a custom cURL string eg proxy (useful in Russia) or else in "curlcustomstring".
-# like a "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help", if you not need
-# any custom string in curl - simple ignore this parameter.
+# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
@@ -111,17 +112,22 @@ sleeptime="0.5"
# 8: 7 Days to Die
# 9: GoldSrc
# 10: Avorion
+# 11: end
stopmode="2"
## Query mode
# 1: session only
-# 2: gamedig + gsquery
+# 2: gamedig (gsquery fallback)
# 3: gamedig
# 4: gsquery
# 5: tcp
querymode="2"
querytype="mumbleping"
+## Console type
+consoleverbose="yes"
+consoleinteract="no"
+
## Game Server Details
# Do not edit
gamename="Mumble"
diff --git a/lgsm/config-default/config-lgsm/ndserver/_default.cfg b/lgsm/config-default/config-lgsm/ndserver/_default.cfg
index 084bcc20b..45bb4da1a 100644
--- a/lgsm/config-default/config-lgsm/ndserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/ndserver/_default.cfg
@@ -8,7 +8,7 @@
#### Game Server Settings ####
-## Server Start Settings | https://docs.linuxgsm.com/configuration/start-parameters
+## Predefined Parameters | https://docs.linuxgsm.com/configuration/start-parameters
ip="0.0.0.0"
port="27015"
clientport="27005"
@@ -16,10 +16,8 @@ sourcetvport="27020"
defaultmap="hydro"
maxplayers="32"
-## Server Start Command | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
-fn_parms(){
-parms="-game nucleardawn -strictportbind -ip ${ip} -port ${port} +clientport ${clientport} +tv_port ${sourcetvport} +map ${defaultmap} +servercfgfile ${servercfg} -maxplayers ${maxplayers}"
-}
+## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
+startparameters="-game nucleardawn -strictportbind -ip ${ip} -port ${port} +clientport ${clientport} +tv_port ${sourcetvport} +map ${defaultmap} +servercfgfile ${servercfg} -maxplayers ${maxplayers}"
#### LinuxGSM Settings ####
@@ -37,8 +35,6 @@ displayip=""
# More info | https://docs.linuxgsm.com/alerts#more-info
postalert="off"
-postdays="7"
-posttarget="https://termbin.com"
# Discord Alerts | https://docs.linuxgsm.com/alerts/discord
discordalert="off"
@@ -56,6 +52,7 @@ iftttevent="linuxgsm_alert"
# Mailgun Email Alerts | https://docs.linuxgsm.com/alerts/mailgun
mailgunalert="off"
+mailgunapiregion="us"
mailguntoken="accesstoken"
mailgundomain="example.com"
mailgunemailfrom="alert@example.com"
@@ -69,15 +66,20 @@ channeltag=""
# Pushover Alerts | https://docs.linuxgsm.com/alerts/pushover
pushoveralert="off"
pushovertoken="accesstoken"
+pushoveruserkey="userkey"
+
+# Rocket.Chat Alerts | https://docs.linuxgsm.com/alerts/rocket.chat
+rocketchatalert="off"
+rocketchatwebhook="webhook"
+rocketchattoken=""
# Slack Alerts | https://docs.linuxgsm.com/alerts/slack
slackalert="off"
slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
-# You can add a custom cURL string eg proxy (useful in Russia) or else in "curlcustomstring".
-# like a "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help", if you not need
-# any custom string in curl - simple ignore this parameter.
+# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
@@ -110,8 +112,10 @@ sleeptime="0.5"
## SteamCMD Settings | https://docs.linuxgsm.com/steamcmd
# Server appid
appid="111710"
+steamcmdforcewindows="no"
# SteamCMD Branch | https://docs.linuxgsm.com/steamcmd/branch
branch=""
+betapassword=""
# Master Server | https://docs.linuxgsm.com/steamcmd/steam-master-server
steammaster="true"
@@ -126,17 +130,22 @@ steammaster="true"
# 8: 7 Days to Die
# 9: GoldSrc
# 10: Avorion
+# 11: end
stopmode="3"
## Query mode
# 1: session only
-# 2: gamedig + gsquery
+# 2: gamedig (gsquery fallback)
# 3: gamedig
# 4: gsquery
# 5: tcp
querymode="2"
querytype="protocol-valve"
+## Console type
+consoleverbose="yes"
+consoleinteract="yes"
+
## Game Server Details
# Do not edit
gamename="Nuclear Dawn"
diff --git a/lgsm/config-default/config-lgsm/nmrihserver/_default.cfg b/lgsm/config-default/config-lgsm/nmrihserver/_default.cfg
index 261d74fed..67b7d6a15 100644
--- a/lgsm/config-default/config-lgsm/nmrihserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/nmrihserver/_default.cfg
@@ -8,7 +8,7 @@
#### Game Server Settings ####
-## Server Start Settings | https://docs.linuxgsm.com/configuration/start-parameters
+## Predefined Parameters | https://docs.linuxgsm.com/configuration/start-parameters
ip="0.0.0.0"
port="27015"
clientport="27005"
@@ -21,10 +21,8 @@ maxplayers="8"
# More info: https://docs.linuxgsm.com/steamcmd/gslt
gslt=""
-## Server Start Command | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
-fn_parms(){
-parms="-game nmrih -strictportbind -ip ${ip} -port ${port} +clientport ${clientport} +tv_port ${sourcetvport} +map ${defaultmap} +sv_setsteamaccount ${gslt} +servercfgfile ${servercfg} -maxplayers ${maxplayers}"
-}
+## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
+startparameters="-game nmrih -strictportbind -ip ${ip} -port ${port} +clientport ${clientport} +tv_port ${sourcetvport} +map ${defaultmap} +sv_setsteamaccount ${gslt} +servercfgfile ${servercfg} -maxplayers ${maxplayers}"
#### LinuxGSM Settings ####
@@ -42,8 +40,6 @@ displayip=""
# More info | https://docs.linuxgsm.com/alerts#more-info
postalert="off"
-postdays="7"
-posttarget="https://termbin.com"
# Discord Alerts | https://docs.linuxgsm.com/alerts/discord
discordalert="off"
@@ -61,6 +57,7 @@ iftttevent="linuxgsm_alert"
# Mailgun Email Alerts | https://docs.linuxgsm.com/alerts/mailgun
mailgunalert="off"
+mailgunapiregion="us"
mailguntoken="accesstoken"
mailgundomain="example.com"
mailgunemailfrom="alert@example.com"
@@ -74,15 +71,20 @@ channeltag=""
# Pushover Alerts | https://docs.linuxgsm.com/alerts/pushover
pushoveralert="off"
pushovertoken="accesstoken"
+pushoveruserkey="userkey"
+
+# Rocket.Chat Alerts | https://docs.linuxgsm.com/alerts/rocket.chat
+rocketchatalert="off"
+rocketchatwebhook="webhook"
+rocketchattoken=""
# Slack Alerts | https://docs.linuxgsm.com/alerts/slack
slackalert="off"
slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
-# You can add a custom cURL string eg proxy (useful in Russia) or else in "curlcustomstring".
-# like a "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help", if you not need
-# any custom string in curl - simple ignore this parameter.
+# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
@@ -115,8 +117,10 @@ sleeptime="0.5"
## SteamCMD Settings | https://docs.linuxgsm.com/steamcmd
# Server appid
appid="317670"
+steamcmdforcewindows="no"
# SteamCMD Branch | https://docs.linuxgsm.com/steamcmd/branch
branch=""
+betapassword=""
# Master Server | https://docs.linuxgsm.com/steamcmd/steam-master-server
steammaster="true"
@@ -131,17 +135,22 @@ steammaster="true"
# 8: 7 Days to Die
# 9: GoldSrc
# 10: Avorion
+# 11: end
stopmode="3"
## Query mode
# 1: session only
-# 2: gamedig + gsquery
+# 2: gamedig (gsquery fallback)
# 3: gamedig
# 4: gsquery
# 5: tcp
querymode="2"
querytype="protocol-valve"
+## Console type
+consoleverbose="yes"
+consoleinteract="yes"
+
## Game Server Details
# Do not edit
gamename="No More Room in Hell"
diff --git a/lgsm/config-default/config-lgsm/ns2cserver/_default.cfg b/lgsm/config-default/config-lgsm/ns2cserver/_default.cfg
index 6e857c346..42ba79464 100644
--- a/lgsm/config-default/config-lgsm/ns2cserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/ns2cserver/_default.cfg
@@ -8,7 +8,7 @@
#### Game Server Settings ####
-## Server Start Settings | https://docs.linuxgsm.com/configuration/start-parameters
+## Predefined Parameters | https://docs.linuxgsm.com/configuration/start-parameters
ip="0.0.0.0"
port="27015"
defaultmap="co_core"
@@ -23,10 +23,8 @@ serverpassword=""
# that the password variable above is not left empty.
# -password \"${serverpassword}\"
-## Server Start Command | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
-fn_parms(){
-parms="-name \"${servername}\" -port ${port} -webadmin -webdomain ${ip} -webuser ${webadminuser} -webpassword \"${webadminpass}\" -webport ${webadminport} -map ${defaultmap} -limit ${maxplayers} -config_path \"${servercfgdir}\" -modstorage \"${modstoragedir}\" -mods \"${mods}\""
-}
+## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
+startparameters="-name \"${servername}\" -port ${port} -webadmin -webdomain ${ip} -webuser ${webadminuser} -webpassword \"${webadminpass}\" -webport ${webadminport} -map ${defaultmap} -limit ${maxplayers} -config_path \"${servercfgdir}\" -modstorage \"${modstoragedir}\" -mods \"${mods}\""
#### LinuxGSM Settings ####
@@ -44,8 +42,6 @@ displayip=""
# More info | https://docs.linuxgsm.com/alerts#more-info
postalert="off"
-postdays="7"
-posttarget="https://termbin.com"
# Discord Alerts | https://docs.linuxgsm.com/alerts/discord
discordalert="off"
@@ -63,6 +59,7 @@ iftttevent="linuxgsm_alert"
# Mailgun Email Alerts | https://docs.linuxgsm.com/alerts/mailgun
mailgunalert="off"
+mailgunapiregion="us"
mailguntoken="accesstoken"
mailgundomain="example.com"
mailgunemailfrom="alert@example.com"
@@ -76,15 +73,20 @@ channeltag=""
# Pushover Alerts | https://docs.linuxgsm.com/alerts/pushover
pushoveralert="off"
pushovertoken="accesstoken"
+pushoveruserkey="userkey"
+
+# Rocket.Chat Alerts | https://docs.linuxgsm.com/alerts/rocket.chat
+rocketchatalert="off"
+rocketchatwebhook="webhook"
+rocketchattoken=""
# Slack Alerts | https://docs.linuxgsm.com/alerts/slack
slackalert="off"
slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
-# You can add a custom cURL string eg proxy (useful in Russia) or else in "curlcustomstring".
-# like a "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help", if you not need
-# any custom string in curl - simple ignore this parameter.
+# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
@@ -117,8 +119,10 @@ sleeptime="0.5"
## SteamCMD Settings | https://docs.linuxgsm.com/steamcmd
# Server appid
appid="313900"
+steamcmdforcewindows="no"
# SteamCMD Branch | https://docs.linuxgsm.com/steamcmd/branch
branch=""
+betapassword=""
# Master Server | https://docs.linuxgsm.com/steamcmd/steam-master-server
steammaster="true"
@@ -133,17 +137,22 @@ steammaster="true"
# 8: 7 Days to Die
# 9: GoldSrc
# 10: Avorion
+# 11: end
stopmode="6"
## Query mode
# 1: session only
-# 2: gamedig + gsquery
+# 2: gamedig (gsquery fallback)
# 3: gamedig
# 4: gsquery
# 5: tcp
querymode="2"
querytype="protocol-valve"
+## Console type
+consoleverbose="yes"
+consoleinteract="no"
+
## Game Server Details
# Do not edit
gamename="NS2: Combat"
diff --git a/lgsm/config-default/config-lgsm/ns2server/_default.cfg b/lgsm/config-default/config-lgsm/ns2server/_default.cfg
index 01cb086f9..d407c8a80 100644
--- a/lgsm/config-default/config-lgsm/ns2server/_default.cfg
+++ b/lgsm/config-default/config-lgsm/ns2server/_default.cfg
@@ -12,7 +12,7 @@
steamuser="username"
steampass='password'
-## Server Start Settings | https://docs.linuxgsm.com/configuration/start-parameters
+## Predefined Parameters | https://docs.linuxgsm.com/configuration/start-parameters
ip="0.0.0.0"
port="27015"
defaultmap="ns2_summit"
@@ -27,10 +27,8 @@ serverpassword=""
# that the password variable above is not left empty.
# -password \"${serverpassword}\"
-## Server Start Command | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
-fn_parms(){
-parms="-name \"${servername}\" -port ${port} -webadmin -webdomain ${ip} -webuser ${webadminuser} -webpassword \"${webadminpass}\" -webport ${webadminport} -map ${defaultmap} -limit ${maxplayers} -config_path \"${servercfgdir}\" -logdir \"${gamelogdir}\" -modstorage \"${modstoragedir}\" -mods \"${mods}\""
-}
+## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
+startparameters="-name \"${servername}\" -port ${port} -webadmin -webdomain ${ip} -webuser ${webadminuser} -webpassword \"${webadminpass}\" -webport ${webadminport} -map ${defaultmap} -limit ${maxplayers} -config_path \"${servercfgdir}\" -logdir \"${gamelogdir}\" -modstorage \"${modstoragedir}\" -mods \"${mods}\""
#### LinuxGSM Settings ####
@@ -48,8 +46,6 @@ displayip=""
# More info | https://docs.linuxgsm.com/alerts#more-info
postalert="off"
-postdays="7"
-posttarget="https://termbin.com"
# Discord Alerts | https://docs.linuxgsm.com/alerts/discord
discordalert="off"
@@ -67,6 +63,7 @@ iftttevent="linuxgsm_alert"
# Mailgun Email Alerts | https://docs.linuxgsm.com/alerts/mailgun
mailgunalert="off"
+mailgunapiregion="us"
mailguntoken="accesstoken"
mailgundomain="example.com"
mailgunemailfrom="alert@example.com"
@@ -80,15 +77,20 @@ channeltag=""
# Pushover Alerts | https://docs.linuxgsm.com/alerts/pushover
pushoveralert="off"
pushovertoken="accesstoken"
+pushoveruserkey="userkey"
+
+# Rocket.Chat Alerts | https://docs.linuxgsm.com/alerts/rocket.chat
+rocketchatalert="off"
+rocketchatwebhook="webhook"
+rocketchattoken=""
# Slack Alerts | https://docs.linuxgsm.com/alerts/slack
slackalert="off"
slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
-# You can add a custom cURL string eg proxy (useful in Russia) or else in "curlcustomstring".
-# like a "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help", if you not need
-# any custom string in curl - simple ignore this parameter.
+# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
@@ -121,8 +123,10 @@ sleeptime="0.5"
## SteamCMD Settings | https://docs.linuxgsm.com/steamcmd
# Server appid
appid="4940"
+steamcmdforcewindows="no"
# SteamCMD Branch | https://docs.linuxgsm.com/steamcmd/branch
branch=""
+betapassword=""
# Master Server | https://docs.linuxgsm.com/steamcmd/steam-master-server
steammaster="true"
@@ -137,17 +141,22 @@ steammaster="true"
# 8: 7 Days to Die
# 9: GoldSrc
# 10: Avorion
+# 11: end
stopmode="6"
## Query mode
# 1: session only
-# 2: gamedig + gsquery
+# 2: gamedig (gsquery fallback)
# 3: gamedig
# 4: gsquery
# 5: tcp
querymode="2"
querytype="protocol-valve"
+## Console type
+consoleverbose="yes"
+consoleinteract="no"
+
## Game Server Details
# Do not edit
gamename="Natural Selection 2"
diff --git a/lgsm/config-default/config-lgsm/nsserver/_default.cfg b/lgsm/config-default/config-lgsm/nsserver/_default.cfg
index 446e8ab8a..282052139 100644
--- a/lgsm/config-default/config-lgsm/nsserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/nsserver/_default.cfg
@@ -8,17 +8,15 @@
#### Game Server Settings ####
-## Server Start Settings | https://docs.linuxgsm.com/configuration/start-parameters
+## Predefined Parameters | https://docs.linuxgsm.com/configuration/start-parameters
ip="0.0.0.0"
port="27015"
clientport="27005"
defaultmap="ns_hera"
maxplayers="16"
-## Server Start Command | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
-fn_parms(){
-parms="-game ns -strictportbind +ip ${ip} -port ${port} +clientport ${clientport} +map ${defaultmap} +servercfgfile ${servercfg} -maxplayers ${maxplayers}"
-}
+## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
+startparameters="-game ns -strictportbind +ip ${ip} -port ${port} +clientport ${clientport} +map ${defaultmap} +servercfgfile ${servercfg} -maxplayers ${maxplayers}"
#### LinuxGSM Settings ####
@@ -36,8 +34,6 @@ displayip=""
# More info | https://docs.linuxgsm.com/alerts#more-info
postalert="off"
-postdays="7"
-posttarget="https://termbin.com"
# Discord Alerts | https://docs.linuxgsm.com/alerts/discord
discordalert="off"
@@ -55,6 +51,7 @@ iftttevent="linuxgsm_alert"
# Mailgun Email Alerts | https://docs.linuxgsm.com/alerts/mailgun
mailgunalert="off"
+mailgunapiregion="us"
mailguntoken="accesstoken"
mailgundomain="example.com"
mailgunemailfrom="alert@example.com"
@@ -68,15 +65,20 @@ channeltag=""
# Pushover Alerts | https://docs.linuxgsm.com/alerts/pushover
pushoveralert="off"
pushovertoken="accesstoken"
+pushoveruserkey="userkey"
+
+# Rocket.Chat Alerts | https://docs.linuxgsm.com/alerts/rocket.chat
+rocketchatalert="off"
+rocketchatwebhook="webhook"
+rocketchattoken=""
# Slack Alerts | https://docs.linuxgsm.com/alerts/slack
slackalert="off"
slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
-# You can add a custom cURL string eg proxy (useful in Russia) or else in "curlcustomstring".
-# like a "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help", if you not need
-# any custom string in curl - simple ignore this parameter.
+# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
@@ -109,9 +111,11 @@ sleeptime="0.5"
## SteamCMD Settings | https://docs.linuxgsm.com/steamcmd
# Server appid
appid="90"
+steamcmdforcewindows="no"
appidmod="cstrike"
# SteamCMD Branch | https://docs.linuxgsm.com/steamcmd/branch
branch=""
+betapassword=""
# Master Server | https://docs.linuxgsm.com/steamcmd/steam-master-server
steammaster="true"
@@ -126,17 +130,22 @@ steammaster="true"
# 8: 7 Days to Die
# 9: GoldSrc
# 10: Avorion
+# 11: end
stopmode="9"
## Query mode
# 1: session only
-# 2: gamedig + gsquery
+# 2: gamedig (gsquery fallback)
# 3: gamedig
# 4: gsquery
# 5: tcp
querymode="2"
querytype="protocol-valve"
+## Console type
+consoleverbose="yes"
+consoleinteract="yes"
+
## Game Server Details
# Do not edit
gamename="Natural Selection"
diff --git a/lgsm/config-default/config-lgsm/onsetserver/_default.cfg b/lgsm/config-default/config-lgsm/onsetserver/_default.cfg
index 7401de91a..eaabae6cd 100644
--- a/lgsm/config-default/config-lgsm/onsetserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/onsetserver/_default.cfg
@@ -8,10 +8,8 @@
#### Game Server Settings ####
-## Server Start Command | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
-fn_parms(){
-parms="--config ${servercfgfullpath}"
-}
+## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
+startparameters="--config ${servercfgfullpath}"
#### LinuxGSM Settings ####
@@ -29,8 +27,6 @@ displayip=""
# More info | https://docs.linuxgsm.com/alerts#more-info
postalert="off"
-postdays="7"
-posttarget="https://termbin.com"
# Discord Alerts | https://docs.linuxgsm.com/alerts/discord
discordalert="off"
@@ -48,6 +44,7 @@ iftttevent="linuxgsm_alert"
# Mailgun Email Alerts | https://docs.linuxgsm.com/alerts/mailgun
mailgunalert="off"
+mailgunapiregion="us"
mailguntoken="accesstoken"
mailgundomain="example.com"
mailgunemailfrom="alert@example.com"
@@ -61,15 +58,20 @@ channeltag=""
# Pushover Alerts | https://docs.linuxgsm.com/alerts/pushover
pushoveralert="off"
pushovertoken="accesstoken"
+pushoveruserkey="userkey"
+
+# Rocket.Chat Alerts | https://docs.linuxgsm.com/alerts/rocket.chat
+rocketchatalert="off"
+rocketchatwebhook="webhook"
+rocketchattoken=""
# Slack Alerts | https://docs.linuxgsm.com/alerts/slack
slackalert="off"
slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
-# You can add a custom cURL string eg proxy (useful in Russia) or else in "curlcustomstring".
-# like a "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help", if you not need
-# any custom string in curl - simple ignore this parameter.
+# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
@@ -102,8 +104,10 @@ sleeptime="0.5"
## SteamCMD Settings | https://docs.linuxgsm.com/steamcmd
# Server appid
appid="1204170"
+steamcmdforcewindows="no"
# SteamCMD Branch | https://docs.linuxgsm.com/steamcmd/branch
branch=""
+betapassword=""
# Master Server | https://docs.linuxgsm.com/steamcmd/steam-master-server
steammaster="false"
@@ -118,17 +122,22 @@ steammaster="false"
# 8: 7 Days to Die
# 9: GoldSrc
# 10: Avorion
+# 11: end
stopmode="2"
## Query mode
# 1: session only
-# 2: gamedig + gsquery
+# 2: gamedig (gsquery fallback)
# 3: gamedig
# 4: gsquery
# 5: tcp
querymode="1"
querytype=""
+## Console type
+consoleverbose="yes"
+consoleinteract="no"
+
## Game Server Details
# Do not edit
gamename="Onset"
diff --git a/lgsm/config-default/config-lgsm/opforserver/_default.cfg b/lgsm/config-default/config-lgsm/opforserver/_default.cfg
index a341627a9..a72dab526 100644
--- a/lgsm/config-default/config-lgsm/opforserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/opforserver/_default.cfg
@@ -8,17 +8,15 @@
#### Game Server Settings ####
-## Server Start Settings | https://docs.linuxgsm.com/configuration/start-parameters
+## Predefined Parameters | https://docs.linuxgsm.com/configuration/start-parameters
ip="0.0.0.0"
port="27015"
clientport="27005"
defaultmap="op4_bootcamp"
maxplayers="16"
-## Server Start Command | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
-fn_parms(){
-parms="-game gearbox -strictportbind +ip ${ip} -port ${port} +clientport ${clientport} +map ${defaultmap} +servercfgfile ${servercfg} -maxplayers ${maxplayers}"
-}
+## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
+startparameters="-game gearbox -strictportbind +ip ${ip} -port ${port} +clientport ${clientport} +map ${defaultmap} +servercfgfile ${servercfg} -maxplayers ${maxplayers}"
#### LinuxGSM Settings ####
@@ -36,8 +34,6 @@ displayip=""
# More info | https://docs.linuxgsm.com/alerts#more-info
postalert="off"
-postdays="7"
-posttarget="https://termbin.com"
# Discord Alerts | https://docs.linuxgsm.com/alerts/discord
discordalert="off"
@@ -55,6 +51,7 @@ iftttevent="linuxgsm_alert"
# Mailgun Email Alerts | https://docs.linuxgsm.com/alerts/mailgun
mailgunalert="off"
+mailgunapiregion="us"
mailguntoken="accesstoken"
mailgundomain="example.com"
mailgunemailfrom="alert@example.com"
@@ -68,15 +65,20 @@ channeltag=""
# Pushover Alerts | https://docs.linuxgsm.com/alerts/pushover
pushoveralert="off"
pushovertoken="accesstoken"
+pushoveruserkey="userkey"
+
+# Rocket.Chat Alerts | https://docs.linuxgsm.com/alerts/rocket.chat
+rocketchatalert="off"
+rocketchatwebhook="webhook"
+rocketchattoken=""
# Slack Alerts | https://docs.linuxgsm.com/alerts/slack
slackalert="off"
slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
-# You can add a custom cURL string eg proxy (useful in Russia) or else in "curlcustomstring".
-# like a "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help", if you not need
-# any custom string in curl - simple ignore this parameter.
+# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
@@ -109,9 +111,11 @@ sleeptime="0.5"
## SteamCMD Settings | https://docs.linuxgsm.com/steamcmd
# Server appid
appid="90"
+steamcmdforcewindows="no"
appidmod="gearbox"
# SteamCMD Branch | https://docs.linuxgsm.com/steamcmd/branch
branch=""
+betapassword=""
# Master Server | https://docs.linuxgsm.com/steamcmd/steam-master-server
steammaster="true"
@@ -126,17 +130,22 @@ steammaster="true"
# 8: 7 Days to Die
# 9: GoldSrc
# 10: Avorion
+# 11: end
stopmode="9"
## Query mode
# 1: session only
-# 2: gamedig + gsquery
+# 2: gamedig (gsquery fallback)
# 3: gamedig
# 4: gsquery
# 5: tcp
querymode="2"
querytype="protocol-valve"
+## Console type
+consoleverbose="yes"
+consoleinteract="yes"
+
## Game Server Details
# Do not edit
gamename="Half-Life: Opposing Force"
diff --git a/lgsm/config-default/config-lgsm/pcserver/_default.cfg b/lgsm/config-default/config-lgsm/pcserver/_default.cfg
index fc74fbe5e..9255cd0d7 100644
--- a/lgsm/config-default/config-lgsm/pcserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/pcserver/_default.cfg
@@ -8,10 +8,8 @@
#### Game Server Settings ####
-## Server Start Command | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
-fn_parms(){
-parms="--config ${servercfg}"
-}
+## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
+startparameters="--config ${servercfg}"
#### LinuxGSM Settings ####
@@ -29,8 +27,6 @@ displayip=""
# More info | https://docs.linuxgsm.com/alerts#more-info
postalert="off"
-postdays="7"
-posttarget="https://termbin.com"
# Discord Alerts | https://docs.linuxgsm.com/alerts/discord
discordalert="off"
@@ -48,6 +44,7 @@ iftttevent="linuxgsm_alert"
# Mailgun Email Alerts | https://docs.linuxgsm.com/alerts/mailgun
mailgunalert="off"
+mailgunapiregion="us"
mailguntoken="accesstoken"
mailgundomain="example.com"
mailgunemailfrom="alert@example.com"
@@ -61,15 +58,20 @@ channeltag=""
# Pushover Alerts | https://docs.linuxgsm.com/alerts/pushover
pushoveralert="off"
pushovertoken="accesstoken"
+pushoveruserkey="userkey"
+
+# Rocket.Chat Alerts | https://docs.linuxgsm.com/alerts/rocket.chat
+rocketchatalert="off"
+rocketchatwebhook="webhook"
+rocketchattoken=""
# Slack Alerts | https://docs.linuxgsm.com/alerts/slack
slackalert="off"
slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
-# You can add a custom cURL string eg proxy (useful in Russia) or else in "curlcustomstring".
-# like a "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help", if you not need
-# any custom string in curl - simple ignore this parameter.
+# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
@@ -102,8 +104,10 @@ sleeptime="0.5"
## SteamCMD Settings | https://docs.linuxgsm.com/steamcmd
# Server appid
appid="332670"
+steamcmdforcewindows="no"
# SteamCMD Branch | https://docs.linuxgsm.com/steamcmd/branch
branch=""
+betapassword=""
# Master Server | https://docs.linuxgsm.com/steamcmd/steam-master-server
steammaster="false"
@@ -118,17 +122,22 @@ steammaster="false"
# 8: 7 Days to Die
# 9: GoldSrc
# 10: Avorion
+# 11: end
stopmode="2"
## Query mode
# 1: session only
-# 2: gamedig + gsquery
+# 2: gamedig (gsquery fallback)
# 3: gamedig
# 4: gsquery
# 5: tcp
querymode="2"
querytype="protocol-valve"
+## Console type
+consoleverbose="yes"
+consoleinteract="no"
+
## Game Server Details
# Do not edit
gamename="Project Cars"
diff --git a/lgsm/config-default/config-lgsm/pstbsserver/_default.cfg b/lgsm/config-default/config-lgsm/pstbsserver/_default.cfg
index 1a80e7a02..7c672d2b2 100644
--- a/lgsm/config-default/config-lgsm/pstbsserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/pstbsserver/_default.cfg
@@ -8,7 +8,7 @@
#### Game Server Settings ####
-## Server Start Settings | https://docs.linuxgsm.com/configuration/start-parameters
+## Predefined Parameters | https://docs.linuxgsm.com/configuration/start-parameters
ip="0.0.0.0"
port="10027"
queryport="10037"
@@ -18,10 +18,8 @@ randommap="NONE"
maxplayers="40"
reservedslots="0"
-## Server Start Command | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
-fn_parms(){
-parms="MULTIHOME=${ip} RANDOM=${randommap} Port=${port} QueryPort=${queryport} RCONPORT=${rconport} FIXEDMAXPLAYERS=${maxplayers} NumReservedSlots=${reservedslots}"
-}
+## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
+startparameters="MULTIHOME=${ip} RANDOM=${randommap} Port=${port} QueryPort=${queryport} RCONPORT=${rconport} FIXEDMAXPLAYERS=${maxplayers} NumReservedSlots=${reservedslots}"
#### LinuxGSM Settings ####
@@ -39,8 +37,6 @@ displayip=""
# More info | https://docs.linuxgsm.com/alerts#more-info
postalert="off"
-postdays="7"
-posttarget="https://termbin.com"
# Discord Alerts | https://docs.linuxgsm.com/alerts/discord
discordalert="off"
@@ -58,6 +54,7 @@ iftttevent="linuxgsm_alert"
# Mailgun Email Alerts | https://docs.linuxgsm.com/alerts/mailgun
mailgunalert="off"
+mailgunapiregion="us"
mailguntoken="accesstoken"
mailgundomain="example.com"
mailgunemailfrom="alert@example.com"
@@ -71,15 +68,20 @@ channeltag=""
# Pushover Alerts | https://docs.linuxgsm.com/alerts/pushover
pushoveralert="off"
pushovertoken="accesstoken"
+pushoveruserkey="userkey"
+
+# Rocket.Chat Alerts | https://docs.linuxgsm.com/alerts/rocket.chat
+rocketchatalert="off"
+rocketchatwebhook="webhook"
+rocketchattoken=""
# Slack Alerts | https://docs.linuxgsm.com/alerts/slack
slackalert="off"
slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
-# You can add a custom cURL string eg proxy (useful in Russia) or else in "curlcustomstring".
-# like a "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help", if you not need
-# any custom string in curl - simple ignore this parameter.
+# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
@@ -112,8 +114,10 @@ sleeptime="0.5"
## SteamCMD Settings | https://docs.linuxgsm.com/steamcmd
# Server appid
appid="746200"
+steamcmdforcewindows="no"
# SteamCMD Branch | https://docs.linuxgsm.com/steamcmd/branch
branch=""
+betapassword=""
# Master Server | https://docs.linuxgsm.com/steamcmd/steam-master-server
steammaster="false"
@@ -128,17 +132,22 @@ steammaster="false"
# 8: 7 Days to Die
# 9: GoldSrc
# 10: Avorion
+# 11: end
stopmode="2"
## Query mode
# 1: session only
-# 2: gamedig + gsquery
+# 2: gamedig (gsquery fallback)
# 3: gamedig
# 4: gsquery
# 5: tcp
querymode="2"
querytype="protocol-valve"
+## Console type
+consoleverbose="yes"
+consoleinteract="no"
+
## Game Server Details
# Do not edit
gamename="pstbsserver"
diff --git a/lgsm/config-default/config-lgsm/pvkiiserver/_default.cfg b/lgsm/config-default/config-lgsm/pvkiiserver/_default.cfg
index 0118ecaa4..7cd158fb9 100644
--- a/lgsm/config-default/config-lgsm/pvkiiserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/pvkiiserver/_default.cfg
@@ -8,7 +8,7 @@
#### Game Server Settings ####
-## Server Start Settings | https://docs.linuxgsm.com/configuration/start-parameters
+## Predefined Parameters | https://docs.linuxgsm.com/configuration/start-parameters
ip="0.0.0.0"
port="27015"
clientport="27005"
@@ -16,10 +16,8 @@ sourcetvport="27020"
defaultmap="bt_island"
maxplayers="24"
-## Server Start Command | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
-fn_parms(){
-parms="-game pvkii -strictportbind -ip ${ip} -port ${port} +clientport ${clientport} +tv_port ${sourcetvport} +map ${defaultmap} +servercfgfile ${servercfg} -maxplayers ${maxplayers}"
-}
+## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
+startparameters="-game pvkii -strictportbind -ip ${ip} -port ${port} +clientport ${clientport} +tv_port ${sourcetvport} +map ${defaultmap} +servercfgfile ${servercfg} -maxplayers ${maxplayers}"
#### LinuxGSM Settings ####
@@ -37,8 +35,6 @@ displayip=""
# More info | https://docs.linuxgsm.com/alerts#more-info
postalert="off"
-postdays="7"
-posttarget="https://termbin.com"
# Discord Alerts | https://docs.linuxgsm.com/alerts/discord
discordalert="off"
@@ -56,6 +52,7 @@ iftttevent="linuxgsm_alert"
# Mailgun Email Alerts | https://docs.linuxgsm.com/alerts/mailgun
mailgunalert="off"
+mailgunapiregion="us"
mailguntoken="accesstoken"
mailgundomain="example.com"
mailgunemailfrom="alert@example.com"
@@ -69,15 +66,20 @@ channeltag=""
# Pushover Alerts | https://docs.linuxgsm.com/alerts/pushover
pushoveralert="off"
pushovertoken="accesstoken"
+pushoveruserkey="userkey"
+
+# Rocket.Chat Alerts | https://docs.linuxgsm.com/alerts/rocket.chat
+rocketchatalert="off"
+rocketchatwebhook="webhook"
+rocketchattoken=""
# Slack Alerts | https://docs.linuxgsm.com/alerts/slack
slackalert="off"
slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
-# You can add a custom cURL string eg proxy (useful in Russia) or else in "curlcustomstring".
-# like a "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help", if you not need
-# any custom string in curl - simple ignore this parameter.
+# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
@@ -110,8 +112,10 @@ sleeptime="0.5"
## SteamCMD Settings | https://docs.linuxgsm.com/steamcmd
# Server appid
appid="17575"
+steamcmdforcewindows="no"
# SteamCMD Branch | https://docs.linuxgsm.com/steamcmd/branch
branch=""
+betapassword=""
# Master Server | https://docs.linuxgsm.com/steamcmd/steam-master-server
steammaster="true"
@@ -126,17 +130,22 @@ steammaster="true"
# 8: 7 Days to Die
# 9: GoldSrc
# 10: Avorion
+# 11: end
stopmode="3"
## Query mode
# 1: session only
-# 2: gamedig + gsquery
+# 2: gamedig (gsquery fallback)
# 3: gamedig
# 4: gsquery
# 5: tcp
querymode="2"
querytype="protocol-valve"
+## Console type
+consoleverbose="yes"
+consoleinteract="yes"
+
## Game Server Details
# Do not edit
gamename="Pirates, Vikings, and Knights II"
diff --git a/lgsm/config-default/config-lgsm/gesserver/_default.cfg b/lgsm/config-default/config-lgsm/pvrserver/_default.cfg
similarity index 75%
rename from lgsm/config-default/config-lgsm/gesserver/_default.cfg
rename to lgsm/config-default/config-lgsm/pvrserver/_default.cfg
index a26a5df39..2c19f47cf 100644
--- a/lgsm/config-default/config-lgsm/gesserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/pvrserver/_default.cfg
@@ -8,18 +8,15 @@
#### Game Server Settings ####
-## Server Start Settings | https://docs.linuxgsm.com/configuration/start-parameters
+## Predefined Parameters | https://docs.linuxgsm.com/configuration/start-parameters
ip="0.0.0.0"
-port="27015"
-clientport="27005"
-sourcetvport="27020"
-defaultmap="ge_archives"
-maxplayers="16"
+port="7777"
-## Server Start Command | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
-fn_parms(){
-parms="-game gesource -strictportbind -ip ${ip} -port ${port} +clientport ${clientport} +tv_port ${sourcetvport} +map ${defaultmap} +servercfgfile ${servercfg} -maxplayers ${maxplayers}"
-}
+# Maps: bridge, datacenter, sand
+defaultmap="datacenter"
+
+## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
+startparameters="${defaultmap} -log -MultiHome=${ip} -Port=${port}"
#### LinuxGSM Settings ####
@@ -37,8 +34,6 @@ displayip=""
# More info | https://docs.linuxgsm.com/alerts#more-info
postalert="off"
-postdays="7"
-posttarget="https://termbin.com"
# Discord Alerts | https://docs.linuxgsm.com/alerts/discord
discordalert="off"
@@ -56,6 +51,7 @@ iftttevent="linuxgsm_alert"
# Mailgun Email Alerts | https://docs.linuxgsm.com/alerts/mailgun
mailgunalert="off"
+mailgunapiregion="us"
mailguntoken="accesstoken"
mailgundomain="example.com"
mailgunemailfrom="alert@example.com"
@@ -69,15 +65,20 @@ channeltag=""
# Pushover Alerts | https://docs.linuxgsm.com/alerts/pushover
pushoveralert="off"
pushovertoken="accesstoken"
+pushoveruserkey="userkey"
+
+# Rocket.Chat Alerts | https://docs.linuxgsm.com/alerts/rocket.chat
+rocketchatalert="off"
+rocketchatwebhook="webhook"
+rocketchattoken=""
# Slack Alerts | https://docs.linuxgsm.com/alerts/slack
slackalert="off"
slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
-# You can add a custom cURL string eg proxy (useful in Russia) or else in "curlcustomstring".
-# like a "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help", if you not need
-# any custom string in curl - simple ignore this parameter.
+# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
@@ -109,11 +110,13 @@ sleeptime="0.5"
## SteamCMD Settings | https://docs.linuxgsm.com/steamcmd
# Server appid
-appid="310" # Source 2007 SDK
+appid="622970"
+steamcmdforcewindows="no"
# SteamCMD Branch | https://docs.linuxgsm.com/steamcmd/branch
branch=""
+betapassword=""
# Master Server | https://docs.linuxgsm.com/steamcmd/steam-master-server
-steammaster="true"
+steammaster="false"
## Stop Mode | https://docs.linuxgsm.com/features/stop-mode
# 1: tmux kill
@@ -126,33 +129,38 @@ steammaster="true"
# 8: 7 Days to Die
# 9: GoldSrc
# 10: Avorion
-stopmode="3"
+# 11: end
+stopmode="2"
## Query mode
# 1: session only
-# 2: gamedig + gsquery
+# 2: gamedig (gsquery fallback)
# 3: gamedig
# 4: gsquery
# 5: tcp
-querymode="2"
-querytype="protocol-valve"
+querymode="1"
+querytype=""
+
+## Console type
+consoleverbose="no"
+consoleinteract="no"
## Game Server Details
# Do not edit
-gamename="GoldenEye: Source"
-engine="source"
-glibc="2.15"
+gamename="Pavlov VR"
+engine="unreal4"
+glibc="2.17"
#### Directories ####
# Edit with care
## Game Server Directories
-systemdir="${serverfiles}/gesource"
-executabledir="${serverfiles}"
-executable="./srcds_run"
-servercfgdir="${systemdir}/cfg"
-servercfg="${selfname}.cfg"
-servercfgdefault="server.cfg"
+systemdir="${serverfiles}/Pavlov"
+executabledir="${systemdir}/Binaries/Linux"
+executable="./PavlovServer"
+servercfgdir="${systemdir}/Saved/Config/LinuxServer"
+servercfg="Game.ini"
+servercfgdefault="Game.ini"
servercfgfullpath="${servercfgdir}/${servercfg}"
## Backup Directory
@@ -160,7 +168,7 @@ backupdir="${lgsmdir}/backup"
## Logging Directories
logdir="${rootdir}/log"
-gamelogdir="${systemdir}/logs"
+gamelogdir="${systemdir}/Saved/Logs"
lgsmlogdir="${logdir}/script"
consolelogdir="${logdir}/console"
lgsmlog="${lgsmlogdir}/${selfname}-script.log"
diff --git a/lgsm/config-default/config-lgsm/pzserver/_default.cfg b/lgsm/config-default/config-lgsm/pzserver/_default.cfg
index da9ae479d..0dd761a86 100644
--- a/lgsm/config-default/config-lgsm/pzserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/pzserver/_default.cfg
@@ -8,14 +8,12 @@
#### Game Server Settings ####
-## Server Start Settings | https://docs.linuxgsm.com/configuration/start-parameters
+## Predefined Parameters | https://docs.linuxgsm.com/configuration/start-parameters
ip="0.0.0.0"
adminpassword="CHANGE_ME"
-## Server Start Command | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
-fn_parms(){
-parms="-ip ${ip} -adminpassword \"${adminpassword}\" -servername ${selfname}"
-}
+## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
+startparameters="-ip ${ip} -adminpassword \"${adminpassword}\" -servername ${selfname}"
#### LinuxGSM Settings ####
@@ -33,8 +31,6 @@ displayip=""
# More info | https://docs.linuxgsm.com/alerts#more-info
postalert="off"
-postdays="7"
-posttarget="https://termbin.com"
# Discord Alerts | https://docs.linuxgsm.com/alerts/discord
discordalert="off"
@@ -52,6 +48,7 @@ iftttevent="linuxgsm_alert"
# Mailgun Email Alerts | https://docs.linuxgsm.com/alerts/mailgun
mailgunalert="off"
+mailgunapiregion="us"
mailguntoken="accesstoken"
mailgundomain="example.com"
mailgunemailfrom="alert@example.com"
@@ -65,15 +62,20 @@ channeltag=""
# Pushover Alerts | https://docs.linuxgsm.com/alerts/pushover
pushoveralert="off"
pushovertoken="accesstoken"
+pushoveruserkey="userkey"
+
+# Rocket.Chat Alerts | https://docs.linuxgsm.com/alerts/rocket.chat
+rocketchatalert="off"
+rocketchatwebhook="webhook"
+rocketchattoken=""
# Slack Alerts | https://docs.linuxgsm.com/alerts/slack
slackalert="off"
slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
-# You can add a custom cURL string eg proxy (useful in Russia) or else in "curlcustomstring".
-# like a "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help", if you not need
-# any custom string in curl - simple ignore this parameter.
+# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
@@ -106,8 +108,10 @@ sleeptime="0.5"
## SteamCMD Settings | https://docs.linuxgsm.com/steamcmd
# Server appid
appid="380870"
+steamcmdforcewindows="no"
# SteamCMD Branch | https://docs.linuxgsm.com/steamcmd/branch
branch=""
+betapassword=""
# Master Server | https://docs.linuxgsm.com/steamcmd/steam-master-server
steammaster="false"
@@ -122,17 +126,22 @@ steammaster="false"
# 8: 7 Days to Die
# 9: GoldSrc
# 10: Avorion
+# 11: end
stopmode="3"
## Query mode
# 1: session only
-# 2: gamedig + gsquery
+# 2: gamedig (gsquery fallback)
# 3: gamedig
# 4: gsquery
# 5: tcp
querymode="2"
querytype="protocol-valve"
+## Console type
+consoleverbose="yes"
+consoleinteract="yes"
+
## Game Server Details
# Do not edit
gamename="Project Zomboid"
diff --git a/lgsm/config-default/config-lgsm/q2server/_default.cfg b/lgsm/config-default/config-lgsm/q2server/_default.cfg
index 832f641c7..3e6615789 100644
--- a/lgsm/config-default/config-lgsm/q2server/_default.cfg
+++ b/lgsm/config-default/config-lgsm/q2server/_default.cfg
@@ -8,15 +8,13 @@
#### Game Server Settings ####
-## Server Start Settings | https://docs.linuxgsm.com/configuration/start-parameters
+## Predefined Parameters | https://docs.linuxgsm.com/configuration/start-parameters
ip="0.0.0.0"
port="27910"
defaultmap="q2dm1"
-## Server Start Command | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
-fn_parms(){
-parms="+set dedicated 1 +set ip ${ip} +set port ${port} +exec ${servercfg} +set deathmatch 1 +map ${defaultmap}"
-}
+## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
+startparameters="+set dedicated 1 +set ip ${ip} +set port ${port} +exec ${servercfg} +set deathmatch 1 +map ${defaultmap}"
#### LinuxGSM Settings ####
@@ -34,8 +32,6 @@ displayip=""
# More info | https://docs.linuxgsm.com/alerts#more-info
postalert="off"
-postdays="7"
-posttarget="https://termbin.com"
# Discord Alerts | https://docs.linuxgsm.com/alerts/discord
discordalert="off"
@@ -53,6 +49,7 @@ iftttevent="linuxgsm_alert"
# Mailgun Email Alerts | https://docs.linuxgsm.com/alerts/mailgun
mailgunalert="off"
+mailgunapiregion="us"
mailguntoken="accesstoken"
mailgundomain="example.com"
mailgunemailfrom="alert@example.com"
@@ -66,15 +63,20 @@ channeltag=""
# Pushover Alerts | https://docs.linuxgsm.com/alerts/pushover
pushoveralert="off"
pushovertoken="accesstoken"
+pushoveruserkey="userkey"
+
+# Rocket.Chat Alerts | https://docs.linuxgsm.com/alerts/rocket.chat
+rocketchatalert="off"
+rocketchatwebhook="webhook"
+rocketchattoken=""
# Slack Alerts | https://docs.linuxgsm.com/alerts/slack
slackalert="off"
slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
-# You can add a custom cURL string eg proxy (useful in Russia) or else in "curlcustomstring".
-# like a "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help", if you not need
-# any custom string in curl - simple ignore this parameter.
+# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
@@ -112,17 +114,22 @@ sleeptime="0.5"
# 8: 7 Days to Die
# 9: GoldSrc
# 10: Avorion
+# 11: end
stopmode="3"
## Query mode
# 1: session only
-# 2: gamedig + gsquery
+# 2: gamedig (gsquery fallback)
# 3: gamedig
# 4: gsquery
# 5: tcp
querymode="2"
querytype="protocol-quake2"
+## Console type
+consoleverbose="yes"
+consoleinteract="yes"
+
## Game Server Details
# Do not edit
gamename="Quake 2"
diff --git a/lgsm/config-default/config-lgsm/q3server/_default.cfg b/lgsm/config-default/config-lgsm/q3server/_default.cfg
index 6d28f4caf..af107b398 100644
--- a/lgsm/config-default/config-lgsm/q3server/_default.cfg
+++ b/lgsm/config-default/config-lgsm/q3server/_default.cfg
@@ -8,15 +8,13 @@
#### Game Server Settings ####
-## Server Start Settings | https://docs.linuxgsm.com/configuration/start-parameters
+## Predefined Parameters | https://docs.linuxgsm.com/configuration/start-parameters
ip="0.0.0.0"
port="27960"
defaultmap="q3dm17"
-## Server Start Command | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
-fn_parms(){
-parms="+set sv_punkbuster 0 +set fs_basepath ${serverfiles} +set dedicated 2 +set com_hunkMegs 32 +set net_ip ${ip} +set net_port ${port} +exec ${servercfg} +map ${defaultmap}"
-}
+## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
+startparameters="+set sv_punkbuster 0 +set fs_basepath ${serverfiles} +set dedicated 2 +set com_hunkMegs 32 +set net_ip ${ip} +set net_port ${port} +exec ${servercfg} +map ${defaultmap}"
#### LinuxGSM Settings ####
@@ -34,8 +32,6 @@ displayip=""
# More info | https://docs.linuxgsm.com/alerts#more-info
postalert="off"
-postdays="7"
-posttarget="https://termbin.com"
# Discord Alerts | https://docs.linuxgsm.com/alerts/discord
discordalert="off"
@@ -53,6 +49,7 @@ iftttevent="linuxgsm_alert"
# Mailgun Email Alerts | https://docs.linuxgsm.com/alerts/mailgun
mailgunalert="off"
+mailgunapiregion="us"
mailguntoken="accesstoken"
mailgundomain="example.com"
mailgunemailfrom="alert@example.com"
@@ -66,15 +63,20 @@ channeltag=""
# Pushover Alerts | https://docs.linuxgsm.com/alerts/pushover
pushoveralert="off"
pushovertoken="accesstoken"
+pushoveruserkey="userkey"
+
+# Rocket.Chat Alerts | https://docs.linuxgsm.com/alerts/rocket.chat
+rocketchatalert="off"
+rocketchatwebhook="webhook"
+rocketchattoken=""
# Slack Alerts | https://docs.linuxgsm.com/alerts/slack
slackalert="off"
slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
-# You can add a custom cURL string eg proxy (useful in Russia) or else in "curlcustomstring".
-# like a "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help", if you not need
-# any custom string in curl - simple ignore this parameter.
+# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
@@ -112,17 +114,22 @@ sleeptime="0.5"
# 8: 7 Days to Die
# 9: GoldSrc
# 10: Avorion
+# 11: end
stopmode="3"
## Query mode
# 1: session only
-# 2: gamedig + gsquery
+# 2: gamedig (gsquery fallback)
# 3: gamedig
# 4: gsquery
# 5: tcp
querymode="2"
querytype="protocol-quake3"
+## Console type
+consoleverbose="yes"
+consoleinteract="yes"
+
## Game Server Details
# Do not edit
gamename="Quake 3: Arena"
diff --git a/lgsm/config-default/config-lgsm/qlserver/_default.cfg b/lgsm/config-default/config-lgsm/qlserver/_default.cfg
index 3a5471ad6..8d06fac7f 100644
--- a/lgsm/config-default/config-lgsm/qlserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/qlserver/_default.cfg
@@ -8,12 +8,8 @@
#### Game Server Settings ####
-## Server Start Command | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
-# Edit with care | Install/Config Guide : https://steamcommunity.com/sharedfiles/filedetails/?id=542966946
-# Console Commands : http://www.regurge.at/ql
-fn_parms(){
-parms="+exec ${servercfg}"
-}
+## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
+startparameters="+exec ${servercfg}"
#### LinuxGSM Settings ####
@@ -31,8 +27,6 @@ displayip=""
# More info | https://docs.linuxgsm.com/alerts#more-info
postalert="off"
-postdays="7"
-posttarget="https://termbin.com"
# Discord Alerts | https://docs.linuxgsm.com/alerts/discord
discordalert="off"
@@ -50,6 +44,7 @@ iftttevent="linuxgsm_alert"
# Mailgun Email Alerts | https://docs.linuxgsm.com/alerts/mailgun
mailgunalert="off"
+mailgunapiregion="us"
mailguntoken="accesstoken"
mailgundomain="example.com"
mailgunemailfrom="alert@example.com"
@@ -63,15 +58,20 @@ channeltag=""
# Pushover Alerts | https://docs.linuxgsm.com/alerts/pushover
pushoveralert="off"
pushovertoken="accesstoken"
+pushoveruserkey="userkey"
+
+# Rocket.Chat Alerts | https://docs.linuxgsm.com/alerts/rocket.chat
+rocketchatalert="off"
+rocketchatwebhook="webhook"
+rocketchattoken=""
# Slack Alerts | https://docs.linuxgsm.com/alerts/slack
slackalert="off"
slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
-# You can add a custom cURL string eg proxy (useful in Russia) or else in "curlcustomstring".
-# like a "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help", if you not need
-# any custom string in curl - simple ignore this parameter.
+# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
@@ -104,8 +104,10 @@ sleeptime="0.5"
## SteamCMD Settings | https://docs.linuxgsm.com/steamcmd
# Server appid
appid="349090"
+steamcmdforcewindows="no"
# SteamCMD Branch | https://docs.linuxgsm.com/steamcmd/branch
branch=""
+betapassword=""
# Master Server | https://docs.linuxgsm.com/steamcmd/steam-master-server
steammaster="true"
@@ -120,17 +122,22 @@ steammaster="true"
# 8: 7 Days to Die
# 9: GoldSrc
# 10: Avorion
+# 11: end
stopmode="3"
## Query mode
# 1: session only
-# 2: gamedig + gsquery
+# 2: gamedig (gsquery fallback)
# 3: gamedig
# 4: gsquery
# 5: tcp
querymode="2"
querytype="protocol-valve"
+## Console type
+consoleverbose="yes"
+consoleinteract="yes"
+
## Game Server Details
# Do not edit
gamename="Quake Live"
diff --git a/lgsm/config-default/config-lgsm/qwserver/_default.cfg b/lgsm/config-default/config-lgsm/qwserver/_default.cfg
index 59cdcc0f1..0aade5c5e 100644
--- a/lgsm/config-default/config-lgsm/qwserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/qwserver/_default.cfg
@@ -8,14 +8,12 @@
#### Game Server Settings ####
-## Server Start Settings | https://docs.linuxgsm.com/configuration/start-parameters
+## Predefined Parameters | https://docs.linuxgsm.com/configuration/start-parameters
ip="0.0.0.0"
port="27500"
-## Server Start Command | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
-fn_parms(){
-parms="-port ${port} -game ktx +exec ${servercfg}"
-}
+## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
+startparameters="-port ${port} -game ktx +exec ${servercfg}"
#### LinuxGSM Settings ####
@@ -33,8 +31,6 @@ displayip=""
# More info | https://docs.linuxgsm.com/alerts#more-info
postalert="off"
-postdays="7"
-posttarget="https://termbin.com"
# Discord Alerts | https://docs.linuxgsm.com/alerts/discord
discordalert="off"
@@ -52,6 +48,7 @@ iftttevent="linuxgsm_alert"
# Mailgun Email Alerts | https://docs.linuxgsm.com/alerts/mailgun
mailgunalert="off"
+mailgunapiregion="us"
mailguntoken="accesstoken"
mailgundomain="example.com"
mailgunemailfrom="alert@example.com"
@@ -65,15 +62,20 @@ channeltag=""
# Pushover Alerts | https://docs.linuxgsm.com/alerts/pushover
pushoveralert="off"
pushovertoken="accesstoken"
+pushoveruserkey="userkey"
+
+# Rocket.Chat Alerts | https://docs.linuxgsm.com/alerts/rocket.chat
+rocketchatalert="off"
+rocketchatwebhook="webhook"
+rocketchattoken=""
# Slack Alerts | https://docs.linuxgsm.com/alerts/slack
slackalert="off"
slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
-# You can add a custom cURL string eg proxy (useful in Russia) or else in "curlcustomstring".
-# like a "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help", if you not need
-# any custom string in curl - simple ignore this parameter.
+# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
@@ -111,17 +113,22 @@ sleeptime="0.5"
# 8: 7 Days to Die
# 9: GoldSrc
# 10: Avorion
+# 11: end
stopmode="3"
## Query mode
# 1: session only
-# 2: gamedig + gsquery
+# 2: gamedig (gsquery fallback)
# 3: gamedig
# 4: gsquery
# 5: tcp
querymode="2"
querytype="protocol-quake1"
+## Console type
+consoleverbose="yes"
+consoleinteract="yes"
+
## Game Server Details
# Do not edit
gamename="QuakeWorld"
diff --git a/lgsm/config-default/config-lgsm/ricochetserver/_default.cfg b/lgsm/config-default/config-lgsm/ricochetserver/_default.cfg
index b825fb75b..f1c3db9af 100644
--- a/lgsm/config-default/config-lgsm/ricochetserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/ricochetserver/_default.cfg
@@ -8,17 +8,15 @@
#### Game Server Settings ####
-## Server Start Settings | https://docs.linuxgsm.com/configuration/start-parameters
+## Predefined Parameters | https://docs.linuxgsm.com/configuration/start-parameters
ip="0.0.0.0"
port="27015"
clientport="27005"
defaultmap="rc_arena"
maxplayers="16"
-## Server Start Command | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
-fn_parms(){
-parms="-game ricochet -strictportbind +ip ${ip} -port ${port} +clientport ${clientport} +map ${defaultmap} +servercfgfile ${servercfg} -maxplayers ${maxplayers}"
-}
+## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
+startparameters="-game ricochet -strictportbind +ip ${ip} -port ${port} +clientport ${clientport} +map ${defaultmap} +servercfgfile ${servercfg} -maxplayers ${maxplayers}"
#### LinuxGSM Settings ####
@@ -36,8 +34,6 @@ displayip=""
# More info | https://docs.linuxgsm.com/alerts#more-info
postalert="off"
-postdays="7"
-posttarget="https://termbin.com"
# Discord Alerts | https://docs.linuxgsm.com/alerts/discord
discordalert="off"
@@ -55,6 +51,7 @@ iftttevent="linuxgsm_alert"
# Mailgun Email Alerts | https://docs.linuxgsm.com/alerts/mailgun
mailgunalert="off"
+mailgunapiregion="us"
mailguntoken="accesstoken"
mailgundomain="example.com"
mailgunemailfrom="alert@example.com"
@@ -68,15 +65,20 @@ channeltag=""
# Pushover Alerts | https://docs.linuxgsm.com/alerts/pushover
pushoveralert="off"
pushovertoken="accesstoken"
+pushoveruserkey="userkey"
+
+# Rocket.Chat Alerts | https://docs.linuxgsm.com/alerts/rocket.chat
+rocketchatalert="off"
+rocketchatwebhook="webhook"
+rocketchattoken=""
# Slack Alerts | https://docs.linuxgsm.com/alerts/slack
slackalert="off"
slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
-# You can add a custom cURL string eg proxy (useful in Russia) or else in "curlcustomstring".
-# like a "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help", if you not need
-# any custom string in curl - simple ignore this parameter.
+# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
@@ -109,9 +111,11 @@ sleeptime="0.5"
## SteamCMD Settings | https://docs.linuxgsm.com/steamcmd
# Server appid
appid="90"
+steamcmdforcewindows="no"
appidmod="ricochet"
# SteamCMD Branch | https://docs.linuxgsm.com/steamcmd/branch
branch=""
+betapassword=""
# Master Server | https://docs.linuxgsm.com/steamcmd/steam-master-server
steammaster="true"
@@ -126,17 +130,22 @@ steammaster="true"
# 8: 7 Days to Die
# 9: GoldSrc
# 10: Avorion
+# 11: end
stopmode="9"
## Query mode
# 1: session only
-# 2: gamedig + gsquery
+# 2: gamedig (gsquery fallback)
# 3: gamedig
# 4: gsquery
# 5: tcp
querymode="2"
querytype="protocol-valve"
+## Console type
+consoleverbose="yes"
+consoleinteract="yes"
+
## Game Server Details
# Do not edit
gamename="Ricochet"
diff --git a/lgsm/config-default/config-lgsm/roserver/_default.cfg b/lgsm/config-default/config-lgsm/roserver/_default.cfg
index 3cbfd5888..61824aa42 100644
--- a/lgsm/config-default/config-lgsm/roserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/roserver/_default.cfg
@@ -12,14 +12,12 @@
steamuser="username"
steampass='password'
-## Server Start Settings | https://docs.linuxgsm.com/configuration/start-parameters
+## Predefined Parameters | https://docs.linuxgsm.com/configuration/start-parameters
ip="0.0.0.0"
defaultmap="RO-Arad.rom"
-## Server Start Command | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
-fn_parms(){
-parms="server ${defaultmap}?game=ROGame.ROTeamGame?VACSecured=true -nohomedir ini=${servercfg} log=${gamelog}"
-}
+## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
+startparameters="server ${defaultmap}?game=ROGame.ROTeamGame?VACSecured=true -nohomedir ini=${servercfg} log=${gamelog}"
#### LinuxGSM Settings ####
@@ -37,8 +35,6 @@ displayip=""
# More info | https://docs.linuxgsm.com/alerts#more-info
postalert="off"
-postdays="7"
-posttarget="https://termbin.com"
# Discord Alerts | https://docs.linuxgsm.com/alerts/discord
discordalert="off"
@@ -56,6 +52,7 @@ iftttevent="linuxgsm_alert"
# Mailgun Email Alerts | https://docs.linuxgsm.com/alerts/mailgun
mailgunalert="off"
+mailgunapiregion="us"
mailguntoken="accesstoken"
mailgundomain="example.com"
mailgunemailfrom="alert@example.com"
@@ -69,15 +66,20 @@ channeltag=""
# Pushover Alerts | https://docs.linuxgsm.com/alerts/pushover
pushoveralert="off"
pushovertoken="accesstoken"
+pushoveruserkey="userkey"
+
+# Rocket.Chat Alerts | https://docs.linuxgsm.com/alerts/rocket.chat
+rocketchatalert="off"
+rocketchatwebhook="webhook"
+rocketchattoken=""
# Slack Alerts | https://docs.linuxgsm.com/alerts/slack
slackalert="off"
slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
-# You can add a custom cURL string eg proxy (useful in Russia) or else in "curlcustomstring".
-# like a "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help", if you not need
-# any custom string in curl - simple ignore this parameter.
+# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
@@ -110,8 +112,10 @@ sleeptime="0.5"
## SteamCMD Settings | https://docs.linuxgsm.com/steamcmd
# Server appid
appid="223250"
+steamcmdforcewindows="no"
# SteamCMD Branch | https://docs.linuxgsm.com/steamcmd/branch
branch=""
+betapassword=""
# Master Server | https://docs.linuxgsm.com/steamcmd/steam-master-server
steammaster="false"
@@ -126,17 +130,22 @@ steammaster="false"
# 8: 7 Days to Die
# 9: GoldSrc
# 10: Avorion
+# 11: end
stopmode="2"
## Query mode
# 1: session only
-# 2: gamedig + gsquery
+# 2: gamedig (gsquery fallback)
# 3: gamedig
# 4: gsquery
# 5: tcp
querymode="2"
querytype="protocol-unreal2"
+## Console type
+consoleverbose="yes"
+consoleinteract="no"
+
## Game Server Details
# Do not edit
gamename="Red Orchestra: Ostfront 41-45"
diff --git a/lgsm/config-default/config-lgsm/rtcwserver/_default.cfg b/lgsm/config-default/config-lgsm/rtcwserver/_default.cfg
index 93b9ce3fe..781ecf5a0 100644
--- a/lgsm/config-default/config-lgsm/rtcwserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/rtcwserver/_default.cfg
@@ -8,15 +8,13 @@
#### Game Server Settings ####
-## Server Start Settings | https://docs.linuxgsm.com/configuration/start-parameters
+## Predefined Parameters | https://docs.linuxgsm.com/configuration/start-parameters
ip="0.0.0.0"
port="27960"
defaultmap="mp_beach"
-## Server Start Command | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
-fn_parms(){
-parms="+set sv_punkbuster 0 +set fs_basepath ${serverfiles} +set dedicated 1 +set net_ip ${ip} +set net_port ${port} +exec ${servercfg} +map ${defaultmap}"
-}
+## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
+startparameters="+set sv_punkbuster 0 +set fs_basepath ${serverfiles} +set dedicated 1 +set net_ip ${ip} +set net_port ${port} +exec ${servercfg} +map ${defaultmap}"
#### LinuxGSM Settings ####
@@ -34,8 +32,6 @@ displayip=""
# More info | https://docs.linuxgsm.com/alerts#more-info
postalert="off"
-postdays="7"
-posttarget="https://termbin.com"
# Discord Alerts | https://docs.linuxgsm.com/alerts/discord
discordalert="off"
@@ -53,6 +49,7 @@ iftttevent="linuxgsm_alert"
# Mailgun Email Alerts | https://docs.linuxgsm.com/alerts/mailgun
mailgunalert="off"
+mailgunapiregion="us"
mailguntoken="accesstoken"
mailgundomain="example.com"
mailgunemailfrom="alert@example.com"
@@ -66,15 +63,20 @@ channeltag=""
# Pushover Alerts | https://docs.linuxgsm.com/alerts/pushover
pushoveralert="off"
pushovertoken="accesstoken"
+pushoveruserkey="userkey"
+
+# Rocket.Chat Alerts | https://docs.linuxgsm.com/alerts/rocket.chat
+rocketchatalert="off"
+rocketchatwebhook="webhook"
+rocketchattoken=""
# Slack Alerts | https://docs.linuxgsm.com/alerts/slack
slackalert="off"
slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
-# You can add a custom cURL string eg proxy (useful in Russia) or else in "curlcustomstring".
-# like a "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help", if you not need
-# any custom string in curl - simple ignore this parameter.
+# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
@@ -112,17 +114,22 @@ sleeptime="0.5"
# 8: 7 Days to Die
# 9: GoldSrc
# 10: Avorion
+# 11: end
stopmode="3"
## Query mode
# 1: session only
-# 2: gamedig + gsquery
+# 2: gamedig (gsquery fallback)
# 3: gamedig
# 4: gsquery
# 5: tcp
querymode="2"
querytype="protocol-quake3"
+## Console type
+consoleverbose="yes"
+consoleinteract="no"
+
## Game Server Details
# Do not edit
gamename="Return to Castle Wolfenstein"
diff --git a/lgsm/config-default/config-lgsm/rustserver/_default.cfg b/lgsm/config-default/config-lgsm/rustserver/_default.cfg
index cf70cdae7..4d695f7d1 100644
--- a/lgsm/config-default/config-lgsm/rustserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/rustserver/_default.cfg
@@ -8,42 +8,23 @@
#### Game Server Settings ####
-## Server Start Settings | https://docs.linuxgsm.com/configuration/start-parameters
-# More settings available after install in serverfiles/server/rust-server/server.cfg
+## Predefined Parameters | https://docs.linuxgsm.com/configuration/start-parameters
ip="0.0.0.0"
port="28015"
rconport="28016"
+appport=28082
rconpassword="CHANGE_ME"
-rconweb="1" # Value is: 1 for Facepunch's web panel; 0 for RCON tools like Rusty or Rustadmin
+rconweb="1" # Value is: 1 for the Facepunch web panel, Rustadmin desktop and Rustadmin Online; 0 for RCON tools like Rusty.
servername="Rust"
maxplayers="50"
+seed="" # range: 1-2147483647, used to reproduce a procedural map.
+salt="" # range: unknown, used to recover a known setting from an existing map.
+worldsize="3000" # default: 3000, range: 1000-6000, map size in meters.
+saveinterval="300" # Auto-save in seconds.
+tickrate="30" # default: 30, range: 15-100.
-# Advanced Start Settings
-seed="" # default random; range : 1 to 2147483647 ; used to change or reproduce a procedural map
-salt="" # default random; range : unknown range ; used to recover a known setting from an existing map
-worldsize="3000" # default 3000; range : 1000 to 6000 ; map size in meters
-saveinterval="300" # Auto-save in seconds
-tickrate="30" # default 30; range : 15 to 100
-
-## Server Start Command | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
-fn_parms(){
-# Specific to Rust
-if [ "${seed}" ]; then
- # If set, then add to start parms
- conditionalseed="+server.seed ${seed}"
-else
- # Keep randomness of the number if not set
- conditionalseed=""
-fi
-if [ "${salt}" ]; then
- # If set, then add to start parms
- conditionalsalt="+server.salt ${salt}"
-else
- # Keep randomness of the number if not set
- conditionalsalt=""
-fi
-parms="-batchmode +server.ip ${ip} +server.port ${port} +server.tickrate ${tickrate} +server.hostname \"${servername}\" +server.identity \"${selfname}\" ${conditionalseed} ${conditionalsalt} +server.maxplayers ${maxplayers} +server.worldsize ${worldsize} +server.saveinterval ${saveinterval} +rcon.web ${rconweb} +rcon.ip ${ip} +rcon.port ${rconport} +rcon.password \"${rconpassword}\" -logfile \"${gamelogdate}\""
-}
+## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
+startparameters="-batchmode +app.listenip ${ip} +app.port ${appport} +server.ip ${ip} +server.port ${port} +server.tickrate ${tickrate} +server.hostname \"${servername}\" +server.identity \"${selfname}\" +server.seed ${seed} +server.salt ${salt} +server.maxplayers ${maxplayers} +server.worldsize ${worldsize} +server.saveinterval ${saveinterval} +rcon.web ${rconweb} +rcon.ip ${ip} +rcon.port ${rconport} +rcon.password \"${rconpassword}\" -logfile"
#### LinuxGSM Settings ####
@@ -61,8 +42,6 @@ displayip=""
# More info | https://docs.linuxgsm.com/alerts#more-info
postalert="off"
-postdays="7"
-posttarget="https://termbin.com"
# Discord Alerts | https://docs.linuxgsm.com/alerts/discord
discordalert="off"
@@ -80,6 +59,7 @@ iftttevent="linuxgsm_alert"
# Mailgun Email Alerts | https://docs.linuxgsm.com/alerts/mailgun
mailgunalert="off"
+mailgunapiregion="us"
mailguntoken="accesstoken"
mailgundomain="example.com"
mailgunemailfrom="alert@example.com"
@@ -93,15 +73,20 @@ channeltag=""
# Pushover Alerts | https://docs.linuxgsm.com/alerts/pushover
pushoveralert="off"
pushovertoken="accesstoken"
+pushoveruserkey="userkey"
+
+# Rocket.Chat Alerts | https://docs.linuxgsm.com/alerts/rocket.chat
+rocketchatalert="off"
+rocketchatwebhook="webhook"
+rocketchattoken=""
# Slack Alerts | https://docs.linuxgsm.com/alerts/slack
slackalert="off"
slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
-# You can add a custom cURL string eg proxy (useful in Russia) or else in "curlcustomstring".
-# like a "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help", if you not need
-# any custom string in curl - simple ignore this parameter.
+# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
@@ -134,8 +119,10 @@ sleeptime="0.5"
## SteamCMD Settings | https://docs.linuxgsm.com/steamcmd
# Server appid
appid="258550"
+steamcmdforcewindows="no"
# SteamCMD Branch | https://docs.linuxgsm.com/steamcmd/branch
branch=""
+betapassword=""
# Master Server | https://docs.linuxgsm.com/steamcmd/steam-master-server
steammaster="false"
@@ -150,17 +137,22 @@ steammaster="false"
# 8: 7 Days to Die
# 9: GoldSrc
# 10: Avorion
+# 11: end
stopmode="2"
## Query mode
# 1: session only
-# 2: gamedig + gsquery
+# 2: gamedig (gsquery fallback)
# 3: gamedig
# 4: gsquery
# 5: tcp
querymode="2"
querytype="protocol-valve"
+## Console type
+consoleverbose="yes"
+consoleinteract="no"
+
## Game Server Details
# Do not edit
gamename="Rust"
diff --git a/lgsm/config-default/config-lgsm/rwserver/_default.cfg b/lgsm/config-default/config-lgsm/rwserver/_default.cfg
index 95c37ef2d..98b79596f 100644
--- a/lgsm/config-default/config-lgsm/rwserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/rwserver/_default.cfg
@@ -8,13 +8,11 @@
#### Game Server Settings ####
-## Server Start Settings | https://docs.linuxgsm.com/configuration/start-parameters
+## Predefined Parameters | https://docs.linuxgsm.com/configuration/start-parameters
javaram="2048" # -Xmx$2048M
-## Server Start Command | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
-fn_parms(){
-parms=""
-}
+## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
+startparameters=""
#### LinuxGSM Settings ####
@@ -32,8 +30,6 @@ displayip=""
# More info | https://docs.linuxgsm.com/alerts#more-info
postalert="off"
-postdays="7"
-posttarget="https://termbin.com"
# Discord Alerts | https://docs.linuxgsm.com/alerts/discord
discordalert="off"
@@ -51,6 +47,7 @@ iftttevent="linuxgsm_alert"
# Mailgun Email Alerts | https://docs.linuxgsm.com/alerts/mailgun
mailgunalert="off"
+mailgunapiregion="us"
mailguntoken="accesstoken"
mailgundomain="example.com"
mailgunemailfrom="alert@example.com"
@@ -64,15 +61,20 @@ channeltag=""
# Pushover Alerts | https://docs.linuxgsm.com/alerts/pushover
pushoveralert="off"
pushovertoken="accesstoken"
+pushoveruserkey="userkey"
+
+# Rocket.Chat Alerts | https://docs.linuxgsm.com/alerts/rocket.chat
+rocketchatalert="off"
+rocketchatwebhook="webhook"
+rocketchattoken=""
# Slack Alerts | https://docs.linuxgsm.com/alerts/slack
slackalert="off"
slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
-# You can add a custom cURL string eg proxy (useful in Russia) or else in "curlcustomstring".
-# like a "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help", if you not need
-# any custom string in curl - simple ignore this parameter.
+# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
@@ -105,8 +107,10 @@ sleeptime="0.5"
## SteamCMD Settings | https://docs.linuxgsm.com/steamcmd
# Server appid
appid="339010"
+steamcmdforcewindows="no"
# SteamCMD Branch | https://docs.linuxgsm.com/steamcmd/branch
branch=""
+betapassword=""
# Master Server | https://docs.linuxgsm.com/steamcmd/steam-master-server
steammaster="false"
@@ -121,17 +125,22 @@ steammaster="false"
# 8: 7 Days to Die
# 9: GoldSrc
# 10: Avorion
+# 11: end
stopmode="3"
## Query mode
# 1: session only
-# 2: gamedig + gsquery
+# 2: gamedig (gsquery fallback)
# 3: gamedig
# 4: gsquery
# 5: tcp
querymode="1"
querytype=""
+## Console type
+consoleverbose="yes"
+consoleinteract="no"
+
## Game Server Details
# Do not edit
gamename="Rising World"
@@ -144,7 +153,8 @@ glibc="null"
## Game Server Directories
systemdir="${serverfiles}"
executabledir="${serverfiles}"
-executable="java -Xmx${javaram}m -jar ${serverfiles}/server.jar"
+preexecutable="java -Xmx${javaram}M -jar"
+executable="./server.jar"
servercfgdir="${systemdir}"
servercfg="server.properties"
servercfgdefault="server.properties"
diff --git a/lgsm/config-default/config-lgsm/sampserver/_default.cfg b/lgsm/config-default/config-lgsm/sampserver/_default.cfg
index 67331ee39..aab4adf45 100644
--- a/lgsm/config-default/config-lgsm/sampserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/sampserver/_default.cfg
@@ -8,14 +8,12 @@
#### Game Server Settings ####
-## Server Start Settings | https://docs.linuxgsm.com/configuration/start-parameters
+## Predefined Parameters | https://docs.linuxgsm.com/configuration/start-parameters
ip="0.0.0.0"
port="7777"
-## Server Start Command | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
-fn_parms(){
-parms=""
-}
+## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
+startparameters=""
#### LinuxGSM Settings ####
@@ -33,8 +31,6 @@ displayip=""
# More info | https://docs.linuxgsm.com/alerts#more-info
postalert="off"
-postdays="7"
-posttarget="https://termbin.com"
# Discord Alerts | https://docs.linuxgsm.com/alerts/discord
discordalert="off"
@@ -52,6 +48,7 @@ iftttevent="linuxgsm_alert"
# Mailgun Email Alerts | https://docs.linuxgsm.com/alerts/mailgun
mailgunalert="off"
+mailgunapiregion="us"
mailguntoken="accesstoken"
mailgundomain="example.com"
mailgunemailfrom="alert@example.com"
@@ -65,15 +62,20 @@ channeltag=""
# Pushover Alerts | https://docs.linuxgsm.com/alerts/pushover
pushoveralert="off"
pushovertoken="accesstoken"
+pushoveruserkey="userkey"
+
+# Rocket.Chat Alerts | https://docs.linuxgsm.com/alerts/rocket.chat
+rocketchatalert="off"
+rocketchatwebhook="webhook"
+rocketchattoken=""
# Slack Alerts | https://docs.linuxgsm.com/alerts/slack
slackalert="off"
slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
-# You can add a custom cURL string eg proxy (useful in Russia) or else in "curlcustomstring".
-# like a "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help", if you not need
-# any custom string in curl - simple ignore this parameter.
+# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
@@ -111,17 +113,22 @@ sleeptime="0.5"
# 8: 7 Days to Die
# 9: GoldSrc
# 10: Avorion
+# 11: end
stopmode="2"
## Query mode
# 1: session only
-# 2: gamedig + gsquery
+# 2: gamedig (gsquery fallback)
# 3: gamedig
# 4: gsquery
# 5: tcp
querymode="3"
querytype="samp"
+## Console type
+consoleverbose=""
+consoleinteract=""
+
## Game Server Details
# Do not edit
gamename="San Andreas Multiplayer"
diff --git a/lgsm/config-default/config-lgsm/sbotsserver/_default.cfg b/lgsm/config-default/config-lgsm/sbotsserver/_default.cfg
index 6145c9905..a944cd1a7 100644
--- a/lgsm/config-default/config-lgsm/sbotsserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/sbotsserver/_default.cfg
@@ -8,7 +8,7 @@
#### Game Server Settings ####
-## Server Start Settings | https://docs.linuxgsm.com/configuration/start-parameters
+## Predefined Parameters | https://docs.linuxgsm.com/configuration/start-parameters
port="7777"
queryport="27015"
defaultmap="StationKappa"
@@ -16,10 +16,8 @@ servername="LinuxGSM Server"
serverpassword="NOT SET" # Can't be adjusted currently
maxplayers="8" # Can't be adjusted currently
-## Server Start Command | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
-fn_parms(){
-parms="Port=${port}?QueryPort=${queryport} -startup_map ${defaultmap} -server_name \"${servername}\""
-}
+## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
+startparameters="Port=${port}?QueryPort=${queryport} -startup_map ${defaultmap} -server_name \"${servername}\""
#### LinuxGSM Settings ####
@@ -37,8 +35,6 @@ displayip=""
# More info | https://docs.linuxgsm.com/alerts#more-info
postalert="off"
-postdays="7"
-posttarget="https://termbin.com"
# Discord Alerts | https://docs.linuxgsm.com/alerts/discord
discordalert="off"
@@ -56,6 +52,7 @@ iftttevent="linuxgsm_alert"
# Mailgun Email Alerts | https://docs.linuxgsm.com/alerts/mailgun
mailgunalert="off"
+mailgunapiregion="us"
mailguntoken="accesstoken"
mailgundomain="example.com"
mailgunemailfrom="alert@example.com"
@@ -69,15 +66,20 @@ channeltag=""
# Pushover Alerts | https://docs.linuxgsm.com/alerts/pushover
pushoveralert="off"
pushovertoken="accesstoken"
+pushoveruserkey="userkey"
+
+# Rocket.Chat Alerts | https://docs.linuxgsm.com/alerts/rocket.chat
+rocketchatalert="off"
+rocketchatwebhook="webhook"
+rocketchattoken=""
# Slack Alerts | https://docs.linuxgsm.com/alerts/slack
slackalert="off"
slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
-# You can add a custom cURL string eg proxy (useful in Russia) or else in "curlcustomstring".
-# like a "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help", if you not need
-# any custom string in curl - simple ignore this parameter.
+# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
@@ -110,8 +112,10 @@ sleeptime="0.5"
## SteamCMD Settings | https://docs.linuxgsm.com/steamcmd
# Server appid
appid="974130"
+steamcmdforcewindows="no"
# SteamCMD Branch | https://docs.linuxgsm.com/steamcmd/branch
branch=""
+betapassword=""
# Master Server | https://docs.linuxgsm.com/steamcmd/steam-master-server
steammaster="false"
@@ -126,17 +130,22 @@ steammaster="false"
# 8: 7 Days to Die
# 9: GoldSrc
# 10: Avorion
+# 11: end
stopmode="2"
## Query mode
# 1: session only
-# 2: gamedig + gsquery
+# 2: gamedig (gsquery fallback)
# 3: gamedig
# 4: gsquery
# 5: tcp
querymode="2"
querytype="protocol-valve"
+## Console type
+consoleverbose="yes"
+consoleinteract="no"
+
## Game Server Details
# Do not edit
gamename="StickyBots"
diff --git a/lgsm/config-default/config-lgsm/sbserver/_default.cfg b/lgsm/config-default/config-lgsm/sbserver/_default.cfg
index f9ae836d1..8570eea1c 100644
--- a/lgsm/config-default/config-lgsm/sbserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/sbserver/_default.cfg
@@ -12,13 +12,11 @@
steamuser="username"
steampass='password'
-## Server Start Settings | https://docs.linuxgsm.com/configuration/start-parameters
+## Predefined Parameters | https://docs.linuxgsm.com/configuration/start-parameters
ip="0.0.0.0"
-## Server Start Command | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
-fn_parms(){
-parms=""
-}
+## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
+startparameters=""
#### LinuxGSM Settings ####
@@ -36,8 +34,6 @@ displayip=""
# More info | https://docs.linuxgsm.com/alerts#more-info
postalert="off"
-postdays="7"
-posttarget="https://termbin.com"
# Discord Alerts | https://docs.linuxgsm.com/alerts/discord
discordalert="off"
@@ -55,6 +51,7 @@ iftttevent="linuxgsm_alert"
# Mailgun Email Alerts | https://docs.linuxgsm.com/alerts/mailgun
mailgunalert="off"
+mailgunapiregion="us"
mailguntoken="accesstoken"
mailgundomain="example.com"
mailgunemailfrom="alert@example.com"
@@ -68,15 +65,20 @@ channeltag=""
# Pushover Alerts | https://docs.linuxgsm.com/alerts/pushover
pushoveralert="off"
pushovertoken="accesstoken"
+pushoveruserkey="userkey"
+
+# Rocket.Chat Alerts | https://docs.linuxgsm.com/alerts/rocket.chat
+rocketchatalert="off"
+rocketchatwebhook="webhook"
+rocketchattoken=""
# Slack Alerts | https://docs.linuxgsm.com/alerts/slack
slackalert="off"
slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
-# You can add a custom cURL string eg proxy (useful in Russia) or else in "curlcustomstring".
-# like a "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help", if you not need
-# any custom string in curl - simple ignore this parameter.
+# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
@@ -109,9 +111,12 @@ sleeptime="0.5"
## SteamCMD Settings | https://docs.linuxgsm.com/steamcmd
# Server appid
appid="211820"
+steamcmdforcewindows="no"
# SteamCMD Branch | https://docs.linuxgsm.com/steamcmd/branch
branch=""
-steammaster="flase"
+betapassword=""
+# Master Server | https://docs.linuxgsm.com/steamcmd/steam-master-server
+steammaster="false"
## Stop Mode | https://docs.linuxgsm.com/features/stop-mode
# 1: tmux kill
@@ -124,17 +129,22 @@ steammaster="flase"
# 8: 7 Days to Die
# 9: GoldSrc
# 10: Avorion
+# 11: end
stopmode="2"
## Query mode
# 1: session only
-# 2: gamedig + gsquery
+# 2: gamedig (gsquery fallback)
# 3: gamedig
# 4: gsquery
# 5: tcp
querymode="2"
querytype="protocol-valve"
+## Console type
+consoleverbose="yes"
+consoleinteract="no"
+
## Game Server Details
# Do not edit
gamename="Starbound"
diff --git a/lgsm/config-default/config-lgsm/scpslserver/_default.cfg b/lgsm/config-default/config-lgsm/scpslserver/_default.cfg
new file mode 100644
index 000000000..aa4ac41bc
--- /dev/null
+++ b/lgsm/config-default/config-lgsm/scpslserver/_default.cfg
@@ -0,0 +1,167 @@
+##################################
+######## Default Settings ########
+##################################
+# DO NOT EDIT WILL BE OVERWRITTEN!
+# Copy settings from here and use them in either
+# common.cfg - applies settings to every instance
+# [instance].cfg - applies settings to a specific instance
+
+#### Server Settings ####
+
+## Server Start Settings | https://docs.linuxgsm.com/configuration/start-parameters
+## All server settings except the server port are done in the config file:
+## Docs: https://en.scpslgame.com/index.php?title=Docs:Server_Config
+port="7777"
+
+## Server Start Command | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
+fn_parms(){
+parms="${port}"
+}
+
+#### LinuxGSM Settings ####
+
+## Notification Alerts
+# (on|off)
+
+# Display IP | https://docs.linuxgsm.com/alerts#display-ip
+displayip=""
+
+# More info | https://docs.linuxgsm.com/alerts#more-info
+postalert="off"
+
+# Discord Alerts | https://docs.linuxgsm.com/alerts/discord
+discordalert="off"
+discordwebhook="webhook"
+
+# Slack Alerts | https://docs.linuxgsm.com/alerts/slack
+slackalert="off"
+slackwebhook="webhook"
+
+# Email Alerts | https://docs.linuxgsm.com/alerts/email
+emailalert="off"
+email="email@example.com"
+emailfrom=""
+
+# IFTTT Alerts | https://docs.linuxgsm.com/alerts/ifttt
+iftttalert="off"
+ifttttoken="accesstoken"
+iftttevent="linuxgsm_alert"
+
+# Mailgun Email Alerts | https://docs.linuxgsm.com/alerts/mailgun
+mailgunalert="off"
+mailguntoken="accesstoken"
+mailgundomain="example.com"
+mailgunemailfrom="alert@example.com"
+mailgunemail="email@myemail.com"
+
+# Pushbullet Alerts | https://docs.linuxgsm.com/alerts/pushbullet
+pushbulletalert="off"
+pushbullettoken="accesstoken"
+channeltag=""
+
+# Pushover Alerts | https://docs.linuxgsm.com/alerts/pushover
+pushoveralert="off"
+pushovertoken="accesstoken"
+
+# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
+# You can add a custom cURL string eg proxy (useful in Russia) or else in "curlcustomstring".
+# like a "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help", if you not need
+# any custom string in curl - simple ignore this parameter.
+telegramalert="off"
+telegramtoken="accesstoken"
+telegramchatid=""
+curlcustomstring=""
+
+## Updating | https://docs.linuxgsm.com/commands/update
+updateonstart="off"
+
+## Backup | https://docs.linuxgsm.com/commands/backup
+maxbackups="4"
+maxbackupdays="30"
+stoponbackup="on"
+
+## Logging | https://docs.linuxgsm.com/features/logging
+consolelogging="on"
+logdays="7"
+
+## Monitor | https://docs.linuxgsm.com/commands/monitor
+# Query delay time
+querydelay="1"
+
+#### LinuxGSM Advanced Settings ####
+
+# ANSI Colors
+ansi="on"
+
+# Message Display Time
+sleeptime="0.5"
+
+# Stop Mode | https://docs.linuxgsm.com/steamcmd/stopmode
+# 1: tmux kill
+# 2: CTRL+c
+# 3: quit
+# 4: quit 120s
+# 5: stop
+# 6: q
+# 7: exit
+# 8: 7 Days to Die
+# 9: Gold Source
+# 10: Teamspeak 3
+stopmode="7"
+
+## Query mode
+# 1: session only
+# 2: gamedig + gsquery
+# 3: gamedig
+# 4: gsquery
+# 5: tcp
+querymode="1"
+querytype=""
+
+## Console type
+consoleverbose="yes"
+consoleinteract="yes"
+
+## SteamCMD Settings
+# Server appid
+appid="996560"
+steamcmdforcewindows="no"
+# SteamCMD Branch | https://docs.linuxgsm.com/steamcmd/branch
+branch=""
+# Master Server | https://docs.linuxgsm.com/steamcmd/steam-master-server
+steammaster=""
+
+## LinuxGSM Server Details
+# Do not edit
+gamename="SCP: Secret Laboratory"
+engine="unity3d"
+glibc="2.27"
+
+#### Directories ####
+# Edit with care
+
+## Server Specific Directories
+systemdir="${serverfiles}"
+executabledir="${systemdir}"
+executable="./LocalAdmin"
+servercfg="config_gameplay.txt"
+servercfgdefault="config_gameplay.txt"
+servercfgdir="${HOME}/.config/SCP Secret Laboratory/config/${port}"
+servercfgfullpath="${servercfgdir}/${servercfg}"
+
+## Backup Directory
+backupdir="${rootdir}/backups"
+
+## Logging Directories
+logdir="${rootdir}/log"
+gamelogdir="${HOME}/.config/SCP Secret Laboratory/LocalAdminLogs/${port}"
+lgsmlogdir="${logdir}/script"
+consolelogdir="${logdir}/console"
+lgsmlog="${lgsmlogdir}/${selfname}-script.log"
+consolelog="${consolelogdir}/${selfname}-console.log"
+alertlog="${lgsmlogdir}/${selfname}-alert.log"
+postdetailslog="${lgsmlogdir}/${selfname}-postdetails.log"
+
+## Logs Naming
+lgsmlogdate="${lgsmlogdir}/${selfname}-script-$(date '+%Y-%m-%d-%H:%M:%S').log"
+consolelogdate="${consolelogdir}/${selfname}-console-$(date '+%Y-%m-%d-%H:%M:%S').log"
diff --git a/lgsm/config-default/config-lgsm/scpslsmserver/_default.cfg b/lgsm/config-default/config-lgsm/scpslsmserver/_default.cfg
new file mode 100644
index 000000000..0180753a8
--- /dev/null
+++ b/lgsm/config-default/config-lgsm/scpslsmserver/_default.cfg
@@ -0,0 +1,167 @@
+##################################
+######## Default Settings ########
+##################################
+# DO NOT EDIT WILL BE OVERWRITTEN!
+# Copy settings from here and use them in either
+# common.cfg - applies settings to every instance
+# [instance].cfg - applies settings to a specific instance
+
+#### Server Settings ####
+
+## Server Start Settings | https://docs.linuxgsm.com/configuration/start-parameters
+## All server settings except the server port are done in the config file:
+## Docs: https://en.scpslgame.com/index.php?title=Docs:Server_Config
+port="7777"
+
+## Server Start Command | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
+fn_parms(){
+parms="${port}"
+}
+
+#### LinuxGSM Settings ####
+
+## Notification Alerts
+# (on|off)
+
+# Display IP | https://docs.linuxgsm.com/alerts#display-ip
+displayip=""
+
+# More info | https://docs.linuxgsm.com/alerts#more-info
+postalert="off"
+
+# Discord Alerts | https://docs.linuxgsm.com/alerts/discord
+discordalert="off"
+discordwebhook="webhook"
+
+# Slack Alerts | https://docs.linuxgsm.com/alerts/slack
+slackalert="off"
+slackwebhook="webhook"
+
+# Email Alerts | https://docs.linuxgsm.com/alerts/email
+emailalert="off"
+email="email@example.com"
+emailfrom=""
+
+# IFTTT Alerts | https://docs.linuxgsm.com/alerts/ifttt
+iftttalert="off"
+ifttttoken="accesstoken"
+iftttevent="linuxgsm_alert"
+
+# Mailgun Email Alerts | https://docs.linuxgsm.com/alerts/mailgun
+mailgunalert="off"
+mailguntoken="accesstoken"
+mailgundomain="example.com"
+mailgunemailfrom="alert@example.com"
+mailgunemail="email@myemail.com"
+
+# Pushbullet Alerts | https://docs.linuxgsm.com/alerts/pushbullet
+pushbulletalert="off"
+pushbullettoken="accesstoken"
+channeltag=""
+
+# Pushover Alerts | https://docs.linuxgsm.com/alerts/pushover
+pushoveralert="off"
+pushovertoken="accesstoken"
+
+# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
+# You can add a custom cURL string eg proxy (useful in Russia) or else in "curlcustomstring".
+# like a "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help", if you not need
+# any custom string in curl - simple ignore this parameter.
+telegramalert="off"
+telegramtoken="accesstoken"
+telegramchatid=""
+curlcustomstring=""
+
+## Updating | https://docs.linuxgsm.com/commands/update
+updateonstart="off"
+
+## Backup | https://docs.linuxgsm.com/commands/backup
+maxbackups="4"
+maxbackupdays="30"
+stoponbackup="on"
+
+## Logging | https://docs.linuxgsm.com/features/logging
+consolelogging="on"
+logdays="7"
+
+## Monitor | https://docs.linuxgsm.com/commands/monitor
+# Query delay time
+querydelay="1"
+
+#### LinuxGSM Advanced Settings ####
+
+# ANSI Colors
+ansi="on"
+
+# Message Display Time
+sleeptime="0.5"
+
+# Stop Mode | https://docs.linuxgsm.com/steamcmd/stopmode
+# 1: tmux kill
+# 2: CTRL+c
+# 3: quit
+# 4: quit 120s
+# 5: stop
+# 6: q
+# 7: exit
+# 8: 7 Days to Die
+# 9: Gold Source
+# 10: Teamspeak 3
+stopmode="7"
+
+## Query mode
+# 1: session only
+# 2: gamedig + gsquery
+# 3: gamedig
+# 4: gsquery
+# 5: tcp
+querymode="1"
+querytype=""
+
+## Console type
+consoleverbose="yes"
+consoleinteract="yes"
+
+## SteamCMD Settings
+# Server appid
+appid="786920"
+steamcmdforcewindows="no"
+# SteamCMD Branch | https://docs.linuxgsm.com/steamcmd/branch
+branch=""
+# Master Server | https://docs.linuxgsm.com/steamcmd/steam-master-server
+steammaster=""
+
+## LinuxGSM Server Details
+# Do not edit
+gamename="SCP: Secret Laboratory ServerMod"
+engine="unity3d"
+glibc="2.27"
+
+#### Directories ####
+# Edit with care
+
+## Server Specific Directories
+systemdir="${serverfiles}"
+executabledir="${systemdir}"
+executable="./LocalAdmin"
+servercfg="config_gameplay.txt"
+servercfgdefault="config_gameplay.txt"
+servercfgdir="${HOME}/.config/SCP Secret Laboratory/config/${port}"
+servercfgfullpath="${servercfgdir}/${servercfg}"
+
+## Backup Directory
+backupdir="${rootdir}/backups"
+
+## Logging Directories
+logdir="${rootdir}/log"
+gamelogdir="${HOME}/.config/SCP Secret Laboratory/LocalAdminLogs/${port}"
+lgsmlogdir="${logdir}/script"
+consolelogdir="${logdir}/console"
+lgsmlog="${lgsmlogdir}/${selfname}-script.log"
+consolelog="${consolelogdir}/${selfname}-console.log"
+alertlog="${lgsmlogdir}/${selfname}-alert.log"
+postdetailslog="${lgsmlogdir}/${selfname}-postdetails.log"
+
+## Logs Naming
+lgsmlogdate="${lgsmlogdir}/${selfname}-script-$(date '+%Y-%m-%d-%H:%M:%S').log"
+consolelogdate="${consolelogdir}/${selfname}-console-$(date '+%Y-%m-%d-%H:%M:%S').log"
diff --git a/lgsm/config-default/config-lgsm/sdtdserver/_default.cfg b/lgsm/config-default/config-lgsm/sdtdserver/_default.cfg
index 6269e6150..29e89e984 100644
--- a/lgsm/config-default/config-lgsm/sdtdserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/sdtdserver/_default.cfg
@@ -8,13 +8,11 @@
#### Game Server Settings ####
-## Server Start Settings | https://docs.linuxgsm.com/configuration/start-parameters
+## Predefined Parameters | https://docs.linuxgsm.com/configuration/start-parameters
ip="0.0.0.0"
-## Server Start Command | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
-fn_parms(){
-parms="-logfile ${gamelogdir}/output_log__$(date +%Y-%m-%d__%H-%M-%S).txt -quit -batchmode -nographics -dedicated -configfile=${servercfgfullpath}"
-}
+## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
+startparameters="-quit -batchmode -nographics -dedicated -configfile=${servercfgfullpath}"
#### LinuxGSM Settings ####
@@ -32,8 +30,6 @@ displayip=""
# More info | https://docs.linuxgsm.com/alerts#more-info
postalert="off"
-postdays="7"
-posttarget="https://termbin.com"
# Discord Alerts | https://docs.linuxgsm.com/alerts/discord
discordalert="off"
@@ -51,6 +47,7 @@ iftttevent="linuxgsm_alert"
# Mailgun Email Alerts | https://docs.linuxgsm.com/alerts/mailgun
mailgunalert="off"
+mailgunapiregion="us"
mailguntoken="accesstoken"
mailgundomain="example.com"
mailgunemailfrom="alert@example.com"
@@ -64,15 +61,20 @@ channeltag=""
# Pushover Alerts | https://docs.linuxgsm.com/alerts/pushover
pushoveralert="off"
pushovertoken="accesstoken"
+pushoveruserkey="userkey"
+
+# Rocket.Chat Alerts | https://docs.linuxgsm.com/alerts/rocket.chat
+rocketchatalert="off"
+rocketchatwebhook="webhook"
+rocketchattoken=""
# Slack Alerts | https://docs.linuxgsm.com/alerts/slack
slackalert="off"
slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
-# You can add a custom cURL string eg proxy (useful in Russia) or else in "curlcustomstring".
-# like a "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help", if you not need
-# any custom string in curl - simple ignore this parameter.
+# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
@@ -105,8 +107,10 @@ sleeptime="0.5"
## SteamCMD Settings | https://docs.linuxgsm.com/steamcmd
# Server appid
appid="294420"
+steamcmdforcewindows="no"
# SteamCMD Branch | https://docs.linuxgsm.com/steamcmd/branch
branch=""
+betapassword=""
# Master Server | https://docs.linuxgsm.com/steamcmd/steam-master-server
steammaster="true"
@@ -121,17 +125,22 @@ steammaster="true"
# 8: 7 Days to Die
# 9: GoldSrc
# 10: Avorion
+# 11: end
stopmode="8"
## Query mode
# 1: session only
-# 2: gamedig + gsquery
+# 2: gamedig (gsquery fallback)
# 3: gamedig
# 4: gsquery
# 5: tcp
querymode="2"
querytype="protocol-valve"
+## Console type
+consoleverbose="yes"
+consoleinteract="no"
+
## Game Server Details
# Do not edit
gamename="7 Days To Die"
@@ -144,7 +153,7 @@ glibc="2.15"
## Game Server Directories
systemdir="${serverfiles}"
executabledir="${serverfiles}"
-executable=$([ "$(uname -m)" == "x86_64" ] && echo -e "./7DaysToDieServer.x86_64" || echo -e "./7DaysToDieServer.x86")
+executable="./7DaysToDieServer.x86_64"
servercfgdir="${systemdir}"
servercfg="${selfname}.xml"
servercfgdirdefault="${serverfiles}"
diff --git a/lgsm/config-default/config-lgsm/secrets-common-template.cfg b/lgsm/config-default/config-lgsm/secrets-common-template.cfg
new file mode 100644
index 000000000..d8ded6aa9
--- /dev/null
+++ b/lgsm/config-default/config-lgsm/secrets-common-template.cfg
@@ -0,0 +1,5 @@
+##################################
+######## Common Secrets ##########
+##################################
+# PLACE GLOBAL SECRET SETTINGS HERE
+## These settings will apply to all instances.
diff --git a/lgsm/config-default/config-lgsm/secrets-instance-template.cfg b/lgsm/config-default/config-lgsm/secrets-instance-template.cfg
new file mode 100644
index 000000000..5446d3718
--- /dev/null
+++ b/lgsm/config-default/config-lgsm/secrets-instance-template.cfg
@@ -0,0 +1,5 @@
+##################################
+####### Instance Secrets #########
+##################################
+# PLACE INSTANCE SECRET SETTINGS HERE
+## These settings will apply to a specific instance.
diff --git a/lgsm/config-default/config-lgsm/sfcserver/_default.cfg b/lgsm/config-default/config-lgsm/sfcserver/_default.cfg
index 2203ba14b..e5ea17bac 100644
--- a/lgsm/config-default/config-lgsm/sfcserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/sfcserver/_default.cfg
@@ -8,7 +8,7 @@
#### Game Server Settings ####
-## Server Start Settings | https://docs.linuxgsm.com/configuration/start-parameters
+## Predefined Parameters | https://docs.linuxgsm.com/configuration/start-parameters
ip="0.0.0.0"
port="27015"
clientport="27005"
@@ -16,10 +16,8 @@ sourcetvport="27020"
defaultmap="sf_astrodome"
maxplayers="32"
-## Server Start Command | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
-fn_parms(){
-parms="-game sfclassic -strictportbind -ip ${ip} -port ${port} +clientport ${clientport} +tv_port ${sourcetvport} +map ${defaultmap} +servercfgfile ${servercfg} -maxplayers ${maxplayers}"
-}
+## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
+startparameters="-game sfclassic -strictportbind -ip ${ip} -port ${port} +clientport ${clientport} +tv_port ${sourcetvport} +map ${defaultmap} +servercfgfile ${servercfg} -maxplayers ${maxplayers}"
#### LinuxGSM Settings ####
@@ -37,8 +35,6 @@ displayip=""
# More info | https://docs.linuxgsm.com/alerts#more-info
postalert="off"
-postdays="7"
-posttarget="https://termbin.com"
# Discord Alerts | https://docs.linuxgsm.com/alerts/discord
discordalert="off"
@@ -56,6 +52,7 @@ iftttevent="linuxgsm_alert"
# Mailgun Email Alerts | https://docs.linuxgsm.com/alerts/mailgun
mailgunalert="off"
+mailgunapiregion="us"
mailguntoken="accesstoken"
mailgundomain="example.com"
mailgunemailfrom="alert@example.com"
@@ -69,15 +66,20 @@ channeltag=""
# Pushover Alerts | https://docs.linuxgsm.com/alerts/pushover
pushoveralert="off"
pushovertoken="accesstoken"
+pushoveruserkey="userkey"
+
+# Rocket.Chat Alerts | https://docs.linuxgsm.com/alerts/rocket.chat
+rocketchatalert="off"
+rocketchatwebhook="webhook"
+rocketchattoken=""
# Slack Alerts | https://docs.linuxgsm.com/alerts/slack
slackalert="off"
slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
-# You can add a custom cURL string eg proxy (useful in Russia) or else in "curlcustomstring".
-# like a "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help", if you not need
-# any custom string in curl - simple ignore this parameter.
+# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
@@ -110,8 +112,10 @@ sleeptime="0.5"
## SteamCMD Settings | https://docs.linuxgsm.com/steamcmd
# Server appid
appid="244310" # Source 2013 SDK
+steamcmdforcewindows="no"
# SteamCMD Branch | https://docs.linuxgsm.com/steamcmd/branch
branch=""
+betapassword=""
# Master Server | https://docs.linuxgsm.com/steamcmd/steam-master-server
steammaster="true"
@@ -126,17 +130,22 @@ steammaster="true"
# 8: 7 Days to Die
# 9: GoldSrc
# 10: Avorion
+# 11: end
stopmode="3"
## Query mode
# 1: session only
-# 2: gamedig + gsquery
+# 2: gamedig (gsquery fallback)
# 3: gamedig
# 4: gsquery
# 5: tcp
querymode="2"
querytype="protocol-valve"
+## Console type
+consoleverbose="yes"
+consoleinteract="yes"
+
## Game Server Details
# Do not edit
gamename="SourceForts Classic"
diff --git a/lgsm/config-default/config-lgsm/sof2server/_default.cfg b/lgsm/config-default/config-lgsm/sof2server/_default.cfg
index 090330f49..1c84e0d90 100644
--- a/lgsm/config-default/config-lgsm/sof2server/_default.cfg
+++ b/lgsm/config-default/config-lgsm/sof2server/_default.cfg
@@ -8,15 +8,13 @@
#### Game Server Settings ####
-## Server Start Settings | https://docs.linuxgsm.com/configuration/start-parameters
+## Predefined Parameters | https://docs.linuxgsm.com/configuration/start-parameters
ip="0.0.0.0"
port="20100"
defaultmap="mp_shop"
-## Server Start Command | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
-fn_parms(){
-parms="+set sv_punkbuster 0 +set dedicated 2 +set net_ip ${ip} +set net_port ${port} +exec ${servercfg} +map ${defaultmap}"
-}
+## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
+startparameters="+set sv_punkbuster 0 +set dedicated 2 +set net_ip ${ip} +set net_port ${port} +exec ${servercfg} +map ${defaultmap}"
#### LinuxGSM Settings ####
@@ -34,8 +32,6 @@ displayip=""
# More info | https://docs.linuxgsm.com/alerts#more-info
postalert="off"
-postdays="7"
-posttarget="https://termbin.com"
# Discord Alerts | https://docs.linuxgsm.com/alerts/discord
discordalert="off"
@@ -53,6 +49,7 @@ iftttevent="linuxgsm_alert"
# Mailgun Email Alerts | https://docs.linuxgsm.com/alerts/mailgun
mailgunalert="off"
+mailgunapiregion="us"
mailguntoken="accesstoken"
mailgundomain="example.com"
mailgunemailfrom="alert@example.com"
@@ -66,15 +63,20 @@ channeltag=""
# Pushover Alerts | https://docs.linuxgsm.com/alerts/pushover
pushoveralert="off"
pushovertoken="accesstoken"
+pushoveruserkey="userkey"
+
+# Rocket.Chat Alerts | https://docs.linuxgsm.com/alerts/rocket.chat
+rocketchatalert="off"
+rocketchatwebhook="webhook"
+rocketchattoken=""
# Slack Alerts | https://docs.linuxgsm.com/alerts/slack
slackalert="off"
slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
-# You can add a custom cURL string eg proxy (useful in Russia) or else in "curlcustomstring".
-# like a "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help", if you not need
-# any custom string in curl - simple ignore this parameter.
+# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
@@ -112,17 +114,22 @@ sleeptime="0.5"
# 8: 7 Days to Die
# 9: GoldSrc
# 10: Avorion
+# 11: end
stopmode="3"
## Query mode
# 1: session only
-# 2: gamedig + gsquery
+# 2: gamedig (gsquery fallback)
# 3: gamedig
# 4: gsquery
# 5: tcp
querymode="2"
querytype="protocol-quake3"
+## Console type
+consoleverbose="yes"
+consoleinteract="yes"
+
## Game Server Details
# Do not edit
gamename="Soldier Of Fortune 2: Gold Edition"
diff --git a/lgsm/config-default/config-lgsm/solserver/_default.cfg b/lgsm/config-default/config-lgsm/solserver/_default.cfg
index d1f853dca..b1da65c26 100644
--- a/lgsm/config-default/config-lgsm/solserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/solserver/_default.cfg
@@ -8,14 +8,12 @@
#### Game Server Settings ####
-## Server Start Settings | https://docs.linuxgsm.com/configuration/start-parameters
+## Predefined Parameters | https://docs.linuxgsm.com/configuration/start-parameters
ip="0.0.0.0"
maplist="mapslist.txt"
-## Server Start Command | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
-fn_parms(){
-parms="-b ${ip} -m ${maplist} -c ${servercfg}"
-}
+## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
+startparameters="-b ${ip} -m ${maplist} -c ${servercfg}"
#### LinuxGSM Settings ####
@@ -33,8 +31,6 @@ displayip=""
# More info | https://docs.linuxgsm.com/alerts#more-info
postalert="off"
-postdays="7"
-posttarget="https://termbin.com"
# Discord Alerts | https://docs.linuxgsm.com/alerts/discord
discordalert="off"
@@ -52,6 +48,7 @@ iftttevent="linuxgsm_alert"
# Mailgun Email Alerts | https://docs.linuxgsm.com/alerts/mailgun
mailgunalert="off"
+mailgunapiregion="us"
mailguntoken="accesstoken"
mailgundomain="example.com"
mailgunemailfrom="alert@example.com"
@@ -65,15 +62,20 @@ channeltag=""
# Pushover Alerts | https://docs.linuxgsm.com/alerts/pushover
pushoveralert="off"
pushovertoken="accesstoken"
+pushoveruserkey="userkey"
+
+# Rocket.Chat Alerts | https://docs.linuxgsm.com/alerts/rocket.chat
+rocketchatalert="off"
+rocketchatwebhook="webhook"
+rocketchattoken=""
# Slack Alerts | https://docs.linuxgsm.com/alerts/slack
slackalert="off"
slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
-# You can add a custom cURL string eg proxy (useful in Russia) or else in "curlcustomstring".
-# like a "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help", if you not need
-# any custom string in curl - simple ignore this parameter.
+# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
@@ -103,8 +105,10 @@ sleeptime="0.5"
## SteamCMD Settings | https://docs.linuxgsm.com/steamcmd
# Server appid
appid="638500"
+steamcmdforcewindows="no"
# SteamCMD Branch | https://docs.linuxgsm.com/steamcmd/branch
branch=""
+betapassword=""
## Stop Mode | https://docs.linuxgsm.com/features/stop-mode
# 1: tmux kill
@@ -117,17 +121,22 @@ branch=""
# 8: 7 Days to Die
# 9: GoldSrc
# 10: Avorion
+# 11: end
stopmode="2"
## Query mode
# 1: session only
-# 2: gamedig + gsquery
+# 2: gamedig (gsquery fallback)
# 3: gamedig
# 4: gsquery
# 5: tcp
querymode="4"
querytype="soldat"
+## Console type
+consoleverbose="yes"
+consoleinteract="no"
+
## Game Server Details
# Do not edit
gamename="Soldat"
diff --git a/lgsm/config-default/config-lgsm/squadserver/_default.cfg b/lgsm/config-default/config-lgsm/squadserver/_default.cfg
index 81eb50c01..09ac039e4 100644
--- a/lgsm/config-default/config-lgsm/squadserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/squadserver/_default.cfg
@@ -8,15 +8,13 @@
#### Game Server Settings ####
-## Server Start Settings | https://docs.linuxgsm.com/configuration/start-parameters
+## Predefined Parameters | https://docs.linuxgsm.com/configuration/start-parameters
port="7787"
queryport="27165"
randommap="ALWAYS"
-## Server Start Command | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
-fn_parms(){
-parms="MULTIHOME=${ip} RANDOM=${randommap} Port=${port} QueryPort=${queryport}"
-}
+## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
+startparameters="MULTIHOME=${ip} RANDOM=${randommap} Port=${port} QueryPort=${queryport}"
#### LinuxGSM Settings ####
@@ -34,8 +32,6 @@ displayip=""
# More info | https://docs.linuxgsm.com/alerts#more-info
postalert="off"
-postdays="7"
-posttarget="https://termbin.com"
# Discord Alerts | https://docs.linuxgsm.com/alerts/discord
discordalert="off"
@@ -53,6 +49,7 @@ iftttevent="linuxgsm_alert"
# Mailgun Email Alerts | https://docs.linuxgsm.com/alerts/mailgun
mailgunalert="off"
+mailgunapiregion="us"
mailguntoken="accesstoken"
mailgundomain="example.com"
mailgunemailfrom="alert@example.com"
@@ -66,15 +63,20 @@ channeltag=""
# Pushover Alerts | https://docs.linuxgsm.com/alerts/pushover
pushoveralert="off"
pushovertoken="accesstoken"
+pushoveruserkey="userkey"
+
+# Rocket.Chat Alerts | https://docs.linuxgsm.com/alerts/rocket.chat
+rocketchatalert="off"
+rocketchatwebhook="webhook"
+rocketchattoken=""
# Slack Alerts | https://docs.linuxgsm.com/alerts/slack
slackalert="off"
slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
-# You can add a custom cURL string eg proxy (useful in Russia) or else in "curlcustomstring".
-# like a "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help", if you not need
-# any custom string in curl - simple ignore this parameter.
+# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
@@ -107,8 +109,10 @@ sleeptime="0.5"
## SteamCMD Settings | https://docs.linuxgsm.com/steamcmd
# Server appid
appid="403240"
+steamcmdforcewindows="no"
# SteamCMD Branch | https://docs.linuxgsm.com/steamcmd/branch
branch=""
+betapassword=""
# Master Server | https://docs.linuxgsm.com/steamcmd/steam-master-server
steammaster="false"
@@ -123,17 +127,22 @@ steammaster="false"
# 8: 7 Days to Die
# 9: GoldSrc
# 10: Avorion
+# 11: end
stopmode="2"
## Query mode
# 1: session only
-# 2: gamedig + gsquery
+# 2: gamedig (gsquery fallback)
# 3: gamedig
# 4: gsquery
# 5: tcp
querymode="2"
querytype="protocol-valve"
+## Console type
+consoleverbose="yes"
+consoleinteract="no"
+
## Game Server Details
# Do not edit
gamename="Squad"
@@ -144,7 +153,7 @@ glibc="2.17"
# Edit with care
## Game Server Directories
-systemdir="${serverfiles}/Squad"
+systemdir="${serverfiles}/SquadGame"
executabledir="${serverfiles}"
executable="./SquadGameServer.sh"
servercfgdir="${systemdir}/ServerConfig"
diff --git a/lgsm/config-default/config-lgsm/stserver/_default.cfg b/lgsm/config-default/config-lgsm/stserver/_default.cfg
index 581c1481a..60f42f63b 100644
--- a/lgsm/config-default/config-lgsm/stserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/stserver/_default.cfg
@@ -8,7 +8,7 @@
#### Game Server Settings ####
-## Server Start Settings | https://docs.linuxgsm.com/configuration/start-parameters
+## Predefined Parameters | https://docs.linuxgsm.com/configuration/start-parameters
ip="0.0.0.0"
port="27500"
queryport="27015"
@@ -17,11 +17,9 @@ autosaveinterval=300
clearinterval=60
worldname="moon_save"
-## Server Start Command | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
+## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
# Edit with care
-fn_parms(){
-parms="-batchmode -nographics -autostart -gameport=${port} -updateport=${queryport} -worldtype=${worldtype} -loadworld=${worldname} -worldname=${worldname} -autosaveinterval=${autosaveinterval} -clearallinterval=${clearinterval}"
-}
+startparameters="-batchmode -nographics -autostart -gameport=${port} -updateport=${queryport} -worldtype=${worldtype} -loadworld=${worldname} -worldname=${worldname} -autosaveinterval=${autosaveinterval} -clearallinterval=${clearinterval}"
#### LinuxGSM Settings ####
@@ -39,8 +37,6 @@ displayip=""
# More info | https://docs.linuxgsm.com/alerts#more-info
postalert="off"
-postdays="7"
-posttarget="https://termbin.com"
# Discord Alerts | https://docs.linuxgsm.com/alerts/discord
discordalert="off"
@@ -58,6 +54,7 @@ iftttevent="linuxgsm_alert"
# Mailgun Email Alerts | https://docs.linuxgsm.com/alerts/mailgun
mailgunalert="off"
+mailgunapiregion="us"
mailguntoken="accesstoken"
mailgundomain="example.com"
mailgunemailfrom="alert@example.com"
@@ -71,15 +68,20 @@ channeltag=""
# Pushover Alerts | https://docs.linuxgsm.com/alerts/pushover
pushoveralert="off"
pushovertoken="accesstoken"
+pushoveruserkey="userkey"
+
+# Rocket.Chat Alerts | https://docs.linuxgsm.com/alerts/rocket.chat
+rocketchatalert="off"
+rocketchatwebhook="webhook"
+rocketchattoken=""
# Slack Alerts | https://docs.linuxgsm.com/alerts/slack
slackalert="off"
slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
-# You can add a custom cURL string eg proxy (useful in Russia) or else in "curlcustomstring".
-# like a "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help", if you not need
-# any custom string in curl - simple ignore this parameter.
+# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
@@ -112,8 +114,10 @@ sleeptime="0.5"
## SteamCMD Settings | https://docs.linuxgsm.com/steamcmd
# Server appid
appid="600760"
+steamcmdforcewindows="no"
# SteamCMD Branch | https://docs.linuxgsm.com/steamcmd/branch
branch=""
+betapassword=""
# Master Server | https://docs.linuxgsm.com/steamcmd/steam-master-server
steammaster="false"
@@ -128,17 +132,22 @@ steammaster="false"
# 8: 7 Days to Die
# 9: GoldSrc
# 10: Avorion
+# 11: end
stopmode="2"
## Query mode
# 1: session only
-# 2: gamedig + gsquery
+# 2: gamedig (gsquery fallback)
# 3: gamedig
# 4: gsquery
# 5: tcp
querymode="2"
querytype="protocol-valve"
+## Console type
+consoleverbose="yes"
+consoleinteract="vo"
+
## Game Server Details
# Do not edit
gamename="Stationeers"
diff --git a/lgsm/config-default/config-lgsm/svenserver/_default.cfg b/lgsm/config-default/config-lgsm/svenserver/_default.cfg
index 72b3acadd..aaf2c2de2 100644
--- a/lgsm/config-default/config-lgsm/svenserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/svenserver/_default.cfg
@@ -8,17 +8,15 @@
#### Game Server Settings ####
-## Server Start Settings | https://docs.linuxgsm.com/configuration/start-parameters
+## Predefined Parameters | https://docs.linuxgsm.com/configuration/start-parameters
ip="0.0.0.0"
port="27015"
clientport="27005"
defaultmap="svencoop1"
maxplayers="16"
-## Server Start Command | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
-fn_parms(){
-parms="-game svencoop -strictportbind +ip ${ip} -port ${port} +clientport ${clientport} +map ${defaultmap} +servercfgfile ${servercfg} +maxplayers ${maxplayers}"
-}
+## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
+startparameters="-game svencoop -strictportbind +ip ${ip} -port ${port} +clientport ${clientport} +map ${defaultmap} +servercfgfile ${servercfg} +maxplayers ${maxplayers}"
#### LinuxGSM Settings ####
@@ -36,8 +34,6 @@ displayip=""
# More info | https://docs.linuxgsm.com/alerts#more-info
postalert="off"
-postdays="7"
-posttarget="https://termbin.com"
# Discord Alerts | https://docs.linuxgsm.com/alerts/discord
discordalert="off"
@@ -55,6 +51,7 @@ iftttevent="linuxgsm_alert"
# Mailgun Email Alerts | https://docs.linuxgsm.com/alerts/mailgun
mailgunalert="off"
+mailgunapiregion="us"
mailguntoken="accesstoken"
mailgundomain="example.com"
mailgunemailfrom="alert@example.com"
@@ -68,15 +65,20 @@ channeltag=""
# Pushover Alerts | https://docs.linuxgsm.com/alerts/pushover
pushoveralert="off"
pushovertoken="accesstoken"
+pushoveruserkey="userkey"
+
+# Rocket.Chat Alerts | https://docs.linuxgsm.com/alerts/rocket.chat
+rocketchatalert="off"
+rocketchatwebhook="webhook"
+rocketchattoken=""
# Slack Alerts | https://docs.linuxgsm.com/alerts/slack
slackalert="off"
slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
-# You can add a custom cURL string eg proxy (useful in Russia) or else in "curlcustomstring".
-# like a "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help", if you not need
-# any custom string in curl - simple ignore this parameter.
+# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
@@ -109,8 +111,10 @@ sleeptime="0.5"
## SteamCMD Settings | https://docs.linuxgsm.com/steamcmd
# Server appid
appid="276060"
+steamcmdforcewindows="no"
# SteamCMD Branch | https://docs.linuxgsm.com/steamcmd/branch
branch=""
+betapassword=""
# Master Server | https://docs.linuxgsm.com/steamcmd/steam-master-server
steammaster="true"
@@ -125,17 +129,22 @@ steammaster="true"
# 8: 7 Days to Die
# 9: GoldSrc
# 10: Avorion
+# 11: end
stopmode="9"
## Query mode
# 1: session only
-# 2: gamedig + gsquery
+# 2: gamedig (gsquery fallback)
# 3: gamedig
# 4: gsquery
# 5: tcp
querymode="2"
querytype="protocol-valve"
+## Console type
+consoleverbose="yes"
+consoleinteract="yes"
+
## Game Server Details
# Do not edit
gamename="Sven Co-op"
diff --git a/lgsm/config-default/config-lgsm/terrariaserver/_default.cfg b/lgsm/config-default/config-lgsm/terrariaserver/_default.cfg
index 3f941122f..68bed7cdb 100644
--- a/lgsm/config-default/config-lgsm/terrariaserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/terrariaserver/_default.cfg
@@ -12,13 +12,11 @@
steamuser="username"
steampass='password'
-## Server Start Settings | https://docs.linuxgsm.com/configuration/start-parameters
+## Predefined Parameters | https://docs.linuxgsm.com/configuration/start-parameters
ip="0.0.0.0"
-## Server Start Command | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
-fn_parms(){
-parms="-config ${servercfgfullpath}"
-}
+## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
+startparameters="-config ${servercfgfullpath}"
#### LinuxGSM Settings ####
@@ -36,8 +34,6 @@ displayip=""
# More info | https://docs.linuxgsm.com/alerts#more-info
postalert="off"
-postdays="7"
-posttarget="https://termbin.com"
# Discord Alerts | https://docs.linuxgsm.com/alerts/discord
discordalert="off"
@@ -55,6 +51,7 @@ iftttevent="linuxgsm_alert"
# Mailgun Email Alerts | https://docs.linuxgsm.com/alerts/mailgun
mailgunalert="off"
+mailgunapiregion="us"
mailguntoken="accesstoken"
mailgundomain="example.com"
mailgunemailfrom="alert@example.com"
@@ -68,15 +65,20 @@ channeltag=""
# Pushover Alerts | https://docs.linuxgsm.com/alerts/pushover
pushoveralert="off"
pushovertoken="accesstoken"
+pushoveruserkey="userkey"
+
+# Rocket.Chat Alerts | https://docs.linuxgsm.com/alerts/rocket.chat
+rocketchatalert="off"
+rocketchatwebhook="webhook"
+rocketchattoken=""
# Slack Alerts | https://docs.linuxgsm.com/alerts/slack
slackalert="off"
slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
-# You can add a custom cURL string eg proxy (useful in Russia) or else in "curlcustomstring".
-# like a "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help", if you not need
-# any custom string in curl - simple ignore this parameter.
+# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
@@ -109,8 +111,10 @@ sleeptime="0.5"
## SteamCMD Settings | https://docs.linuxgsm.com/steamcmd
# Server appid
appid="105600"
+steamcmdforcewindows="no"
# SteamCMD Branch | https://docs.linuxgsm.com/steamcmd/branch
branch=""
+betapassword=""
# Master Server | https://docs.linuxgsm.com/steamcmd/steam-master-server
steammaster="false"
@@ -125,17 +129,22 @@ steammaster="false"
# 8: 7 Days to Die
# 9: GoldSrc
# 10: Avorion
+# 11: end
stopmode="7"
## Query mode
# 1: session only
-# 2: gamedig + gsquery
+# 2: gamedig (gsquery fallback)
# 3: gamedig
# 4: gsquery
# 5: tcp
querymode="5"
querytype=""
+## Console type
+consoleverbose="yes"
+consoleinteract="yes"
+
## Game Server Details
# Do not edit
gamename="Terraria"
diff --git a/lgsm/config-default/config-lgsm/tf2server/_default.cfg b/lgsm/config-default/config-lgsm/tf2server/_default.cfg
index 31eefeb12..25dd6b32a 100644
--- a/lgsm/config-default/config-lgsm/tf2server/_default.cfg
+++ b/lgsm/config-default/config-lgsm/tf2server/_default.cfg
@@ -8,7 +8,7 @@
#### Game Server Settings ####
-## Server Start Settings | https://docs.linuxgsm.com/configuration/start-parameters
+## Predefined Parameters | https://docs.linuxgsm.com/configuration/start-parameters
ip="0.0.0.0"
port="27015"
clientport="27005"
@@ -21,10 +21,8 @@ maxplayers="16"
# More info: https://docs.linuxgsm.com/steamcmd/gslt
gslt=""
-## Server Start Command | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
-fn_parms(){
-parms="-game tf -strictportbind -ip ${ip} -port ${port} +clientport ${clientport} +tv_port ${sourcetvport} +map ${defaultmap} +sv_setsteamaccount ${gslt} +servercfgfile ${servercfg} -maxplayers ${maxplayers}"
-}
+## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
+startparameters="-game tf -strictportbind -ip ${ip} -port ${port} +clientport ${clientport} +tv_port ${sourcetvport} +map ${defaultmap} +sv_setsteamaccount ${gslt} +servercfgfile ${servercfg} -maxplayers ${maxplayers}"
#### LinuxGSM Settings ####
@@ -42,8 +40,6 @@ displayip=""
# More info | https://docs.linuxgsm.com/alerts#more-info
postalert="off"
-postdays="7"
-posttarget="https://termbin.com"
# Discord Alerts | https://docs.linuxgsm.com/alerts/discord
discordalert="off"
@@ -61,6 +57,7 @@ iftttevent="linuxgsm_alert"
# Mailgun Email Alerts | https://docs.linuxgsm.com/alerts/mailgun
mailgunalert="off"
+mailgunapiregion="us"
mailguntoken="accesstoken"
mailgundomain="example.com"
mailgunemailfrom="alert@example.com"
@@ -74,15 +71,20 @@ channeltag=""
# Pushover Alerts | https://docs.linuxgsm.com/alerts/pushover
pushoveralert="off"
pushovertoken="accesstoken"
+pushoveruserkey="userkey"
+
+# Rocket.Chat Alerts | https://docs.linuxgsm.com/alerts/rocket.chat
+rocketchatalert="off"
+rocketchatwebhook="webhook"
+rocketchattoken=""
# Slack Alerts | https://docs.linuxgsm.com/alerts/slack
slackalert="off"
slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
-# You can add a custom cURL string eg proxy (useful in Russia) or else in "curlcustomstring".
-# like a "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help", if you not need
-# any custom string in curl - simple ignore this parameter.
+# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
@@ -115,8 +117,10 @@ sleeptime="0.5"
## SteamCMD Settings | https://docs.linuxgsm.com/steamcmd
# Server appid
appid="232250"
+steamcmdforcewindows="no"
# SteamCMD Branch | https://docs.linuxgsm.com/steamcmd/branch
branch=""
+betapassword=""
# Master Server | https://docs.linuxgsm.com/steamcmd/steam-master-server
steammaster="true"
@@ -131,17 +135,22 @@ steammaster="true"
# 8: 7 Days to Die
# 9: GoldSrc
# 10: Avorion
+# 11: end
stopmode="3"
## Query mode
# 1: session only
-# 2: gamedig + gsquery
+# 2: gamedig (gsquery fallback)
# 3: gamedig
# 4: gsquery
# 5: tcp
querymode="2"
querytype="protocol-valve"
+## Console type
+consoleverbose="yes"
+consoleinteract="yes"
+
## Game Server Details
# Do not edit
gamename="Team Fortress 2"
diff --git a/lgsm/config-default/config-lgsm/tfcserver/_default.cfg b/lgsm/config-default/config-lgsm/tfcserver/_default.cfg
index ccd4988e0..b4d88ece1 100644
--- a/lgsm/config-default/config-lgsm/tfcserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/tfcserver/_default.cfg
@@ -8,17 +8,15 @@
#### Game Server Settings ####
-## Server Start Settings | https://docs.linuxgsm.com/configuration/start-parameters
+## Predefined Parameters | https://docs.linuxgsm.com/configuration/start-parameters
ip="0.0.0.0"
port="27015"
clientport="27005"
defaultmap="dustbowl"
maxplayers="16"
-## Server Start Command | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
-fn_parms(){
-parms="-game tfc -strictportbind _ip ${ip} -port ${port} +clientport ${clientport} +map ${defaultmap} +servercfgfile ${servercfg} -maxplayers ${maxplayers}"
-}
+## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
+startparameters="-game tfc -strictportbind _ip ${ip} -port ${port} +clientport ${clientport} +map ${defaultmap} +servercfgfile ${servercfg} -maxplayers ${maxplayers}"
#### LinuxGSM Settings ####
@@ -36,8 +34,6 @@ displayip=""
# More info | https://docs.linuxgsm.com/alerts#more-info
postalert="off"
-postdays="7"
-posttarget="https://termbin.com"
# Discord Alerts | https://docs.linuxgsm.com/alerts/discord
discordalert="off"
@@ -55,6 +51,7 @@ iftttevent="linuxgsm_alert"
# Mailgun Email Alerts | https://docs.linuxgsm.com/alerts/mailgun
mailgunalert="off"
+mailgunapiregion="us"
mailguntoken="accesstoken"
mailgundomain="example.com"
mailgunemailfrom="alert@example.com"
@@ -68,15 +65,20 @@ channeltag=""
# Pushover Alerts | https://docs.linuxgsm.com/alerts/pushover
pushoveralert="off"
pushovertoken="accesstoken"
+pushoveruserkey="userkey"
+
+# Rocket.Chat Alerts | https://docs.linuxgsm.com/alerts/rocket.chat
+rocketchatalert="off"
+rocketchatwebhook="webhook"
+rocketchattoken=""
# Slack Alerts | https://docs.linuxgsm.com/alerts/slack
slackalert="off"
slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
-# You can add a custom cURL string eg proxy (useful in Russia) or else in "curlcustomstring".
-# like a "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help", if you not need
-# any custom string in curl - simple ignore this parameter.
+# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
@@ -109,9 +111,11 @@ sleeptime="0.5"
## SteamCMD Settings | https://docs.linuxgsm.com/steamcmd
# Server appid
appid="90"
+steamcmdforcewindows="no"
appidmod="tfc"
# SteamCMD Branch | https://docs.linuxgsm.com/steamcmd/branch
branch=""
+betapassword=""
# Master Server | https://docs.linuxgsm.com/steamcmd/steam-master-server
steammaster="true"
@@ -126,17 +130,22 @@ steammaster="true"
# 8: 7 Days to Die
# 9: GoldSrc
# 10: Avorion
+# 11: end
stopmode="9"
## Query mode
# 1: session only
-# 2: gamedig + gsquery
+# 2: gamedig (gsquery fallback)
# 3: gamedig
# 4: gsquery
# 5: tcp
querymode="2"
querytype="protocol-valve"
+## Console type
+consoleverbose="yes"
+consoleinteract="yes"
+
## Game Server Details
# Do not edit
gamename="Team Fortress Classic"
diff --git a/lgsm/config-default/config-lgsm/ts3server/_default.cfg b/lgsm/config-default/config-lgsm/ts3server/_default.cfg
index 3a511b394..f3344e87c 100644
--- a/lgsm/config-default/config-lgsm/ts3server/_default.cfg
+++ b/lgsm/config-default/config-lgsm/ts3server/_default.cfg
@@ -8,13 +8,8 @@
#### Game Server Settings ####
-## Server Start Settings | https://docs.linuxgsm.com/configuration/start-parameters
-# Edit serverfiles/ts3server.ini after installation
-
-## Server Start Command | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
-fn_parms(){
-parms="inifile=${servercfgfullpath} pid_file=ts3server.pid"
-}
+## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
+startparameters="inifile=${servercfgfullpath} pid_file=ts3server.pid"
#### LinuxGSM Settings ####
@@ -32,8 +27,6 @@ displayip=""
# More info | https://docs.linuxgsm.com/alerts#more-info
postalert="off"
-postdays="7"
-posttarget="https://termbin.com"
# Discord Alerts | https://docs.linuxgsm.com/alerts/discord
discordalert="off"
@@ -51,6 +44,7 @@ iftttevent="linuxgsm_alert"
# Mailgun Email Alerts | https://docs.linuxgsm.com/alerts/mailgun
mailgunalert="off"
+mailgunapiregion="us"
mailguntoken="accesstoken"
mailgundomain="example.com"
mailgunemailfrom="alert@example.com"
@@ -64,15 +58,20 @@ channeltag=""
# Pushover Alerts | https://docs.linuxgsm.com/alerts/pushover
pushoveralert="off"
pushovertoken="accesstoken"
+pushoveruserkey="userkey"
+
+# Rocket.Chat Alerts | https://docs.linuxgsm.com/alerts/rocket.chat
+rocketchatalert="off"
+rocketchatwebhook="webhook"
+rocketchattoken=""
# Slack Alerts | https://docs.linuxgsm.com/alerts/slack
slackalert="off"
slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
-# You can add a custom cURL string eg proxy (useful in Russia) or else in "curlcustomstring".
-# like a "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help", if you not need
-# any custom string in curl - simple ignore this parameter.
+# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
@@ -113,17 +112,22 @@ sleeptime="0.5"
# 8: 7 Days to Die
# 9: GoldSrc
# 10: Avorion
+# 11: end
stopmode="2"
## Query mode
# 1: session only
-# 2: gamedig + gsquery
+# 2: gamedig (gsquery fallback)
# 3: gamedig
# 4: gsquery
# 5: tcp
querymode="5"
querytype=""
+## Console type
+consoleverbose="yes"
+consoleinteract="no"
+
## Game Server Details
# Do not edit
gamename="TeamSpeak 3"
diff --git a/lgsm/config-default/config-lgsm/tsserver/_default.cfg b/lgsm/config-default/config-lgsm/tsserver/_default.cfg
index f73622b42..f39d23eb5 100644
--- a/lgsm/config-default/config-lgsm/tsserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/tsserver/_default.cfg
@@ -8,17 +8,15 @@
#### Game Server Settings ####
-## Server Start Settings | https://docs.linuxgsm.com/configuration/start-parameters
+## Predefined Parameters | https://docs.linuxgsm.com/configuration/start-parameters
ip="0.0.0.0"
port="27015"
clientport="27005"
defaultmap="ts_neobaroque"
maxplayers="32"
-## Server Start Command | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
-fn_parms(){
-parms="-game ts -strictportbind +ip ${ip} -port ${port} +clientport ${clientport} +map ${defaultmap} +servercfgfile ${servercfg} -maxplayers ${maxplayers} "
-}
+## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
+startparameters="-game ts -strictportbind +ip ${ip} -port ${port} +clientport ${clientport} +map ${defaultmap} +servercfgfile ${servercfg} -maxplayers ${maxplayers} "
#### LinuxGSM Settings ####
@@ -36,8 +34,6 @@ displayip=""
# More info | https://docs.linuxgsm.com/alerts#more-info
postalert="off"
-postdays="7"
-posttarget="https://termbin.com"
# Discord Alerts | https://docs.linuxgsm.com/alerts/discord
discordalert="off"
@@ -55,6 +51,7 @@ iftttevent="linuxgsm_alert"
# Mailgun Email Alerts | https://docs.linuxgsm.com/alerts/mailgun
mailgunalert="off"
+mailgunapiregion="us"
mailguntoken="accesstoken"
mailgundomain="example.com"
mailgunemailfrom="alert@example.com"
@@ -68,15 +65,20 @@ channeltag=""
# Pushover Alerts | https://docs.linuxgsm.com/alerts/pushover
pushoveralert="off"
pushovertoken="accesstoken"
+pushoveruserkey="userkey"
+
+# Rocket.Chat Alerts | https://docs.linuxgsm.com/alerts/rocket.chat
+rocketchatalert="off"
+rocketchatwebhook="webhook"
+rocketchattoken=""
# Slack Alerts | https://docs.linuxgsm.com/alerts/slack
slackalert="off"
slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
-# You can add a custom cURL string eg proxy (useful in Russia) or else in "curlcustomstring".
-# like a "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help", if you not need
-# any custom string in curl - simple ignore this parameter.
+# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
@@ -109,9 +111,11 @@ sleeptime="0.5"
## SteamCMD Settings | https://docs.linuxgsm.com/steamcmd
# Server appid
appid="90"
+steamcmdforcewindows="no"
appidmod="cstrike"
# SteamCMD Branch | https://docs.linuxgsm.com/steamcmd/branch
branch=""
+betapassword=""
# Master Server | https://docs.linuxgsm.com/steamcmd/steam-master-server
steammaster="true"
@@ -126,17 +130,22 @@ steammaster="true"
# 8: 7 Days to Die
# 9: GoldSrc
# 10: Avorion
+# 11: end
stopmode="9"
## Query mode
# 1: session only
-# 2: gamedig + gsquery
+# 2: gamedig (gsquery fallback)
# 3: gamedig
# 4: gsquery
# 5: tcp
querymode="2"
querytype="protocol-valve"
+## Console type
+consoleverbose="yes"
+consoleinteract="yes"
+
## Game Server Details
# Do not edit
gamename="The Specialists"
diff --git a/lgsm/config-default/config-lgsm/tuserver/_default.cfg b/lgsm/config-default/config-lgsm/tuserver/_default.cfg
index ff4165e45..42f750fd9 100644
--- a/lgsm/config-default/config-lgsm/tuserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/tuserver/_default.cfg
@@ -8,7 +8,7 @@
#### Game Server Settings ####
-## Server Start Settings | https://docs.linuxgsm.com/configuration/start-parameters
+## Predefined Parameters | https://docs.linuxgsm.com/configuration/start-parameters
ip="0.0.0.0"
port="7777"
queryport="27015"
@@ -18,10 +18,8 @@ queryport="27015"
# More info: https://docs.linuxgsm.com/steamcmd/gslt
gslt=""
-## Server Start Command | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
-fn_parms(){
-parms="-log -MultiHome=${ip} -Port=${port} -QueryPort=${queryport} -TowerServerINI=${selfname}.ini"
-}
+## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
+startparameters="-log -MultiHome=${ip} -Port=${port} -QueryPort=${queryport} -TowerServerINI=${selfname}.ini"
#### LinuxGSM Settings ####
@@ -39,8 +37,6 @@ displayip=""
# More info | https://docs.linuxgsm.com/alerts#more-info
postalert="off"
-postdays="7"
-posttarget="https://termbin.com"
# Discord Alerts | https://docs.linuxgsm.com/alerts/discord
discordalert="off"
@@ -58,6 +54,7 @@ iftttevent="linuxgsm_alert"
# Mailgun Email Alerts | https://docs.linuxgsm.com/alerts/mailgun
mailgunalert="off"
+mailgunapiregion="us"
mailguntoken="accesstoken"
mailgundomain="example.com"
mailgunemailfrom="alert@example.com"
@@ -71,15 +68,20 @@ channeltag=""
# Pushover Alerts | https://docs.linuxgsm.com/alerts/pushover
pushoveralert="off"
pushovertoken="accesstoken"
+pushoveruserkey="userkey"
+
+# Rocket.Chat Alerts | https://docs.linuxgsm.com/alerts/rocket.chat
+rocketchatalert="off"
+rocketchatwebhook="webhook"
+rocketchattoken=""
# Slack Alerts | https://docs.linuxgsm.com/alerts/slack
slackalert="off"
slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
-# You can add a custom cURL string eg proxy (useful in Russia) or else in "curlcustomstring".
-# like a "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help", if you not need
-# any custom string in curl - simple ignore this parameter.
+# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
@@ -112,8 +114,10 @@ sleeptime="0.5"
## SteamCMD Settings | https://docs.linuxgsm.com/steamcmd
# Server appid
appid="439660"
+steamcmdforcewindows="no"
# SteamCMD Branch | https://docs.linuxgsm.com/steamcmd/branch
branch=""
+betapassword=""
# Master Server | https://docs.linuxgsm.com/steamcmd/steam-master-server
steammaster="false"
@@ -128,17 +132,22 @@ steammaster="false"
# 8: 7 Days to Die
# 9: GoldSrc
# 10: Avorion
+# 11: end
stopmode="2"
## Query mode
# 1: session only
-# 2: gamedig + gsquery
+# 2: gamedig (gsquery fallback)
# 3: gamedig
# 4: gsquery
# 5: tcp
querymode="2"
querytype="protocol-valve"
+## Console type
+consoleverbose="yes"
+consoleinteract="no"
+
## Game Server Details
# Do not edit
gamename="Tower Unite"
diff --git a/lgsm/config-default/config-lgsm/twserver/_default.cfg b/lgsm/config-default/config-lgsm/twserver/_default.cfg
index 461c97059..19d4467eb 100644
--- a/lgsm/config-default/config-lgsm/twserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/twserver/_default.cfg
@@ -12,13 +12,11 @@
steamuser="username"
steampass='password'
-## Server Start Settings | https://docs.linuxgsm.com/configuration/start-parameters
+## Predefined Parameters | https://docs.linuxgsm.com/configuration/start-parameters
ip="0.0.0.0"
-## Server Start Command | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
-fn_parms(){
-parms="-f ${servercfg}"
-}
+## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
+startparameters="-f ${servercfg}"
#### LinuxGSM Settings ####
@@ -36,8 +34,6 @@ displayip=""
# More info | https://docs.linuxgsm.com/alerts#more-info
postalert="off"
-postdays="7"
-posttarget="https://termbin.com"
# Discord Alerts | https://docs.linuxgsm.com/alerts/discord
discordalert="off"
@@ -55,6 +51,7 @@ iftttevent="linuxgsm_alert"
# Mailgun Email Alerts | https://docs.linuxgsm.com/alerts/mailgun
mailgunalert="off"
+mailgunapiregion="us"
mailguntoken="accesstoken"
mailgundomain="example.com"
mailgunemailfrom="alert@example.com"
@@ -68,15 +65,20 @@ channeltag=""
# Pushover Alerts | https://docs.linuxgsm.com/alerts/pushover
pushoveralert="off"
pushovertoken="accesstoken"
+pushoveruserkey="userkey"
+
+# Rocket.Chat Alerts | https://docs.linuxgsm.com/alerts/rocket.chat
+rocketchatalert="off"
+rocketchatwebhook="webhook"
+rocketchattoken=""
# Slack Alerts | https://docs.linuxgsm.com/alerts/slack
slackalert="off"
slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
-# You can add a custom cURL string eg proxy (useful in Russia) or else in "curlcustomstring".
-# like a "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help", if you not need
-# any custom string in curl - simple ignore this parameter.
+# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
@@ -109,8 +111,10 @@ sleeptime="0.5"
## SteamCMD Settings | https://docs.linuxgsm.com/steamcmd
# Server appid
appid="380840"
+steamcmdforcewindows="no"
# SteamCMD Branch | https://docs.linuxgsm.com/steamcmd/branch
branch=""
+betapassword=""
# Master Server | https://docs.linuxgsm.com/steamcmd/steam-master-server
steammaster="false"
@@ -125,17 +129,22 @@ steammaster="false"
# 8: 7 Days to Die
# 9: GoldSrc
# 10: Avorion
+# 11: end
stopmode="2"
## Query mode
# 1: session only
-# 2: gamedig + gsquery
+# 2: gamedig (gsquery fallback)
# 3: gamedig
# 4: gsquery
# 5: tcp
querymode="4"
querytype="teeworlds"
+## Console type
+consoleverbose="yes"
+consoleinteract="no"
+
## Game Server Details
# Do not edit
gamename="Teeworlds"
diff --git a/lgsm/config-default/config-lgsm/untserver/_default.cfg b/lgsm/config-default/config-lgsm/untserver/_default.cfg
index ef0fe4c24..f923a1446 100644
--- a/lgsm/config-default/config-lgsm/untserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/untserver/_default.cfg
@@ -8,20 +8,14 @@
#### Game Server Settings ####
-## Server Start Settings | https://docs.linuxgsm.com/configuration/start-parameters
+## Predefined Parameters | https://docs.linuxgsm.com/configuration/start-parameters
ip="0.0.0.0"
port="27015"
maxplayers="20"
defaultmap="pei"
-## Server Start Command | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
-
-# Parameters are changed in game.ini and engine.ini (Location: ${systemdir}/Saved/Config/LinuxServer)
-# Make sure you change the admin password before launching the server
-
-fn_parms(){
-parms="-port:${port} -players:${maxplayers} --nographics -${defaultmap} -batchmode +secureserver/${selfname}"
-}
+## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
+startparameters="-port:${port} -players:${maxplayers} --nographics -${defaultmap} -batchmode +secureserver/${selfname}"
#### LinuxGSM Settings ####
@@ -39,8 +33,6 @@ displayip=""
# More info | https://docs.linuxgsm.com/alerts#more-info
postalert="off"
-postdays="7"
-posttarget="https://termbin.com"
# Discord Alerts | https://docs.linuxgsm.com/alerts/discord
discordalert="off"
@@ -58,6 +50,7 @@ iftttevent="linuxgsm_alert"
# Mailgun Email Alerts | https://docs.linuxgsm.com/alerts/mailgun
mailgunalert="off"
+mailgunapiregion="us"
mailguntoken="accesstoken"
mailgundomain="example.com"
mailgunemailfrom="alert@example.com"
@@ -71,15 +64,20 @@ channeltag=""
# Pushover Alerts | https://docs.linuxgsm.com/alerts/pushover
pushoveralert="off"
pushovertoken="accesstoken"
+pushoveruserkey="userkey"
+
+# Rocket.Chat Alerts | https://docs.linuxgsm.com/alerts/rocket.chat
+rocketchatalert="off"
+rocketchatwebhook="webhook"
+rocketchattoken=""
# Slack Alerts | https://docs.linuxgsm.com/alerts/slack
slackalert="off"
slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
-# You can add a custom cURL string eg proxy (useful in Russia) or else in "curlcustomstring".
-# like a "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help", if you not need
-# any custom string in curl - simple ignore this parameter.
+# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
@@ -112,8 +110,10 @@ sleeptime="0.5"
## SteamCMD Settings | https://docs.linuxgsm.com/steamcmd
# Server appid
appid="1110390"
+steamcmdforcewindows="no"
# SteamCMD Branch | https://docs.linuxgsm.com/steamcmd/branch
branch=""
+betapassword=""
# Master Server | https://docs.linuxgsm.com/steamcmd/steam-master-server
steammaster="false"
@@ -128,17 +128,22 @@ steammaster="false"
# 8: 7 Days to Die
# 9: GoldSrc
# 10: Avorion
+# 11: end
stopmode="2"
## Query mode
# 1: session only
-# 2: gamedig + gsquery
+# 2: gamedig (gsquery fallback)
# 3: gamedig
# 4: gsquery
# 5: tcp
querymode="2"
querytype="protocol-valve"
+## Console type
+consoleverbose="yes"
+consoleinteract="yes"
+
## Game Server Details
# Do not edit
gamename="Unturned"
diff --git a/lgsm/config-default/config-lgsm/ut2k4server/_default.cfg b/lgsm/config-default/config-lgsm/ut2k4server/_default.cfg
index 9c4164c72..450cc53e7 100644
--- a/lgsm/config-default/config-lgsm/ut2k4server/_default.cfg
+++ b/lgsm/config-default/config-lgsm/ut2k4server/_default.cfg
@@ -8,14 +8,12 @@
#### Game Server Settings ####
-## Server Start Settings | https://docs.linuxgsm.com/configuration/start-parameters
+## Predefined Parameters | https://docs.linuxgsm.com/configuration/start-parameters
defaultmap="DM-Rankin"
ip="0.0.0.0"
-## Server Start Command | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
-fn_parms(){
-parms="server ${defaultmap}?game=XGame.xDeathMatch -nohomedir ini=${servercfg} log=${gamelog}"
-}
+## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
+startparameters="server ${defaultmap}?game=XGame.xDeathMatch -nohomedir ini=${servercfg} log=${gamelog}"
#### LinuxGSM Settings ####
@@ -33,8 +31,6 @@ displayip=""
# More info | https://docs.linuxgsm.com/alerts#more-info
postalert="off"
-postdays="7"
-posttarget="https://termbin.com"
# Discord Alerts | https://docs.linuxgsm.com/alerts/discord
discordalert="off"
@@ -52,6 +48,7 @@ iftttevent="linuxgsm_alert"
# Mailgun Email Alerts | https://docs.linuxgsm.com/alerts/mailgun
mailgunalert="off"
+mailgunapiregion="us"
mailguntoken="accesstoken"
mailgundomain="example.com"
mailgunemailfrom="alert@example.com"
@@ -65,15 +62,20 @@ channeltag=""
# Pushover Alerts | https://docs.linuxgsm.com/alerts/pushover
pushoveralert="off"
pushovertoken="accesstoken"
+pushoveruserkey="userkey"
+
+# Rocket.Chat Alerts | https://docs.linuxgsm.com/alerts/rocket.chat
+rocketchatalert="off"
+rocketchatwebhook="webhook"
+rocketchattoken=""
# Slack Alerts | https://docs.linuxgsm.com/alerts/slack
slackalert="off"
slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
-# You can add a custom cURL string eg proxy (useful in Russia) or else in "curlcustomstring".
-# like a "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help", if you not need
-# any custom string in curl - simple ignore this parameter.
+# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
@@ -111,17 +113,22 @@ sleeptime="0.5"
# 8: 7 Days to Die
# 9: GoldSrc
# 10: Avorion
+# 11: end
stopmode="2"
## Query mode
# 1: session only
-# 2: gamedig + gsquery
+# 2: gamedig (gsquery fallback)
# 3: gamedig
# 4: gsquery
# 5: tcp
querymode="2"
querytype="protocol-unreal2"
+## Console type
+consoleverbose="yes"
+consoleinteract="no"
+
## Game Server Details
# Do not edit
gamename="Unreal Tournament 2004"
diff --git a/lgsm/config-default/config-lgsm/ut3server/_default.cfg b/lgsm/config-default/config-lgsm/ut3server/_default.cfg
index b42227859..90469ffa5 100644
--- a/lgsm/config-default/config-lgsm/ut3server/_default.cfg
+++ b/lgsm/config-default/config-lgsm/ut3server/_default.cfg
@@ -8,7 +8,7 @@
#### Game Server Settings ####
-## Server Start Settings | https://docs.linuxgsm.com/configuration/start-parameters
+## Predefined Parameters | https://docs.linuxgsm.com/configuration/start-parameters
ip="0.0.0.0"
port="7777"
queryport="6500"
@@ -27,11 +27,9 @@ allowjoininprogress="true"
gsusername=""
gspassword=""
-## Server Start Command | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
+## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
# Edit with care | List of game types and mutators: https://docs.linuxgsm.com/game-servers/unreal-tournament-3
-fn_parms(){
-parms="server ${defaultmap}?Game=${game}?bIsDedicated=${isdedicated}?bIsLanMatch=${islanmatch}?bUsesStats=${usesstats}?bShouldAdvertise=${shouldadvertise}?PureServer=${pureserver}?bAllowJoinInProgress=${allowjoininprogress}?Mutator=${mutators}?ConfigSubDir=${selfname} -login=${gsusername} -password=${gspassword} -port=${port} -queryport=${queryport} -multihome=${ip} -nohomedir -unattended -log=${gamelog}"
-}
+startparameters="server ${defaultmap}?Game=${game}?bIsDedicated=${isdedicated}?bIsLanMatch=${islanmatch}?bUsesStats=${usesstats}?bShouldAdvertise=${shouldadvertise}?PureServer=${pureserver}?bAllowJoinInProgress=${allowjoininprogress}?Mutator=${mutators}?ConfigSubDir=${selfname} -login=${gsusername} -password=${gspassword} -port=${port} -queryport=${queryport} -multihome=${ip} -nohomedir -unattended -log=${gamelog}"
#### LinuxGSM Settings ####
@@ -49,8 +47,6 @@ displayip=""
# More info | https://docs.linuxgsm.com/alerts#more-info
postalert="off"
-postdays="7"
-posttarget="https://termbin.com"
# Discord Alerts | https://docs.linuxgsm.com/alerts/discord
discordalert="off"
@@ -68,6 +64,7 @@ iftttevent="linuxgsm_alert"
# Mailgun Email Alerts | https://docs.linuxgsm.com/alerts/mailgun
mailgunalert="off"
+mailgunapiregion="us"
mailguntoken="accesstoken"
mailgundomain="example.com"
mailgunemailfrom="alert@example.com"
@@ -81,15 +78,20 @@ channeltag=""
# Pushover Alerts | https://docs.linuxgsm.com/alerts/pushover
pushoveralert="off"
pushovertoken="accesstoken"
+pushoveruserkey="userkey"
+
+# Rocket.Chat Alerts | https://docs.linuxgsm.com/alerts/rocket.chat
+rocketchatalert="off"
+rocketchatwebhook="webhook"
+rocketchattoken=""
# Slack Alerts | https://docs.linuxgsm.com/alerts/slack
slackalert="off"
slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
-# You can add a custom cURL string eg proxy (useful in Russia) or else in "curlcustomstring".
-# like a "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help", if you not need
-# any custom string in curl - simple ignore this parameter.
+# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
@@ -127,17 +129,22 @@ sleeptime="0.5"
# 8: 7 Days to Die
# 9: GoldSrc
# 10: Avorion
+# 11: end
stopmode="2"
## Query mode
# 1: session only
-# 2: gamedig + gsquery
+# 2: gamedig (gsquery fallback)
# 3: gamedig
# 4: gsquery
# 5: tcp
querymode="2"
querytype="ut3"
+## Console type
+consoleverbose="yes"
+consoleinteract="no"
+
## Game Server Details
# Do not edit
gamename="Unreal Tournament 3"
diff --git a/lgsm/config-default/config-lgsm/ut99server/_default.cfg b/lgsm/config-default/config-lgsm/ut99server/_default.cfg
index caab7ffea..16e0c205d 100644
--- a/lgsm/config-default/config-lgsm/ut99server/_default.cfg
+++ b/lgsm/config-default/config-lgsm/ut99server/_default.cfg
@@ -8,14 +8,12 @@
#### Game Server Settings ####
-## Server Start Settings | https://docs.linuxgsm.com/configuration/start-parameters
+## Predefined Parameters | https://docs.linuxgsm.com/configuration/start-parameters
defaultmap="DM-Deck16]["
ip="0.0.0.0"
-## Server Start Command | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
-fn_parms(){
-parms="server ${defaultmap}.unr ini=${servercfgfullpath}"
-}
+## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
+startparameters="server ${defaultmap}.unr ini=${servercfgfullpath}"
#### LinuxGSM Settings ####
@@ -33,8 +31,6 @@ displayip=""
# More info | https://docs.linuxgsm.com/alerts#more-info
postalert="off"
-postdays="7"
-posttarget="https://termbin.com"
# Discord Alerts | https://docs.linuxgsm.com/alerts/discord
discordalert="off"
@@ -52,6 +48,7 @@ iftttevent="linuxgsm_alert"
# Mailgun Email Alerts | https://docs.linuxgsm.com/alerts/mailgun
mailgunalert="off"
+mailgunapiregion="us"
mailguntoken="accesstoken"
mailgundomain="example.com"
mailgunemailfrom="alert@example.com"
@@ -65,15 +62,20 @@ channeltag=""
# Pushover Alerts | https://docs.linuxgsm.com/alerts/pushover
pushoveralert="off"
pushovertoken="accesstoken"
+pushoveruserkey="userkey"
+
+# Rocket.Chat Alerts | https://docs.linuxgsm.com/alerts/rocket.chat
+rocketchatalert="off"
+rocketchatwebhook="webhook"
+rocketchattoken=""
# Slack Alerts | https://docs.linuxgsm.com/alerts/slack
slackalert="off"
slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
-# You can add a custom cURL string eg proxy (useful in Russia) or else in "curlcustomstring".
-# like a "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help", if you not need
-# any custom string in curl - simple ignore this parameter.
+# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
@@ -111,17 +113,22 @@ sleeptime="0.5"
# 8: 7 Days to Die
# 9: GoldSrc
# 10: Avorion
+# 11: end
stopmode="2"
## Query mode
# 1: session only
-# 2: gamedig + gsquery
+# 2: gamedig (gsquery fallback)
# 3: gamedig
# 4: gsquery
# 5: tcp
querymode="2"
querytype="protocol-gamespy1"
+## Console type
+consoleverbose="yes"
+consoleinteract="no"
+
## Game Server Details
# Do not edit
gamename="Unreal Tournament 99"
diff --git a/lgsm/config-default/config-lgsm/utserver/_default.cfg b/lgsm/config-default/config-lgsm/utserver/_default.cfg
index 40d6cc526..1e974c2f1 100644
--- a/lgsm/config-default/config-lgsm/utserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/utserver/_default.cfg
@@ -8,7 +8,7 @@
#### Game Server Settings ####
-## Server Start Settings | https://docs.linuxgsm.com/configuration/start-parameters
+## Predefined Parameters | https://docs.linuxgsm.com/configuration/start-parameters
# For CTF: defaultmap="CTF-Face" gametype="CTF"
ip="0.0.0.0"
port="7777"
@@ -16,10 +16,8 @@ defaultmap="DM-Underland"
gametype="DM"
timelimit="10"
-## Server Start Command | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
-fn_parms(){
-parms="UnrealTournament ${defaultmap}?Game=${gametype}?TimeLimit=${timelimit} -port=${port}"
-}
+## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
+startparameters="UnrealTournament ${defaultmap}?Game=${gametype}?TimeLimit=${timelimit} -port=${port}"
#### LinuxGSM Settings ####
@@ -37,8 +35,6 @@ displayip=""
# More info | https://docs.linuxgsm.com/alerts#more-info
postalert="off"
-postdays="7"
-posttarget="https://termbin.com"
# Discord Alerts | https://docs.linuxgsm.com/alerts/discord
discordalert="off"
@@ -56,6 +52,7 @@ iftttevent="linuxgsm_alert"
# Mailgun Email Alerts | https://docs.linuxgsm.com/alerts/mailgun
mailgunalert="off"
+mailgunapiregion="us"
mailguntoken="accesstoken"
mailgundomain="example.com"
mailgunemailfrom="alert@example.com"
@@ -69,15 +66,20 @@ channeltag=""
# Pushover Alerts | https://docs.linuxgsm.com/alerts/pushover
pushoveralert="off"
pushovertoken="accesstoken"
+pushoveruserkey="userkey"
+
+# Rocket.Chat Alerts | https://docs.linuxgsm.com/alerts/rocket.chat
+rocketchatalert="off"
+rocketchatwebhook="webhook"
+rocketchattoken=""
# Slack Alerts | https://docs.linuxgsm.com/alerts/slack
slackalert="off"
slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
-# You can add a custom cURL string eg proxy (useful in Russia) or else in "curlcustomstring".
-# like a "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help", if you not need
-# any custom string in curl - simple ignore this parameter.
+# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
@@ -115,17 +117,22 @@ sleeptime="0.5"
# 8: 7 Days to Die
# 9: GoldSrc
# 10: Avorion
+# 11: end
stopmode="2"
## Query mode
# 1: session only
-# 2: gamedig + gsquery
+# 2: gamedig (gsquery fallback)
# 3: gamedig
# 4: gsquery
# 5: tcp
querymode="1"
querytype=""
+## Console type
+consoleverbose="yes"
+consoleinteract="no"
+
## Game Server Details
# Do not edit
gamename="Unreal Tournament"
@@ -141,6 +148,7 @@ executabledir="${systemdir}/Engine/Binaries/Linux"
executable="./UE4Server-Linux-Shipping"
servercfgdir="${systemdir}/UnrealTournament/Saved/Config/LinuxServer"
servercfg="Game.ini"
+servercfgdefault="Game.ini"
servercfgfullpath="${servercfgdir}/${servercfg}"
## Backup Directory
diff --git a/lgsm/config-default/config-lgsm/vintsserver/_default.cfg b/lgsm/config-default/config-lgsm/vintsserver/_default.cfg
new file mode 100644
index 000000000..e23baf8af
--- /dev/null
+++ b/lgsm/config-default/config-lgsm/vintsserver/_default.cfg
@@ -0,0 +1,171 @@
+##################################
+######## Default Settings ########
+##################################
+# DO NOT EDIT, ANY CHANGES WILL BE OVERWRITTEN!
+# Copy settings from here and use them in either:
+# common.cfg - applies settings to every instance.
+# [instance].cfg - applies settings to a specific instance.
+
+#### Game Server Settings ####
+
+## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
+fn_parms(){
+parms="--datapath ${servercfgdir}"
+}
+
+## Release Settings | https://docs.linuxgsm.com/game-servers/vintagestory#release-settings
+# Branch (stable|unstable)
+branch="stable"
+
+#### LinuxGSM Settings ####
+
+## LinuxGSM Stats
+# Send useful stats to LinuxGSM developers.
+# https://docs.linuxgsm.com/configuration/linuxgsm-stats
+# (on|off)
+stats="off"
+
+## Notification Alerts
+# (on|off)
+
+# Display IP | https://docs.linuxgsm.com/alerts#display-ip
+displayip=""
+
+# More info | https://docs.linuxgsm.com/alerts#more-info
+postalert="off"
+
+# Discord Alerts | https://docs.linuxgsm.com/alerts/discord
+discordalert="off"
+discordwebhook="webhook"
+
+# Email Alerts | https://docs.linuxgsm.com/alerts/email
+emailalert="off"
+email="email@example.com"
+emailfrom=""
+
+# IFTTT Alerts | https://docs.linuxgsm.com/alerts/ifttt
+iftttalert="off"
+ifttttoken="accesstoken"
+iftttevent="linuxgsm_alert"
+
+# Mailgun Email Alerts | https://docs.linuxgsm.com/alerts/mailgun
+mailgunalert="off"
+mailgunapiregion="us"
+mailguntoken="accesstoken"
+mailgundomain="example.com"
+mailgunemailfrom="alert@example.com"
+mailgunemail="email@myemail.com"
+
+# Pushbullet Alerts | https://docs.linuxgsm.com/alerts/pushbullet
+pushbulletalert="off"
+pushbullettoken="accesstoken"
+channeltag=""
+
+# Pushover Alerts | https://docs.linuxgsm.com/alerts/pushover
+pushoveralert="off"
+pushovertoken="accesstoken"
+pushoveruserkey="userkey"
+
+# Rocket.Chat Alerts | https://docs.linuxgsm.com/alerts/rocket.chat
+rocketchatalert="off"
+rocketchatwebhook="webhook"
+rocketchattoken=""
+
+# Slack Alerts | https://docs.linuxgsm.com/alerts/slack
+slackalert="off"
+slackwebhook="webhook"
+
+# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
+# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
+telegramalert="off"
+telegramtoken="accesstoken"
+telegramchatid=""
+curlcustomstring=""
+
+## Updating | https://docs.linuxgsm.com/commands/update
+updateonstart="off"
+
+## Backup | https://docs.linuxgsm.com/commands/backup
+maxbackups="4"
+maxbackupdays="30"
+stoponbackup="on"
+
+## Logging | https://docs.linuxgsm.com/features/logging
+consolelogging="on"
+logdays="7"
+
+## Monitor | https://docs.linuxgsm.com/commands/monitor
+# Query delay time
+querydelay="1"
+
+## ANSI Colors | https://docs.linuxgsm.com/features/ansi-colors
+ansi="on"
+
+#### Advanced Settings ####
+
+## Message Display Time | https://docs.linuxgsm.com/features/message-display-time
+sleeptime="0.5"
+
+## Stop Mode | https://docs.linuxgsm.com/features/stop-mode
+# 1: tmux kill
+# 2: CTRL+c
+# 3: quit
+# 4: quit 120s
+# 5: stop
+# 6: q
+# 7: exit
+# 8: 7 Days to Die
+# 9: GoldSrc
+# 10: Avorion
+# 11: end
+stopmode="2"
+
+## Query mode
+# 1: session only
+# 2: gamedig (gsquery fallback)
+# 3: gamedig
+# 4: gsquery
+# 5: tcp
+querymode="5"
+querytype=""
+
+## Console type
+consoleverbose="yes"
+consoleinteract="yes"
+
+## Game Server Details
+# Do not edit
+gamename="Vintage Story"
+engine="vintagestory"
+glibc="2.17"
+
+#### Directories ####
+# Edit with care
+
+## Game Server Directories
+systemdir="${serverfiles}"
+executabledir="${systemdir}"
+preexecutable="mono"
+executable="./VintagestoryServer.exe"
+servercfgdir="${serverfiles}/data/${selfname}"
+servercfg="serverconfig.json"
+servercfgdefault="serverconfig.json"
+servercfgfullpath="${servercfgdir}/${servercfg}"
+
+## Backup Directory
+backupdir="${lgsmdir}/backup"
+
+## Logging Directories
+logdir="${rootdir}/log"
+gamelogdir="${vsdataworld}/Logs"
+lgsmlogdir="${logdir}/script"
+consolelogdir="${logdir}/console"
+lgsmlog="${lgsmlogdir}/${selfname}-script.log"
+consolelog="${consolelogdir}/${selfname}-console.log"
+alertlog="${lgsmlogdir}/${selfname}-alert.log"
+postdetailslog="${lgsmlogdir}/${selfname}-postdetails.log"
+
+## Logs Naming
+lgsmlogdate="${lgsmlogdir}/${selfname}-script-$(date '+%Y-%m-%d-%H:%M:%S').log"
+consolelogdate="${consolelogdir}/${selfname}-console-$(date '+%Y-%m-%d-%H:%M:%S').log"
diff --git a/lgsm/config-default/config-lgsm/vsserver/_default.cfg b/lgsm/config-default/config-lgsm/vsserver/_default.cfg
index 1eaa9ff86..3ddab5cbb 100644
--- a/lgsm/config-default/config-lgsm/vsserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/vsserver/_default.cfg
@@ -8,17 +8,15 @@
#### Game Server Settings ####
-## Server Start Settings | https://docs.linuxgsm.com/configuration/start-parameters
+## Predefined Parameters | https://docs.linuxgsm.com/configuration/start-parameters
ip="0.0.0.0"
port="27015"
clientport="27005"
defaultmap="vs_frost"
maxplayers="16"
-## Server Start Command | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
-fn_parms(){
-parms="-game vs -strictportbind +ip ${ip} -port ${port} +clientport ${clientport} +map ${defaultmap} +servercfgfile ${servercfg} -maxplayers ${maxplayers}"
-}
+## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
+startparameters="-game vs -strictportbind +ip ${ip} -port ${port} +clientport ${clientport} +map ${defaultmap} +servercfgfile ${servercfg} -maxplayers ${maxplayers}"
#### LinuxGSM Settings ####
@@ -36,8 +34,6 @@ displayip=""
# More info | https://docs.linuxgsm.com/alerts#more-info
postalert="off"
-postdays="7"
-posttarget="https://termbin.com"
# Discord Alerts | https://docs.linuxgsm.com/alerts/discord
discordalert="off"
@@ -55,6 +51,7 @@ iftttevent="linuxgsm_alert"
# Mailgun Email Alerts | https://docs.linuxgsm.com/alerts/mailgun
mailgunalert="off"
+mailgunapiregion="us"
mailguntoken="accesstoken"
mailgundomain="example.com"
mailgunemailfrom="alert@example.com"
@@ -68,15 +65,20 @@ channeltag=""
# Pushover Alerts | https://docs.linuxgsm.com/alerts/pushover
pushoveralert="off"
pushovertoken="accesstoken"
+pushoveruserkey="userkey"
+
+# Rocket.Chat Alerts | https://docs.linuxgsm.com/alerts/rocket.chat
+rocketchatalert="off"
+rocketchatwebhook="webhook"
+rocketchattoken=""
# Slack Alerts | https://docs.linuxgsm.com/alerts/slack
slackalert="off"
slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
-# You can add a custom cURL string eg proxy (useful in Russia) or else in "curlcustomstring".
-# like a "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help", if you not need
-# any custom string in curl - simple ignore this parameter.
+# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
@@ -109,9 +111,11 @@ sleeptime="0.5"
## SteamCMD Settings | https://docs.linuxgsm.com/steamcmd
# Server appid
appid="90"
+steamcmdforcewindows="no"
appidmod="cstrike"
# SteamCMD Branch | https://docs.linuxgsm.com/steamcmd/branch
branch=""
+betapassword=""
# Master Server | https://docs.linuxgsm.com/steamcmd/steam-master-server
steammaster="true"
@@ -126,17 +130,22 @@ steammaster="true"
# 8: 7 Days to Die
# 9: GoldSrc
# 10: Avorion
+# 11: end
stopmode="9"
## Query mode
# 1: session only
-# 2: gamedig + gsquery
+# 2: gamedig (gsquery fallback)
# 3: gamedig
# 4: gsquery
# 5: tcp
querymode="2"
querytype="protocol-valve"
+## Console type
+consoleverbose="yes"
+consoleinteract="yes"
+
## Game Server Details
# Do not edit
gamename="Vampire Slayer"
diff --git a/lgsm/config-default/config-lgsm/wetserver/_default.cfg b/lgsm/config-default/config-lgsm/wetserver/_default.cfg
index 54ee3d25b..b5f243046 100644
--- a/lgsm/config-default/config-lgsm/wetserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/wetserver/_default.cfg
@@ -8,10 +8,8 @@
#### Game Server Settings ####
-## Server Start Command | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
-fn_parms(){
- parms="+set net_strict 1 +set fs_homepath ${serverfiles} +exec ${servercfg}"
-}
+## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
+startparameters="+set net_strict 1 +set fs_homepath ${serverfiles} +exec ${servercfg}"
#### LinuxGSM Settings ####
@@ -29,8 +27,6 @@ displayip=""
# More info | https://docs.linuxgsm.com/alerts#more-info
postalert="off"
-postdays="7"
-posttarget="https://termbin.com"
# Discord Alerts | https://docs.linuxgsm.com/alerts/discord
discordalert="off"
@@ -48,6 +44,7 @@ iftttevent="linuxgsm_alert"
# Mailgun Email Alerts | https://docs.linuxgsm.com/alerts/mailgun
mailgunalert="off"
+mailgunapiregion="us"
mailguntoken="accesstoken"
mailgundomain="example.com"
mailgunemailfrom="alert@example.com"
@@ -61,15 +58,20 @@ channeltag=""
# Pushover Alerts | https://docs.linuxgsm.com/alerts/pushover
pushoveralert="off"
pushovertoken="accesstoken"
+pushoveruserkey="userkey"
+
+# Rocket.Chat Alerts | https://docs.linuxgsm.com/alerts/rocket.chat
+rocketchatalert="off"
+rocketchatwebhook="webhook"
+rocketchattoken=""
# Slack Alerts | https://docs.linuxgsm.com/alerts/slack
slackalert="off"
slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
-# You can add a custom cURL string eg proxy (useful in Russia) or else in "curlcustomstring".
-# like a "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help", if you not need
-# any custom string in curl - simple ignore this parameter.
+# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
@@ -107,17 +109,22 @@ sleeptime="0.5"
# 8: 7 Days to Die
# 9: GoldSrc
# 10: Avorion
+# 11: end
stopmode="3"
## Query mode
# 1: session only
-# 2: gamedig + gsquery
+# 2: gamedig (gsquery fallback)
# 3: gamedig
# 4: gsquery
# 5: tcp
querymode="2"
querytype="protocol-quake3"
+## Console type
+consoleverbose="yes"
+consoleinteract="no"
+
## Game Server Details
# Do not edit
gamename="Wolfenstein: Enemy Territory"
diff --git a/lgsm/config-default/config-lgsm/wfserver/_default.cfg b/lgsm/config-default/config-lgsm/wfserver/_default.cfg
index 1ddbd7746..ef9964c28 100644
--- a/lgsm/config-default/config-lgsm/wfserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/wfserver/_default.cfg
@@ -8,15 +8,13 @@
#### Game Server Settings ####
-## Server Start Settings | https://docs.linuxgsm.com/configuration/start-parameters
+## Predefined Parameters | https://docs.linuxgsm.com/configuration/start-parameters
ip="0.0.0.0"
port="44400"
httpport="44444"
-## Server Start Command | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
-fn_parms(){
-parms="+exec ${servercfg} +sv_http_ip ${ip} +set sv_http_port ${httpport} +sv_ip ${ip} +sv_port ${port}"
-}
+## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
+startparameters="+exec ${servercfg} +sv_http_ip ${ip} +set sv_http_port ${httpport} +sv_ip ${ip} +sv_port ${port}"
#### LinuxGSM Settings ####
@@ -34,8 +32,6 @@ displayip=""
# More info | https://docs.linuxgsm.com/alerts#more-info
postalert="off"
-postdays="7"
-posttarget="https://termbin.com"
# Discord Alerts | https://docs.linuxgsm.com/alerts/discord
discordalert="off"
@@ -53,6 +49,7 @@ iftttevent="linuxgsm_alert"
# Mailgun Email Alerts | https://docs.linuxgsm.com/alerts/mailgun
mailgunalert="off"
+mailgunapiregion="us"
mailguntoken="accesstoken"
mailgundomain="example.com"
mailgunemailfrom="alert@example.com"
@@ -66,15 +63,20 @@ channeltag=""
# Pushover Alerts | https://docs.linuxgsm.com/alerts/pushover
pushoveralert="off"
pushovertoken="accesstoken"
+pushoveruserkey="userkey"
+
+# Rocket.Chat Alerts | https://docs.linuxgsm.com/alerts/rocket.chat
+rocketchatalert="off"
+rocketchatwebhook="webhook"
+rocketchattoken=""
# Slack Alerts | https://docs.linuxgsm.com/alerts/slack
slackalert="off"
slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
-# You can add a custom cURL string eg proxy (useful in Russia) or else in "curlcustomstring".
-# like a "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help", if you not need
-# any custom string in curl - simple ignore this parameter.
+# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
@@ -112,11 +114,12 @@ sleeptime="0.5"
# 8: 7 Days to Die
# 9: GoldSrc
# 10: Avorion
+# 11: end
stopmode="3"
## Query mode
# 1: session only
-# 2: gamedig + gsquery
+# 2: gamedig (gsquery fallback)
# 3: gamedig
# 4: gsquery
# 5: tcp
@@ -126,12 +129,18 @@ querytype="protocol-quake3"
## SteamCMD Settings | https://docs.linuxgsm.com/steamcmd
# Server appid
appid="1136510"
+steamcmdforcewindows="no"
appidmod="warfork"
# SteamCMD Branch | https://docs.linuxgsm.com/steamcmd/branch
branch=""
+betapassword=""
# Master Server | https://docs.linuxgsm.com/steamcmd/steam-master-server
steammaster="true"
+## Console type
+consoleverbose="yes"
+consoleinteract="yes"
+
## Game Server Details
# Do not edit
gamename="Warfork"
diff --git a/lgsm/config-default/config-lgsm/wurmserver/_default.cfg b/lgsm/config-default/config-lgsm/wurmserver/_default.cfg
index e131fc28b..5d5ba9790 100644
--- a/lgsm/config-default/config-lgsm/wurmserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/wurmserver/_default.cfg
@@ -8,12 +8,9 @@
#### Game Server Settings ####
-## Server Start Command | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
-fn_parms(){
- # Note Parameters are editing in the game server config file.
- source "${servercfgfullpath}"
- parms="ADMINPWD=\"$ADMINPWD\" EPICSETTINGS=\"$EPICSETTINGS\" EXTERNALPORT=\"$EXTERNALPORT\" HOMESERVER=\"$HOMESERVER\" HOMEKINGDOM=\"$HOMEKINGDOM\" LOGINSERVER=\"$LOGINSERVER\" MAXPLAYERS=\"$MAXPLAYERS\" QUERYPORT=\"$QUERYPORT\" SERVERNAME=\"$SERVERNAME\" SERVERPASSWORD=\"$SERVERPASSWORD\" START=\"$START\" IP=\"$IP\""
-}
+## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
+# Parameters are edited in the game server config file.
+startparameters="ADMINPWD=\"$ADMINPWD\" EPICSETTINGS=\"$EPICSETTINGS\" EXTERNALPORT=\"$EXTERNALPORT\" HOMESERVER=\"$HOMESERVER\" HOMEKINGDOM=\"$HOMEKINGDOM\" LOGINSERVER=\"$LOGINSERVER\" MAXPLAYERS=\"$MAXPLAYERS\" QUERYPORT=\"$QUERYPORT\" SERVERNAME=\"$SERVERNAME\" SERVERPASSWORD=\"$SERVERPASSWORD\" START=\"$START\" IP=\"$IP\""
#### LinuxGSM Settings ####
@@ -31,8 +28,6 @@ displayip=""
# More info | https://docs.linuxgsm.com/alerts#more-info
postalert="off"
-postdays="7"
-posttarget="https://termbin.com"
# Discord Alerts | https://docs.linuxgsm.com/alerts/discord
discordalert="off"
@@ -50,6 +45,7 @@ iftttevent="linuxgsm_alert"
# Mailgun Email Alerts | https://docs.linuxgsm.com/alerts/mailgun
mailgunalert="off"
+mailgunapiregion="us"
mailguntoken="accesstoken"
mailgundomain="example.com"
mailgunemailfrom="alert@example.com"
@@ -63,15 +59,20 @@ channeltag=""
# Pushover Alerts | https://docs.linuxgsm.com/alerts/pushover
pushoveralert="off"
pushovertoken="accesstoken"
+pushoveruserkey="userkey"
+
+# Rocket.Chat Alerts | https://docs.linuxgsm.com/alerts/rocket.chat
+rocketchatalert="off"
+rocketchatwebhook="webhook"
+rocketchattoken=""
# Slack Alerts | https://docs.linuxgsm.com/alerts/slack
slackalert="off"
slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
-# You can add a custom cURL string eg proxy (useful in Russia) or else in "curlcustomstring".
-# like a "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help", if you not need
-# any custom string in curl - simple ignore this parameter.
+# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
@@ -101,8 +102,10 @@ sleeptime="0.5"
## SteamCMD Settings | https://docs.linuxgsm.com/steamcmd
# Server appid
appid="402370"
+steamcmdforcewindows="no"
# SteamCMD Branch | https://docs.linuxgsm.com/steamcmd/branch
branch=""
+betapassword=""
# Master Server | https://docs.linuxgsm.com/steamcmd/steam-master-server
steammaster="false"
@@ -117,17 +120,22 @@ steammaster="false"
# 8: 7 Days to Die
# 9: GoldSrc
# 10: Avorion
+# 11: end
stopmode="2"
## Query mode
# 1: session only
-# 2: gamedig + gsquery
+# 2: gamedig (gsquery fallback)
# 3: gamedig
# 4: gsquery
# 5: tcp
querymode="2"
querytype="protocol-valve"
+## Console type
+consoleverbose=""
+consoleinteract=""
+
## Game Server Details
# Do not edit
gamename="Wurm Unlimited"
@@ -140,11 +148,13 @@ glibc="2.14"
## Game Server Directories
systemdir="${serverfiles}"
executabledir="${systemdir}"
-executable="xvfb-run ./WurmServerLauncher"
+preexecutable="xvfb-run"
+executable="./WurmServerLauncher"
servercfgdir="${systemdir}"
servercfg="${selfname}.cfg"
servercfgdefault="server.cfg"
servercfgfullpath="${servercfgdir}/${servercfg}"
+source "${servercfgfullpath}"
## Backup Directory
backupdir="${lgsmdir}/backup"
diff --git a/lgsm/config-default/config-lgsm/zmrserver/_default.cfg b/lgsm/config-default/config-lgsm/zmrserver/_default.cfg
index b22f79fc2..f9b4bbb38 100644
--- a/lgsm/config-default/config-lgsm/zmrserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/zmrserver/_default.cfg
@@ -8,7 +8,7 @@
#### Game Server Settings ####
-## Server Start Settings | https://docs.linuxgsm.com/configuration/start-parameters
+## Predefined Parameters | https://docs.linuxgsm.com/configuration/start-parameters
ip="0.0.0.0"
port="27015"
clientport="27005"
@@ -16,10 +16,8 @@ sourcetvport="27020"
defaultmap="zm_docksofthedead"
maxplayers="16"
-## Server Start Command | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
-fn_parms(){
-parms="-game zombie_master_reborn -strictportbind -ip ${ip} -port ${port} +clientport ${clientport} +tv_port ${sourcetvport} +map ${defaultmap} +servercfgfile ${servercfg} -maxplayers ${maxplayers}"
-}
+## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
+startparameters="-game zombie_master_reborn -strictportbind -ip ${ip} -port ${port} +clientport ${clientport} +tv_port ${sourcetvport} +map ${defaultmap} +servercfgfile ${servercfg} -maxplayers ${maxplayers}"
#### LinuxGSM Settings ####
@@ -37,8 +35,6 @@ displayip=""
# More info | https://docs.linuxgsm.com/alerts#more-info
postalert="off"
-postdays="7"
-posttarget="https://termbin.com"
# Discord Alerts | https://docs.linuxgsm.com/alerts/discord
discordalert="off"
@@ -56,6 +52,7 @@ iftttevent="linuxgsm_alert"
# Mailgun Email Alerts | https://docs.linuxgsm.com/alerts/mailgun
mailgunalert="off"
+mailgunapiregion="us"
mailguntoken="accesstoken"
mailgundomain="example.com"
mailgunemailfrom="alert@example.com"
@@ -69,15 +66,20 @@ channeltag=""
# Pushover Alerts | https://docs.linuxgsm.com/alerts/pushover
pushoveralert="off"
pushovertoken="accesstoken"
+pushoveruserkey="userkey"
+
+# Rocket.Chat Alerts | https://docs.linuxgsm.com/alerts/rocket.chat
+rocketchatalert="off"
+rocketchatwebhook="webhook"
+rocketchattoken=""
# Slack Alerts | https://docs.linuxgsm.com/alerts/slack
slackalert="off"
slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
-# You can add a custom cURL string eg proxy (useful in Russia) or else in "curlcustomstring".
-# like a "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help", if you not need
-# any custom string in curl - simple ignore this parameter.
+# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
@@ -110,8 +112,10 @@ sleeptime="0.5"
## SteamCMD Settings | https://docs.linuxgsm.com/steamcmd
# Server appid
appid="244310" # Source 2013 SDK
+steamcmdforcewindows="no"
# SteamCMD Branch | https://docs.linuxgsm.com/steamcmd/branch
branch=""
+betapassword=""
# Master Server | https://docs.linuxgsm.com/steamcmd/steam-master-server
steammaster="true"
@@ -126,17 +130,22 @@ steammaster="true"
# 8: 7 Days to Die
# 9: GoldSrc
# 10: Avorion
+# 11: end
stopmode="3"
## Query mode
# 1: session only
-# 2: gamedig + gsquery
+# 2: gamedig (gsquery fallback)
# 3: gamedig
# 4: gsquery
# 5: tcp
querymode="2"
querytype="protocol-valve"
+## Console type
+consoleverbose="yes"
+consoleinteract="yes"
+
## Game Server Details
# Do not edit
gamename="Zombie Master: Reborn"
diff --git a/lgsm/config-default/config-lgsm/zpsserver/_default.cfg b/lgsm/config-default/config-lgsm/zpsserver/_default.cfg
index 279f7258a..178548eb0 100644
--- a/lgsm/config-default/config-lgsm/zpsserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/zpsserver/_default.cfg
@@ -8,7 +8,7 @@
#### Game Server Settings ####
-## Server Start Settings | https://docs.linuxgsm.com/configuration/start-parameters
+## Predefined Parameters | https://docs.linuxgsm.com/configuration/start-parameters
ip="0.0.0.0"
port="27015"
clientport="27005"
@@ -21,10 +21,8 @@ maxplayers="20"
# More info: https://docs.linuxgsm.com/steamcmd/gslt
gslt=""
-## Server Start Command | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
-fn_parms(){
-parms="-game zps -strictportbind -ip ${ip} -port ${port} +clientport ${clientport} +tv_port ${sourcetvport} +map ${defaultmap} +servercfgfile ${servercfg} -maxplayers ${maxplayers}"
-}
+## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
+startparameters="-game zps -strictportbind -ip ${ip} -port ${port} +clientport ${clientport} +tv_port ${sourcetvport} +map ${defaultmap} +servercfgfile ${servercfg} -maxplayers ${maxplayers}"
#### LinuxGSM Settings ####
@@ -42,8 +40,6 @@ displayip=""
# More info | https://docs.linuxgsm.com/alerts#more-info
postalert="off"
-postdays="7"
-posttarget="https://termbin.com"
# Discord Alerts | https://docs.linuxgsm.com/alerts/discord
discordalert="off"
@@ -61,6 +57,7 @@ iftttevent="linuxgsm_alert"
# Mailgun Email Alerts | https://docs.linuxgsm.com/alerts/mailgun
mailgunalert="off"
+mailgunapiregion="us"
mailguntoken="accesstoken"
mailgundomain="example.com"
mailgunemailfrom="alert@example.com"
@@ -74,15 +71,20 @@ channeltag=""
# Pushover Alerts | https://docs.linuxgsm.com/alerts/pushover
pushoveralert="off"
pushovertoken="accesstoken"
+pushoveruserkey="userkey"
+
+# Rocket.Chat Alerts | https://docs.linuxgsm.com/alerts/rocket.chat
+rocketchatalert="off"
+rocketchatwebhook="webhook"
+rocketchattoken=""
# Slack Alerts | https://docs.linuxgsm.com/alerts/slack
slackalert="off"
slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
-# You can add a custom cURL string eg proxy (useful in Russia) or else in "curlcustomstring".
-# like a "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help", if you not need
-# any custom string in curl - simple ignore this parameter.
+# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
@@ -115,8 +117,10 @@ sleeptime="0.5"
## SteamCMD Settings | https://docs.linuxgsm.com/steamcmd
# Server appid
appid="17505"
+steamcmdforcewindows="no"
# SteamCMD Branch | https://docs.linuxgsm.com/steamcmd/branch
branch=""
+betapassword=""
# Master Server | https://docs.linuxgsm.com/steamcmd/steam-master-server
steammaster="true"
@@ -131,17 +135,22 @@ steammaster="true"
# 8: 7 Days to Die
# 9: GoldSrc
# 10: Avorion
+# 11: end
stopmode="3"
## Query mode
# 1: session only
-# 2: gamedig + gsquery
+# 2: gamedig (gsquery fallback)
# 3: gamedig
# 4: gsquery
# 5: tcp
querymode="2"
querytype="protocol-valve"
+## Console type
+consoleverbose="yes"
+consoleinteract="yes"
+
## Game Server Details
# Do not edit
gamename="Zombie Panic! Source"
diff --git a/lgsm/data/alert_discord_logo.jpg b/lgsm/data/alert_discord_logo.jpg
new file mode 100644
index 000000000..db94b295e
Binary files /dev/null and b/lgsm/data/alert_discord_logo.jpg differ
diff --git a/lgsm/data/alert_discord_logo.png b/lgsm/data/alert_discord_logo.png
deleted file mode 100644
index e56a92932..000000000
Binary files a/lgsm/data/alert_discord_logo.png and /dev/null differ
diff --git a/lgsm/data/serverlist.csv b/lgsm/data/serverlist.csv
index f294906bb..79139f680 100644
--- a/lgsm/data/serverlist.csv
+++ b/lgsm/data/serverlist.csv
@@ -1,5 +1,5 @@
ac,acserver,Assetto Corsa
-ahl,ahlserver,Action half-life
+ahl,ahlserver,Action Half-Life
ahl2,ahl2server,Action: Source
ark,arkserver,ARK: Survival Evolved
arma3,arma3server,ARMA 3
@@ -21,6 +21,7 @@ cod2,cod2server,Call of Duty 2
cod4,cod4server,Call of Duty 4
coduo,coduoserver,Call of Duty: United Offensive
codwaw,codwawserver,Call of Duty: World at War
+col,colserver,Colony Survival
cs,csserver,Counter-Strike 1.6
cscz,csczserver,Counter-Strike: Condition Zero
csgo,csgoserver,Counter-Strike: Global Offensive
@@ -37,7 +38,6 @@ em,emserver,Empires Mod
etl,etlserver,ET: Legacy
fctr,fctrserver,Factorio
fof,fofserver,Fistful of Frags
-ges,gesserver,GoldenEye: Source
gmod,gmodserver,Garrys Mod
hl2dm,hl2dmserver,Half-Life 2: Deathmatch
hldm,hldmserver,Half-Life: Deathmatch
@@ -48,6 +48,7 @@ inss,inssserver,Insurgency: Sandstorm
ios,iosserver,IOSoccer
jc2,jc2server,Just Cause 2
jc3,jc3server,Just Cause 3
+jk2,jk2server,Jedi Knight II: Jedi Outcast
kf,kfserver,Killing Floor
kf2,kf2server,Killing Floor 2
l4d,l4dserver,Left 4 Dead
@@ -69,6 +70,7 @@ opfor,opforserver,Opposing Force
pc,pcserver,Project Cars
pstbs,pstbsserver,Post Scriptum: The Bloody Seventh
pvkii,pvkiiserver,Pirates Vikings & Knights II
+pvr,pvrserver,Pavlov VR
pz,pzserver,Project Zomboid
q2,q2server,Quake 2
q3,q3server,Quake 3: Arena
@@ -82,12 +84,13 @@ rw,rwserver,Rising World
samp,sampserver,San Andreas Multiplayer
sb,sbserver,Starbound
sbots,sbotsserver,StickyBots
+scpsl,scpslserver,SCP: Secret Laboratory
+scpslsm,scpslsmserver,SCP: Secret Laboratory ServerMod
sdtd,sdtdserver,7 Days to Die
sfc,sfcserver,SourceForts Classic
sof2,sof2server,Soldier Of Fortune 2: Gold Edition
sol,solserver,Soldat
squad,squadserver,Squad
-ss3,ss3server,Serious Sam 3: BFE
st,stserver,Stationeers
sven,svenserver,Sven Co-op
terraria,terrariaserver,Terraria
@@ -103,8 +106,9 @@ ut2k4,ut2k4server,Unreal Tournament 2004
ut3,ut3server,Unreal Tournament 3
ut99,ut99server,Unreal Tournament 99
vs,vsserver,Vampire Slayer
+vints,vintsserver,Vintage Story
wet,wetserver,Wolfenstein: Enemy Territory
wf,wfserver,Warfork
wurm,wurmserver,Wurm Unlimited
zmr,zmrserver,Zombie Master: Reborn
-zps,zpsserver,Zombie Panic! Source
\ No newline at end of file
+zps,zpsserver,Zombie Panic! Source
diff --git a/lgsm/functions/README.md b/lgsm/functions/README.md
old mode 100644
new mode 100755
diff --git a/lgsm/functions/alert.sh b/lgsm/functions/alert.sh
old mode 100644
new mode 100755
index 5f8fe156e..3a071bee8
--- a/lgsm/functions/alert.sh
+++ b/lgsm/functions/alert.sh
@@ -60,6 +60,15 @@ fn_alert_update(){
alertbody="${gamename} received update"
}
+fn_alert_check_update(){
+ fn_script_log_info "Sending alert: Update available"
+ alertsubject="Alert - ${selfname} - Update available"
+ alertemoji="🎮"
+ alertsound="1"
+ alerturl="not enabled"
+ alertbody="${gamename} update available"
+}
+
fn_alert_permissions(){
fn_script_log_info "Sending alert: Permissions error"
alertsubject="Alert - ${selfname}: Permissions error"
@@ -88,6 +97,8 @@ elif [ "${alert}" == "test" ]; then
fn_alert_test
elif [ "${alert}" == "update" ]; then
fn_alert_update
+elif [ "${alert}" == "check-update" ]; then
+ fn_alert_check_update
elif [ "${alert}" == "config" ]; then
fn_alert_config
fi
@@ -99,15 +110,11 @@ fn_alert_log
if [ "${postalert}" == "on" ]&&[ -n "${postalert}" ]; then
exitbypass=1
command_postdetails.sh
+ fn_firstcommand_reset
+ unset exitbypass
elif [ "${postalert}" != "on" ]&&[ "${commandname}" == "TEST-ALERT" ]; then
fn_print_warn_nl "More Info not enabled"
fn_script_log_warn "More Info alerts not enabled"
-elif [ -z "${posttarget}" ]&&[ "${commandname}" == "TEST-ALERT" ]; then
- fn_print_error_nl "posttarget not set"
- fn_script_error "posttarget not set"
-elif [ -z "${postdays}" ]&&[ "${commandname}" == "TEST-ALERT" ]; then
- fn_print_error_nl "postdays not set"
- fn_script_error "postdays not set"
fi
if [ "${discordalert}" == "on" ]&&[ -n "${discordalert}" ]; then
@@ -175,6 +182,17 @@ elif [ -z "${pushovertoken}" ]&&[ "${commandname}" == "TEST-ALERT" ]; then
fn_script_error "Pushover token not set"
fi
+if [ "${sendgridalert}" == "on" ]&&[ -n "${sendgridalert}" ]; then
+ alert_sendgrid.sh
+elif [ "${sendgridalert}" != "on" ]&&[ "${commandname}" == "TEST-ALERT" ]; then
+ fn_print_warn_nl "SendGrid alerts not enabled"
+ fn_script_log_warn "SendGrid alerts not enabled"
+elif [ -z "${sendgridtoken}" ]&&[ "${commandname}" == "TEST-ALERT" ]; then
+ fn_print_error_nl "SendGrid token not set"
+ echo -e "* https://docs.linuxgsm.com/alerts/sendgrid"
+ fn_script_error "SendGrid token not set"
+fi
+
if [ "${telegramalert}" == "on" ]&&[ -n "${telegramtoken}" ]; then
alert_telegram.sh
elif [ "${telegramalert}" != "on" ]&&[ "${commandname}" == "TEST-ALERT" ]; then
@@ -190,6 +208,17 @@ elif [ -z "${telegramchatid}" ]&&[ "${commandname}" == "TEST-ALERT" ]; then
fn_script_error "Telegram chat id not set."
fi
+if [ "${rocketchatalert}" == "on" ]&&[ -n "${rocketchatalert}" ]; then
+ alert_rocketchat.sh
+elif [ "${rocketchatalert}" != "on" ]&&[ "${commandname}" == "TEST-ALERT" ]; then
+ fn_print_warn_nl "Rocketchat alerts not enabled"
+ fn_script_log_warn "Rocketchat alerts not enabled"
+elif [ -z "${rocketchattoken}" ]&&[ "${commandname}" == "TEST-ALERT" ]; then
+ fn_print_error_nl "Rocketchat token not set"
+ #echo -e "* https://docs.linuxgsm.com/alerts/slack"
+ fn_script_error "Rocketchat token not set"
+fi
+
if [ "${slackalert}" == "on" ]&&[ -n "${slackalert}" ]; then
alert_slack.sh
elif [ "${slackalert}" != "on" ]&&[ "${commandname}" == "TEST-ALERT" ]; then
diff --git a/lgsm/functions/alert_discord.sh b/lgsm/functions/alert_discord.sh
old mode 100644
new mode 100755
index 3ed12fe97..a8ce373f0
--- a/lgsm/functions/alert_discord.sh
+++ b/lgsm/functions/alert_discord.sh
@@ -12,9 +12,6 @@ if ! command -v jq > /dev/null; then
fn_script_log_fatal "Sending Discord alert: jq is missing."
fi
-escaped_servername=$(echo -n "${servername}" | jq -sRr "@json")
-escaped_alertbody=$(echo -n "${alertbody}" | jq -sRr "@json")
-
json=$(cat < /dev/null; then
+ fn_print_fail_nl "Sending Rocketchat alert: jq is missing."
+ fn_script_log_fatal "Sending Rocketchat alert: jq is missing."
+fi
+
+json=$(cat <${alertsubject} ${alertemoji}\n\nMessage\n${alertbody}\n\nGame\n${gamename}\n\nServer name\n${servername}\n\nHostname\n${HOSTNAME}\n\nServer IP\n${alertip}:${port}\n\nMore info\n${alerturl}",
+ "text": "${alertemoji} ${alertsubject} ${alertemoji}\n\nServer name\n${servername}\n\nMessage\n${alertbody}\n\nGame\n${gamename}\n\nServer IP\n${alertip}:${port}\n\nHostname\n${HOSTNAME}\n\nMore info\n${alerturl}",
"disable_web_page_preview": "yes",
EOF
)
fn_print_dots "Sending Telegram alert"
-telegramsend=$(curl -sSL -H "Content-Type: application/json" -X POST -d """${json}""" ${curlcustomstring} "https://api.telegram.org/bot${telegramtoken}/sendMessage" | grep "error_code")
+telegramsend=$(curl --connect-timeout 10 -sSL -H "Content-Type: application/json" -X POST -d """${json}""" ${curlcustomstring} "https://api.telegram.org/bot${telegramtoken}/sendMessage" | grep "error_code")
-if [ "${telegramsend}" ]; then
+if [ -n "${telegramsend}" ]; then
fn_print_fail_nl "Sending Telegram alert: ${telegramsend}"
fn_script_log_fatal "Sending Telegram alert: ${telegramsend}"
else
diff --git a/lgsm/functions/check.sh b/lgsm/functions/check.sh
old mode 100644
new mode 100755
index 3e8fa90a2..7ce2e9824
--- a/lgsm/functions/check.sh
+++ b/lgsm/functions/check.sh
@@ -31,8 +31,7 @@ if [ "${commandname}" != "INSTALL" ]&&[ "${commandname}" != "UPDATE-LGSM" ]&&[ "
fi
allowed_commands_array=( START DEBUG )
-for allowed_command in "${allowed_commands_array[@]}"
-do
+for allowed_command in "${allowed_commands_array[@]}"; do
if [ "${allowed_command}" == "${commandname}" ]; then
check_executable.sh
fi
@@ -40,41 +39,36 @@ done
if [ "$(whoami)" != "root" ]; then
allowed_commands_array=( DEBUG START INSTALL )
- for allowed_command in "${allowed_commands_array[@]}"
- do
+ for allowed_command in "${allowed_commands_array[@]}"; do
if [ "${allowed_command}" == "${commandname}" ]; then
check_glibc.sh
fi
done
fi
-allowed_commands_array=( BACKUP CONSOLE DEBUG DETAILS MAP-COMPRESSOR FASTDL MODS-INSTALL MODS-REMOVE MODS-UPDATE MONITOR POST-DETAILS RESTART START STOP TEST-ALERT CHANGE-PASSWORD UPDATE UPDATE-LGSM VALIDATE WIPW )
-for allowed_command in "${allowed_commands_array[@]}"
-do
+allowed_commands_array=( BACKUP CONSOLE DEBUG DETAILS MAP-COMPRESSOR FASTDL MODS-INSTALL MODS-REMOVE MODS-UPDATE MONITOR POST-DETAILS RESTART START STOP TEST-ALERT CHANGE-PASSWORD UPDATE UPDATE-LGSM VALIDATE WIPE )
+for allowed_command in "${allowed_commands_array[@]}"; do
if [ "${allowed_command}" == "${commandname}" ]; then
check_logs.sh
fi
done
allowed_commands_array=( DEBUG START STOP )
-for allowed_command in "${allowed_commands_array[@]}"
-do
+for allowed_command in "${allowed_commands_array[@]}"; do
if [ "${allowed_command}" == "${commandname}" ]; then
check_deps.sh
fi
done
allowed_commands_array=( CONSOLE DEBUG MONITOR START STOP )
-for allowed_command in "${allowed_commands_array[@]}"
-do
+for allowed_command in "${allowed_commands_array[@]}"; do
if [ "${allowed_command}" == "${commandname}" ]; then
check_config.sh
fi
done
-allowed_commands_array=( DEBUG DETAILS POST_DETAILS MONITOR START STOP DEV-QUERY-RAW )
-for allowed_command in "${allowed_commands_array[@]}"
-do
+allowed_commands_array=( DEBUG DETAILS DEV-QUERY-RAW MONITOR POST_DETAILS START STOP POST-DETAILS )
+for allowed_command in "${allowed_commands_array[@]}"; do
if [ "${allowed_command}" == "${commandname}" ]; then
if [ -z "${installflag}" ]; then
check_ip.sh
@@ -82,9 +76,8 @@ do
fi
done
-allowed_commands_array=( DEBUG START VALIDATE )
-for allowed_command in "${allowed_commands_array[@]}"
-do
+allowed_commands_array=( DEBUG START UPDATE VALIDATE )
+for allowed_command in "${allowed_commands_array[@]}"; do
if [ "${allowed_command}" == "${commandname}" ]; then
if [ "${appid}" ]; then
check_steamcmd.sh
@@ -92,17 +85,15 @@ do
fi
done
-allowed_commands_array=( DETAILS MONITOR START STOP CHANGE-PASSWORD UPDATE VALIDATE )
-for allowed_command in "${allowed_commands_array[@]}"
-do
+allowed_commands_array=( CHANGE-PASSWORD DETAILS MONITOR START STOP UPDATE VALIDATE POST-DETAILS )
+for allowed_command in "${allowed_commands_array[@]}"; do
if [ "${allowed_command}" == "${commandname}" ]; then
check_status.sh
fi
done
allowed_commands_array=( DEBUG START INSTALL )
-for allowed_command in "${allowed_commands_array[@]}"
-do
+for allowed_command in "${allowed_commands_array[@]}"; do
if [ "${allowed_command}" == "${commandname}" ]; then
check_system_requirements.sh
fi
diff --git a/lgsm/functions/check_config.sh b/lgsm/functions/check_config.sh
old mode 100644
new mode 100755
index c799904f2..ce9035744
--- a/lgsm/functions/check_config.sh
+++ b/lgsm/functions/check_config.sh
@@ -6,29 +6,21 @@
functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
-if [ ! -f "${servercfgfullpath}" ]; then
- if [ "${shortname}" != "hw" ]&&[ "${shortname}" != "ut3" ]&&[ "${shortname}" != "kf2" ]; then
- fn_print_dots ""
- fn_print_warn_nl "Configuration file missing!"
- echo -e "${servercfgfullpath}"
- fn_script_log_warn "Configuration file missing!"
- fn_script_log_warn "${servercfgfullpath}"
- install_config.sh
- fi
+if [ -n "${servercfgfullpath}" ]&&[ ! -f "${servercfgfullpath}" ]; then
+ fn_print_dots ""
+ fn_print_warn_nl "Configuration file missing!"
+ echo -e "${servercfgfullpath}"
+ fn_script_log_warn "Configuration file missing!"
+ fn_script_log_warn "${servercfgfullpath}"
+ install_config.sh
fi
-if [ "${shortname}" == "rust" ]; then
- if [ -z "${rconpassword}" ]; then
- fn_print_dots ""
- fn_print_fail_nl "RCON password is not set!"
- echo -e " * Not setting an RCON password causes issues with ${gamename}"
- fn_script_log_fatal "RCON password is not set"
- fn_script_log_fatal "Not setting an RCON password causes issues with ${gamename}"
- core_exit.sh
- elif [ "${rconpassword}" == "CHANGE_ME" ]; then
- fn_print_dots ""
- fn_print_warn_nl "Default RCON Password detected!"
- echo -e " * Having ${rconpassword} as a password is not very safe."
- fn_script_log_warn "Default RCON Password detected"
- fi
+if [ "${shortname}" == "rust" ]&&[ -v rconpassword ]&&[ -z "${rconpassword}" ]; then
+ fn_print_dots ""
+ fn_print_fail_nl "RCON password is not set"
+ fn_script_log_warn "RCON password is not set"
+elif [ -v rconpassword ]&&[ "${rconpassword}" == "CHANGE_ME" ]; then
+ fn_print_dots ""
+ fn_print_warn_nl "Default RCON Password detected"
+ fn_script_log_warn "Default RCON Password detected"
fi
diff --git a/lgsm/functions/check_deps.sh b/lgsm/functions/check_deps.sh
old mode 100644
new mode 100755
index 17a2c4ada..9caef4806
--- a/lgsm/functions/check_deps.sh
+++ b/lgsm/functions/check_deps.sh
@@ -185,7 +185,7 @@ if [ "${javacheck}" == "1" ]; then
# Define required dependencies for SteamCMD.
if [ "${appid}" ]; then
# lib32gcc1 is now called lib32gcc-s1 in debian 11
- if [ "${distroid}" == "debian" ]&&[ "${distroversion}" == "11" ]; then
+ if { [ "${distroid}" == "debian" ]&&[ "${distroversion}" == "11" ]; }||{ [ "${distroid}" == "ubuntu" ]&&[ "${distroversion}" == "20.10" ]; }; then
if [ "${deptocheck}" == "glibc.i686" ]||[ "${deptocheck}" == "libstdc++64.i686" ]||[ "${deptocheck}" == "lib32gcc-s1" ]||[ "${deptocheck}" == "lib32stdc++6" ]; then
steamcmdfail=1
fi
@@ -329,8 +329,7 @@ fn_found_missing_deps(){
fn_check_loop(){
# Loop though required depenencies.
- for deptocheck in ${array_deps_required[*]}
- do
+ for deptocheck in ${array_deps_required[*]}; do
fn_deps_detector
done
@@ -344,13 +343,13 @@ fn_deps_build_debian(){
array_deps_missing=()
# LinuxGSM requirements.
- array_deps_required=( curl wget ca-certificates file bsdmainutils util-linux python3 tar bzip2 gzip unzip binutils bc jq tmux netcat )
+ array_deps_required=( curl wget ca-certificates file bsdmainutils util-linux python3 tar bzip2 gzip unzip binutils bc jq tmux netcat cpio )
# All servers except ts3, mumble, GTA and minecraft servers require lib32stdc++6 and lib32gcc1.
if [ "${shortname}" != "ts3" ]&&[ "${shortname}" != "mumble" ]&&[ "${shortname}" != "mc" ]&&[ "${engine}" != "renderware" ]; then
if [ "${arch}" == "x86_64" ]; then
# lib32gcc1 is now called lib32gcc-s1 in debian 11
- if [ "${distroid}" == "debian" ]&&[ "${distroversion}" == "11" ]; then
+ if { [ "${distroid}" == "debian" ]&&[ "${distroversion}" == "11" ]; }|| { [ "${distroid}" == "ubuntu" ]&&[ "${distroversion}" == "20.10" ]; }; then
array_deps_required+=( lib32gcc-s1 lib32stdc++6 )
else
array_deps_required+=( lib32gcc1 lib32stdc++6 )
@@ -365,7 +364,7 @@ fn_deps_build_debian(){
if [ "${distroversion}" == "14.04" ]||[ "${distroid}" == "debian" ]&& ! grep -qE "^deb .*non-free" /etc/apt/sources.list; then
:
else
- array_deps_required+=( steamcmd )
+ array_deps_required+=( steamcmd libsdl2-2.0-0:i386 )
fi
fi
@@ -383,8 +382,14 @@ fn_deps_build_debian(){
# Battlefield: Vietnam
elif [ "${shortname}" == "bfv" ]; then
array_deps_required+=( libncurses5:i386 libstdc++5:i386 )
- # Battlefield 1942, Counter-Strike: Source, Garry's Mod, No More Room in Hell, Source Forts Classic, Zombie Master Reborn and Zombie Panic: Source
- elif [ "${shortname}" == "bf1942" ]||[ "${shortname}" == "css" ]||[ "${shortname}" == "gmod" ]||[ "${shortname}" == "nmrih" ]||[ "${shortname}" == "sfc" ]||[ "${shortname}" == "zmr" ]||[ "${shortname}" == "zps" ]; then
+ # Battlefield 1942
+ elif [ "${shortname}" == "bf1942" ]; then
+ array_deps_required+=( libncurses5:i386 libtinfo5:i386 )
+ # Black Mesa: Death Match
+ elif [ "${shortname}" == "bmdm" ]; then
+ array_deps_required+=( libncurses5:i386 )
+ # Counter-Strike: Source, Garry's Mod, No More Room in Hell, Source Forts Classic, Zombie Master Reborn and Zombie Panic: Source
+ elif [ "${shortname}" == "css" ]||[ "${shortname}" == "gmod" ]||[ "${shortname}" == "nmrih" ]||[ "${shortname}" == "sfc" ]||[ "${shortname}" == "zmr" ]||[ "${shortname}" == "zps" ]; then
if [ "${arch}" == "x86_64" ]; then
array_deps_required+=( libtinfo5:i386 )
else
@@ -396,6 +401,12 @@ fn_deps_build_debian(){
# Call of Duty & Medal of Honor: Allied Assault
elif [ "${shortname}" == "cod" ]||[ "${shortname}" == "coduo" ]||[ "${shortname}" == "cod2" ]||[ "${shortname}" == "mohaa" ]; then
array_deps_required+=( libstdc++5:i386 )
+ # Barotrauma
+ elif [ "${shortname}" == "bt" ]; then
+ array_deps_required+=( libicu-dev )
+ # Ecoserver
+ elif [ "${shortname}" == "eco" ]; then
+ array_deps_required+=( libgdiplus )
# Factorio
elif [ "${shortname}" == "fctr" ]; then
array_deps_required+=( xz-utils )
@@ -403,7 +414,7 @@ fn_deps_build_debian(){
elif [ "${shortname}" == "hw" ]||[ "${shortname}" == "rust" ]; then
array_deps_required+=( lib32z1 )
# Minecraft, Rising World, Wurm
- elif [ "${shortname}" == "mc" ]||[ "${shortname}" == "rw" ]||[ "${shortname}" == "wurm" ]; then
+ elif [ "${shortname}" == "mc" ]||[ "${shortname}" == "rw" ]; then
javaversion=$(java -version 2>&1 | grep "version")
if [ "${javaversion}" ]; then
# Added for users using Oracle JRE to bypass the check.
@@ -423,9 +434,9 @@ fn_deps_build_debian(){
else
array_deps_required+=( default-jre rng-tools )
fi
- # GoldenEye: Source
- elif [ "${shortname}" == "ges" ]; then
- array_deps_required+=( zlib1g:i386 libldap-2.4-2:i386 )
+ # SCP: Secret Laboratory, SCP: Secret Laboratory ServerMod
+ elif [ "${shortname}" == "scpsl" ]||[ "${shortname}" == "scpslsm" ]; then
+ array_deps_required+=( mono-complete )
# Sven Co-op
elif [ "${shortname}" == "sven" ]; then
array_deps_required+=( libssl1.1:i386 zlib1g:i386 )
@@ -441,14 +452,18 @@ fn_deps_build_debian(){
# Unreal Tournament
elif [ "${shortname}" == "ut" ]; then
array_deps_required+=( unzip )
- # Unturned
- elif [ "${shortname}" == "unt" ]; then
+ # Vintage Story
+ elif [ "${shortname}" == "vints" ]; then
array_deps_required+=( mono-complete )
# Wurm: Unlimited
elif [ "${shortname}" == "wurm" ]; then
array_deps_required+=( xvfb )
+ # Post Scriptum
elif [ "${shortname}" == "pstbs" ]; then
array_deps_required+=( libgconf-2-4 )
+ # Pavlov VR
+ elif [ "${shortname}" == "pvr" ]; then
+ array_deps_required+=( libc++1 )
fi
fn_deps_email
fn_check_loop
@@ -461,15 +476,15 @@ fn_deps_build_redhat(){
# LinuxGSM requirements.
# CentOS
if [ "${distroversion}" == "7" ]; then
- array_deps_required=( epel-release curl wget util-linux python3 file tar gzip bzip2 unzip binutils bc jq tmux nmap-ncat )
+ array_deps_required=( epel-release curl wget util-linux python3 file tar gzip bzip2 unzip binutils bc jq tmux nmap-ncat cpio )
elif [ "${distroversion}" == "8" ]; then
- array_deps_required=( epel-release curl wget util-linux python36 file tar gzip bzip2 unzip binutils bc jq tmux nmap-ncat )
+ array_deps_required=( epel-release curl wget util-linux python36 file tar gzip bzip2 unzip binutils bc jq tmux nmap-ncat cpio )
elif [ "${distroid}" == "fedora" ]; then
- array_deps_required=( curl wget util-linux python3 file tar gzip bzip2 unzip binutils bc jq tmux nmap-ncat )
+ array_deps_required=( curl wget util-linux python3 file tar gzip bzip2 unzip binutils bc jq tmux nmap-ncat cpio )
elif [[ "${distroname}" == *"Amazon Linux AMI"* ]]; then
- array_deps_required=( curl wget util-linux python3 file tar gzip bzip2 unzip binutils bc jq tmux nmap-ncat )
+ array_deps_required=( curl wget util-linux python3 file tar gzip bzip2 unzip binutils bc jq tmux nmap-ncat cpio )
else
- array_deps_required=( curl wget util-linux python3 file tar gzip bzip2 unzip binutils bc jq tmux nmap-ncat )
+ array_deps_required=( curl wget util-linux python3 file tar gzip bzip2 unzip binutils bc jq tmux nmap-ncat cpio )
fi
# All servers except ts3, mumble, multi theft auto and minecraft servers require glibc.i686 and libstdc++.i686.
@@ -492,11 +507,14 @@ fn_deps_build_redhat(){
# 7 Days to Die
elif [ "${shortname}" == "sdtd" ]; then
array_deps_required+=( telnet expect )
+ # Barotrauma
+ elif [ "${shortname}" == "bt" ]; then
+ array_deps_required+=( libicu )
# Battlefield: Vietnam
elif [ "${shortname}" == "bfv" ]; then
array_deps_required+=( compat-libstdc++-33.i686 glibc.i686 )
- # Battlefield 1942, Counter-Strike: Source, Garry's Mod, No More Room in Hell, Source Forts Classic, Zombie Master Reborn and Zombie Panic: Source
- elif [ "${shortname}" == "bf1942" ]||[ "${shortname}" == "css" ]||[ "${shortname}" == "gmod" ]||[ "${shortname}" == "nmrih" ]||[ "${shortname}" == "sfc" ]||[ "${shortname}" == "zmr" ]||[ "${shortname}" == "zps" ]; then
+ # Battlefield 1942, Black Mesa: Deathmatch, Counter-Strike: Source, Garry's Mod, No More Room in Hell, Source Forts Classic, Zombie Master Reborn and Zombie Panic: Source
+ elif [ "${shortname}" == "bf1942" ]||[ "${shortname}" == "bmdm" ]||[ "${shortname}" == "css" ]||[ "${shortname}" == "gmod" ]||[ "${shortname}" == "nmrih" ]||[ "${shortname}" == "sfc" ]||[ "${shortname}" == "zmr" ]||[ "${shortname}" == "zps" ]; then
array_deps_required+=( ncurses-libs.i686 )
# Brainbread 2, Don't Starve Together & Team Fortress 2
elif [ "${shortname}" == "bb2" ]||[ "${shortname}" == "dst" ]||[ "${shortname}" == "tf2" ]; then
@@ -504,6 +522,9 @@ fn_deps_build_redhat(){
# Call of Duty & Medal of Honor: Allied Assault
elif [ "${shortname}" == "cod" ]||[ "${shortname}" == "coduo" ]||[ "${shortname}" == "cod2" ]||[ "${shortname}" == "mohaa" ]; then
array_deps_required+=( compat-libstdc++-33.i686 )
+ # Ecoserver
+ elif [ "${shortname}" == "eco" ]; then
+ array_deps_required+=( libgdiplus )
# Factorio
elif [ "${shortname}" == "fctr" ]; then
array_deps_required+=( xz )
@@ -511,7 +532,7 @@ fn_deps_build_redhat(){
elif [ "${shortname}" == "hw" ]||[ "${shortname}" == "rust" ]; then
array_deps_required+=( zlib-devel )
# Minecraft, Rising World, Wurm
- elif [ "${shortname}" == "mc" ]||[ "${shortname}" == "rw" ]||[ "${shortname}" == "wurm" ]; then
+ elif [ "${shortname}" == "mc" ]||[ "${shortname}" == "rw" ]; then
javaversion=$(java -version 2>&1 | grep "version")
if [ "${javaversion}" ]; then
# Added for users using Oracle JRE to bypass the check.
@@ -531,9 +552,6 @@ fn_deps_build_redhat(){
else
array_deps_required+=( java-11-openjdk rng-tools )
fi
- # GoldenEye: Source
- elif [ "${shortname}" == "ges" ]; then
- array_deps_required+=( zlib.i686 openldap.i686 )
# Sven Co-op
elif [ "${shortname}" == "sven" ]; then
: # not compatible
@@ -549,14 +567,18 @@ fn_deps_build_redhat(){
# Unreal Tournament
elif [ "${shortname}" == "ut" ]; then
array_deps_required+=( unzip )
- # Unturned
- elif [ "${shortname}" == "unt" ]; then
+ # Vintage Story
+ elif [ "${shortname}" == "vints" ]; then
array_deps_required+=( mono-complete )
# Wurm: Unlimited
elif [ "${shortname}" == "wurm" ]; then
array_deps_required+=( xorg-x11-server-Xvfb )
+ # Post Scriptum
elif [ "${shortname}" == "pstbs" ]; then
array_deps_required+=( GConf2 )
+ # Pavlov VR
+ elif [ "${shortname}" == "pvr" ]; then
+ array_deps_required+=( libcxx )
fi
fn_deps_email
fn_check_loop
diff --git a/lgsm/functions/check_executable.sh b/lgsm/functions/check_executable.sh
old mode 100644
new mode 100755
diff --git a/lgsm/functions/check_glibc.sh b/lgsm/functions/check_glibc.sh
old mode 100644
new mode 100755
diff --git a/lgsm/functions/check_ip.sh b/lgsm/functions/check_ip.sh
old mode 100644
new mode 100755
index d8c4f3ed5..a4ddf7ae0
--- a/lgsm/functions/check_ip.sh
+++ b/lgsm/functions/check_ip.sh
@@ -7,78 +7,41 @@
functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
-if [ "${travistest}" != "1" ]; then
- if [ ! -f "/bin/ip" ]; then
- ipcommand="/sbin/ip"
- else
- ipcommand="ip"
- fi
- getip=$(${ipcommand} -o -4 addr | awk '{print $4}' | grep -oe '\([0-9]\{1,3\}\.\?\)\{4\}'|sort -u|grep -v 127.0.0)
- getipwc=$(${ipcommand} -o -4 addr | awk '{print $4}' | grep -oe '\([0-9]\{1,3\}\.\?\)\{4\}'|sort -u|grep -vc 127.0.0)
- info_config.sh
- info_parms.sh
+info_config.sh
+info_parms.sh
- # IP is not set to specific IP.
- if [ "${ip}" == "0.0.0.0" ]||[ "${ip}" == "" ]; then
- fn_print_dots "Check IP"
- # Multiple interfaces.
- if [ "${getipwc}" -ge "2" ]; then
- if [ "${commandname}" == "details" ]; then
- fn_print_warn "Check IP: Multiple IP addresses found."
- else
- fn_print_fail "Check IP: Multiple IP addresses found."
- fi
- echo -en "\n"
- # IP is set within game config.
- if [ "${ipsetinconfig}" == "1" ]; then
- fn_print_information "Specify the IP you want to bind within ${servercfg}.\n"
- echo -en " * location: ${servercfgfullpath}\n"
- echo -en "\n"
- echo -en "Set ${ipinconfigvar} to one of the following:\n"
- fn_script_log_fatal "Multiple IP addresses found."
- fn_script_log_fatal "Specify the IP you want to bind within: ${servercfgfullpath}."
- # IP is set within LinuxGSM config.
- else
- fn_print_information_nl "Specify the IP you want to bind within a LinuxGSM config file.\n"
- echo -en " * location: ${configdirserver}\n"
- echo -en "\n"
- echo -en "Set ip=\"0.0.0.0\" to one of the following:\n"
- fn_script_log_fatal "Multiple IP addresses found."
- fn_script_log_fatal "Specify the IP you want to bind within: ${configdirserver}."
- fi
- echo -en "${getip}\n"
- echo -en "\n"
- echo -en "https://linuxgsm.com/network-interfaces\n"
- echo -en ""
- # Do not exit for details and postdetails commands.
- if [ "${commandname}" != "DETAILS" ]||[ "${commandname}" != "POST-DETAILS" ]; then
- fn_script_log_fatal "https://linuxgsm.com/network-interfaces\n"
- core_exit.sh
- else
- ip="NOT SET"
- fi
- # Single interface.
- elif [ "${ipsetinconfig}" == "1" ]; then
- fn_print_fail "Check IP: IP address not set in game config."
- echo -en "\n"
- fn_print_information "Specify the IP you want to bind within ${servercfg}.\n"
- echo -en " * location: ${servercfgfullpath}\n"
- echo -en "\n"
- echo -en "Set ${ipinconfigvar} to the following:\n"
- echo -en "${getip}\n"
- echo -en "\n"
- echo -en "https://linuxgsm.com/network-interfaces\n"
- echo -en ""
- fn_script_log_fatal "IP address not set in game config."
- fn_script_log_fatal "Specify the IP you want to bind within: ${servercfgfullpath}."
- fn_script_log_fatal "https://linuxgsm.com/network-interfaces\n"
- if [ "${commandname}" != "DETAILS" ]; then
- core_exit.sh
- fi
- else
- fn_print_info_nl "Check IP: ${getip}"
- fn_script_log_info "IP automatically set as: ${getip}"
- ip="${getip}"
- fi
- fi
+if [ ! -f "/bin/ip" ]; then
+ ipcommand="/sbin/ip"
+else
+ ipcommand="ip"
+fi
+getip=$(${ipcommand} -o -4 addr | awk '{print $4}' | grep -oe '\([0-9]\{1,3\}\.\?\)\{4\}' | sort -u | grep -v 127.0.0)
+getipwc=$(${ipcommand} -o -4 addr | awk '{print $4}' | grep -oe '\([0-9]\{1,3\}\.\?\)\{4\}' | sort -u | grep -vc 127.0.0)
+
+# Check if server has multiple IP addresses
+
+# If the IP variable has been set by user.
+if [ -n "${ip}" ]&&[ "${ip}" != "0.0.0.0" ]; then
+ queryips=( "${ip}" )
+ webadminip=( "${ip}" )
+ telnetip=( "${ip}" )
+# If game config does have an IP set.
+elif [ -n "${configip}" ]&&[ "${configip}" != "0.0.0.0" ];then
+ queryips=( "${configip}" )
+ ip="${configip}"
+ webadminip=( "${configip}" )
+ telnetip=( "${configip}" )
+# If there is only 1 server IP address.
+# Some IP details can automaticly use the one IP
+elif [ "${getipwc}" == "1" ]; then
+ queryips=( $(echo "${getip}") )
+ ip="0.0.0.0"
+ webadminip=( "${getip}" )
+ telnetip=( "${getip}" )
+# If no ip is set by the user and server has more than one IP.
+else
+ queryips=( $(echo "${getip}") )
+ ip="0.0.0.0"
+ webadminip=( "${ip}" )
+ telnetip=( "${ip}" )
fi
diff --git a/lgsm/functions/check_last_update.sh b/lgsm/functions/check_last_update.sh
old mode 100644
new mode 100755
index 52e4cfce0..99253d749
--- a/lgsm/functions/check_last_update.sh
+++ b/lgsm/functions/check_last_update.sh
@@ -20,5 +20,6 @@ if [ -f "${lockdir}/lastupdate.lock" ]&&[ "${status}" != "0" ]; then
fn_print_info "${selfname} has not been restarted since last update"
fn_script_log_info "${selfname} has not been restarted since last update"
command_restart.sh
+ fn_firstcommand_reset
fi
fi
diff --git a/lgsm/functions/check_logs.sh b/lgsm/functions/check_logs.sh
old mode 100644
new mode 100755
diff --git a/lgsm/functions/check_permissions.sh b/lgsm/functions/check_permissions.sh
old mode 100644
new mode 100755
diff --git a/lgsm/functions/check_root.sh b/lgsm/functions/check_root.sh
old mode 100644
new mode 100755
diff --git a/lgsm/functions/check_status.sh b/lgsm/functions/check_status.sh
old mode 100644
new mode 100755
diff --git a/lgsm/functions/check_steamcmd.sh b/lgsm/functions/check_steamcmd.sh
old mode 100644
new mode 100755
index aa4140bbe..9141acd0d
--- a/lgsm/functions/check_steamcmd.sh
+++ b/lgsm/functions/check_steamcmd.sh
@@ -6,145 +6,8 @@
functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
-fn_install_steamcmd(){
- if [ ${shortname} == "ark" ]&&[ "${installsteamcmd}" == "1" ]; then
- steamcmddir="${serverfiles}/Engine/Binaries/ThirdParty/SteamCMD/Linux"
- fi
- if [ ! -d "${steamcmddir}" ]; then
- mkdir -p "${steamcmddir}"
- fi
- remote_fileurl="${1}"
- remote_fileurl_backup="${2}"
- remote_fileurl_name="${3}"
- remote_fileurl_backup_name="${4}"
- local_filedir="${5}"
- local_filename="${6}"
- chmodx="${7:-0}"
- run="${8:-0}"
- forcedl="${9:-0}"
- md5="${10:-0}"
- fn_fetch_file "http://media.steampowered.com/client/steamcmd_linux.tar.gz" "" "" "" "${tmpdir}" "steamcmd_linux.tar.gz" "" "norun" "noforce" "nomd5"
- fn_dl_extract "${tmpdir}" "steamcmd_linux.tar.gz" "${steamcmddir}"
- chmod +x "${steamcmddir}/steamcmd.sh"
-}
-
-fn_check_steamcmd_user(){
- # Checks if steamuser is setup.
- if [ "${steamuser}" == "username" ]; then
- fn_print_fail_nl "Steam login not set. Update steamuser in ${configdirserver}"
- echo -e " * Change steamuser=\"username\" to a valid steam login."
- if [ -d "${lgsmlogdir}" ]; then
- fn_script_log_fatal "Steam login not set. Update steamuser in ${configdirserver}"
- fi
- core_exit.sh
- fi
- # Anonymous user is set if steamuser is missing.
- if [ -z "${steamuser}" ]; then
- if [ -d "${lgsmlogdir}" ]; then
- fn_script_log_info "Using anonymous Steam login"
- fi
- steamuser="anonymous"
- steampass=''
- fi
-}
-
-fn_check_steamcmd(){
- # Checks if SteamCMD exists when starting or updating a server.
- # Only install if steamcmd package is missing or steamcmd dir is missing.
- if [ ! -f "${steamcmddir}/steamcmd.sh" ]&&[ -z "$(command -v steamcmd 2>/dev/null)" ]; then
- if [ "${commandname}" == "INSTALL" ]; then
- fn_install_steamcmd
- else
- fn_print_warn_nl "SteamCMD is missing"
- fn_script_log_warn "SteamCMD is missing"
- fn_install_steamcmd
- fi
- elif [ "${commandname}" == "INSTALL" ]; then
- fn_print_information "SteamCMD is already installed..."
- fn_print_ok_eol_nl
- fi
-}
-
-fn_check_steamcmd_dir(){
- # Worksround that pre-installs the correct steam directories to ensure all packages use the correct Standard.
- # https://github.com/ValveSoftware/steam-for-linux/issues/6976#issuecomment-610446347
-
- # Create Steam installation directory.
- if [ ! -d "${XDG_DATA_HOME:="${HOME}/.local/share"}/Steam" ]; then
- mkdir -p "${XDG_DATA_HOME:="${HOME}/.local/share"}/Steam"
- fi
-
- # Create common Steam directory.
- if [ ! -d "${HOME}/.steam" ]; then
- mkdir -p "${HOME}/.steam"
- fi
-
- # Symbolic links to Steam installation directory.
- if [ ! -L "${HOME}/.steam/root" ]; then
- if [ -d "${HOME}/.steam/root" ]; then
- rm "${HOME}/.steam/root"
- fi
- ln -s "${XDG_DATA_HOME:="${HOME}/.local/share"}/Steam" "${HOME}/.steam/root"
- fi
-
- if [ ! -L "${HOME}/.steam/steam" ]; then
- if [ -d "${HOME}/.steam/steam" ]; then
- rm -rf "${HOME}/.steam/steam"
- fi
- ln -s "${XDG_DATA_HOME:="${HOME}/.local/share"}/Steam" "${HOME}/.steam/steam"
- fi
-}
-
-fn_check_steamcmd_dir_legacy(){
- # Remove old Steam installation directories ~/Steam and ${rootdir}/steamcmd
- if [ -d "${rootdir}/steamcmd" ]&&[ "${steamcmddir}" == "${XDG_DATA_HOME:="${HOME}/.local/share"}/Steam" ]; then
- rm -rf "${rootdir:?}/steamcmd"
- fi
-
- if [ -d "${HOME}/Steam" ]&&[ "${steamcmddir}" == "${XDG_DATA_HOME:="${HOME}/.local/share"}/Steam" ]; then
- rm -rf "${HOME}/Steam"
- fi
-}
-
-fn_check_steamcmd_ark(){
- # Checks if SteamCMD exists in
- # Engine/Binaries/ThirdParty/SteamCMD/Linux
- # to allow ark mods to work
- if [ ! -f "${serverfiles}/Engine/Binaries/ThirdParty/SteamCMD/Linux/steamcmd.sh" ]; then
- installsteamcmd=1
- if [ "${commandname}" == "INSTALL" ]; then
- fn_install_steamcmd
- else
- fn_print_warn_nl "ARK mods SteamCMD is missing"
- fn_script_log_warn "ARK mods SteamCMD is missing"
- fn_install_steamcmd
- fi
- elif [ "${commandname}" == "INSTALL" ]; then
- fn_print_information "ARK mods SteamCMD is already installed..."
- fn_print_ok_eol_nl
- fi
-}
-
-fn_check_steamcmd_clear(){
-# Will remove steamcmd dir if steamcmd package is installed.
-if [ "$(command -v steamcmd 2>/dev/null)" ]&&[ -d "${rootdir}/steamcmd" ]; then
- rm -rf "${steamcmddir:?}"
- exitcode=$?
- if [ ${exitcode} -ne 0 ]; then
- fn_script_log_fatal "Removing ${rootdir}/steamcmd"
- else
- fn_script_log_pass "Removing ${rootdir}/steamcmd"
- fi
-fi
-}
-
-fn_check_steamcmd_exec(){
- if [ "$(command -v steamcmd 2>/dev/null)" ]; then
- steamcmdcommand="steamcmd"
- else
- steamcmdcommand="./steamcmd.sh"
- fi
-}
+# init steamcmd functions
+core_steamcmd.sh
fn_check_steamcmd_clear
fn_check_steamcmd
diff --git a/lgsm/functions/check_system_dir.sh b/lgsm/functions/check_system_dir.sh
old mode 100644
new mode 100755
diff --git a/lgsm/functions/check_system_requirements.sh b/lgsm/functions/check_system_requirements.sh
old mode 100644
new mode 100755
index 8b7db5a3c..7a8b73de5
--- a/lgsm/functions/check_system_requirements.sh
+++ b/lgsm/functions/check_system_requirements.sh
@@ -38,6 +38,9 @@ elif [ "${shortname}" == "ns2" ]||[ "${shortname}" == "ns2c" ]; then
elif [ "${shortname}" == "st" ]; then
ramrequirementmb="1000"
ramrequirementgb="1"
+elif [ "${shortname}" == "pvr" ];then
+ ramrequirementmb="2000"
+ ramrequirementgb="2"
fi
# If the game or engine has a minimum RAM Requirement, compare it to system's available RAM.
diff --git a/lgsm/functions/check_tmuxception.sh b/lgsm/functions/check_tmuxception.sh
old mode 100644
new mode 100755
diff --git a/lgsm/functions/check_version.sh b/lgsm/functions/check_version.sh
old mode 100644
new mode 100755
index 6db78091d..15f0284bb
--- a/lgsm/functions/check_version.sh
+++ b/lgsm/functions/check_version.sh
@@ -16,4 +16,5 @@ if [ -n "${modulesversion}" ]&&[ -n "${version}" ]&&[ "${version}" != "${modules
fn_sleep_time
fn_script_log_error "LinuxGSM Version mismatch: ${selfname}: ${version}: modules: ${modulesversion}"
command_update_linuxgsm.sh
+ fn_firstcommand_reset
fi
diff --git a/lgsm/functions/command_backup.sh b/lgsm/functions/command_backup.sh
old mode 100644
new mode 100755
index 537e86f1c..e778cb8a6
--- a/lgsm/functions/command_backup.sh
+++ b/lgsm/functions/command_backup.sh
@@ -8,6 +8,7 @@
commandname="BACKUP"
commandaction="Backing up"
functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
+fn_firstcommand_set
check.sh
@@ -61,22 +62,20 @@ fn_backup_init(){
# Check if server is started and whether to stop it.
fn_backup_stop_server(){
check_status.sh
- # Server is stopped.
- if [ "${status}" == "0" ]; then
- serverstopped="no"
- # Server is running and stoponbackup=off.
- elif [ "${stoponbackup}" == "off" ]; then
- serverstopped="no"
+ # Server is running but will not be stopped.
+ if [ "${stoponbackup}" == "off" ]; then
fn_print_warn_nl "${selfname} is currently running"
echo -e "* Although unlikely; creating a backup while ${selfname} is running might corrupt the backup."
fn_script_log_warn "${selfname} is currently running"
fn_script_log_warn "Although unlikely; creating a backup while ${selfname} is running might corrupt the backup"
# Server is running and will be stopped if stoponbackup=on or unset.
- else
- fn_stop_warning
- serverstopped="yes"
+ # If server is started
+ elif [ "${status}" != "0" ]; then
+ fn_print_restart_warning
+ startserver="1"
exitbypass=1
command_stop.sh
+ fn_firstcommand_reset
fi
}
@@ -140,7 +139,7 @@ fn_backup_compression(){
tar -czf "${backupdir}/${backupname}.tar.gz" -C "${rootdir}" --exclude "${excludedir}" --exclude "${lockdir}/backup.lock" ./.
local exitcode=$?
- if [ ${exitcode} -ne 0 ]; then
+ if [ "${exitcode}" != 0 ]; then
fn_print_fail_eol
fn_script_log_fatal "Backup in progress: FAIL"
echo -e "${extractcmd}" | tee -a "${lgsmlog}"
@@ -219,21 +218,18 @@ fn_backup_relpath() {
# Compare the leading entries of each array. These common elements will be clipped off.
# for the relative path output.
- for ((base=0; base<${#rdirtoks[@]}; base++))
- do
+ for ((base=0; base<${#rdirtoks[@]}; base++)); do
[[ "${rdirtoks[$base]}" != "${bdirtoks[$base]}" ]] && break
done
# Next, climb out of the remaining rootdir location with updir references.
- for ((x=base;x<${#rdirtoks[@]};x++))
- do
+ for ((x=base;x<${#rdirtoks[@]};x++)); do
echo -n "../"
done
# Climb down the remaining components of the backupdir location.
- for ((x=base;x<$(( ${#bdirtoks[@]} - 1 ));x++))
- do
- echo -n "${bdirtoks[$x]}/"
+ for ((x=base;x<$(( ${#bdirtoks[@]} - 1 ));x++)); do
+ echo -n "${bdirtoks[$x]}/"
done
# In the event there were no directories left in the backupdir above to
@@ -246,26 +242,12 @@ fn_backup_relpath() {
fi
}
-fn_stop_warning(){
- fn_print_warn "Updating server: SteamCMD: ${selfname} will be stopped during backup"
- fn_script_log_warn "Updating server: SteamCMD: ${selfname} will be stopped during backup"
- totalseconds=3
- for seconds in {3..1}; do
- fn_print_warn "Updating server: SteamCMD: ${selfname} will be stopped during backup: ${totalseconds}"
- totalseconds=$((totalseconds - 1))
- sleep 1
- if [ "${seconds}" == "0" ]; then
- break
- fi
- done
- fn_print_warn_nl "Updating server: SteamCMD: ${selfname} will be stopped during backup"
-}
-
-# Restart the server if it was stopped for the backup.
+# Start the server if it was stopped for the backup.
fn_backup_start_server(){
- if [ "${serverstopped}" == "yes" ]; then
+ if [ -n "${startserver}" ]; then
exitbypass=1
command_start.sh
+ fn_firstcommand_reset
fi
}
diff --git a/lgsm/functions/command_check_update.sh b/lgsm/functions/command_check_update.sh
new file mode 100755
index 000000000..5bda55469
--- /dev/null
+++ b/lgsm/functions/command_check_update.sh
@@ -0,0 +1,24 @@
+#!/bin/bash
+# LinuxGSM command_check_update.sh function
+# Author: Daniel Gibbs
+# Website: https://linuxgsm.com
+# Description: Handles updating of servers.
+
+commandname="CHECK-UPDATE"
+commandaction="check for Update"
+functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
+fn_firstcommand_set
+
+fn_print_dots ""
+check.sh
+core_logs.sh
+
+core_steamcmd.sh
+
+check_steamcmd.sh
+
+fn_update_steamcmd_localbuild
+fn_update_steamcmd_remotebuild
+fn_update_steamcmd_compare
+
+core_exit.sh
diff --git a/lgsm/functions/command_console.sh b/lgsm/functions/command_console.sh
old mode 100644
new mode 100755
index 18e674652..0de924ea6
--- a/lgsm/functions/command_console.sh
+++ b/lgsm/functions/command_console.sh
@@ -7,19 +7,34 @@
commandname="CONSOLE"
commandaction="Access console"
functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
+fn_firstcommand_set
check.sh
fn_print_header
-if [ "${shortname}" == "rust" ]||[ "${shortname}" == "hw" ]||[ "${shortname}" == "ark" ]; then
- fn_print_information_nl "${gamename} does not produce a verbose output to the console"
- fn_print_information_nl "${gamename} does not allow server commands to be entered in to the console"
+
+if [ "${consoleverbose}" == "yes" ]; then
+ echo -e "* Verbose output: ${lightgreen}yes${default}"
+elif [ "${consoleverbose}" == "no" ]; then
+ echo -e "* Verbose output: ${red}no${default}"
+else
+ echo -e "* Verbose output: ${red}unknown${default}"
+fi
+
+if [ "${consoleinteract}" == "yes" ]; then
+ echo -e "* Interactive output: ${lightgreen}yes${default}"
+elif [ "${consoleinteract}" == "no" ]; then
+ echo -e "* Interactive output: ${red}no${default}"
+else
+ echo -e "* Interactive output: ${red}unknown${default}"
fi
+echo ""
fn_print_information_nl "Press \"CTRL+b\" then \"d\" to exit console."
fn_print_warning_nl "Do NOT press CTRL+c to exit."
-echo -e " * https://docs.linuxgsm.com/commands/console"
+echo -e "* https://docs.linuxgsm.com/commands/console"
echo -e ""
if ! fn_prompt_yn "Continue?" Y; then
- return
+ exitcode=0
+ core_exit.sh
fi
fn_print_dots "Accessing console"
check_status.sh
@@ -35,6 +50,7 @@ else
if fn_prompt_yn "Do you want to start the server?" Y; then
exitbypass=1
command_start.sh
+ fn_firstcommand_reset
fi
fi
diff --git a/lgsm/functions/command_debug.sh b/lgsm/functions/command_debug.sh
old mode 100644
new mode 100755
index 5aeb0d5e1..0630b887f
--- a/lgsm/functions/command_debug.sh
+++ b/lgsm/functions/command_debug.sh
@@ -7,6 +7,7 @@
commandname="DEBUG"
commandaction="Debuging"
functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
+fn_firstcommand_set
# Trap to remove lockfile on quit.
fn_lockfile_trap(){
@@ -54,11 +55,8 @@ if [ "${glibc}" ]; then
fi
# Server IP
-if [ "${multiple_ip}" == "1" ]; then
- echo -e "${lightblue}Server IP:\t${default}NOT SET"
-else
- echo -e "${lightblue}Server IP:\t${default}${ip}:${port}"
-fi
+echo -e "${lightblue}Game Server IP:\t${default}${ip}:${port}"
+
# External server IP.
if [ "${extip}" ]; then
if [ "${ip}" != "${extip}" ]; then
@@ -72,8 +70,10 @@ fi
echo -e "${lightblue}Start parameters:${default}"
if [ "${engine}" == "source" ]||[ "${engine}" == "goldsrc" ]; then
echo -e "${executable} ${parms} -debug"
+elif [ "${engine}" == "quake" ]; then
+ echo -e "${executable} ${parms} -condebug"
else
- echo -e "${executable} ${parms}"
+ echo -e "${preexecutable} ${executable} ${parms}"
fi
echo -e ""
echo -e "Use for identifying server issues only!"
@@ -81,13 +81,15 @@ echo -e "Press CTRL+c to drop out of debug mode."
fn_print_warning_nl "If ${selfname} is already running it will be stopped."
echo -e ""
if ! fn_prompt_yn "Continue?" Y; then
- return
+ exitcode=0
+ core_exit.sh
fi
fn_print_info_nl "Stopping any running servers"
fn_script_log_info "Stopping any running servers"
exitbypass=1
command_stop.sh
+fn_firstcommand_reset
unset exitbypass
fn_print_dots "Starting debug"
fn_script_log_info "Starting debug"
@@ -95,6 +97,8 @@ fn_print_ok_nl "Starting debug"
# Create lockfile.
date '+%s' > "${lockdir}/${selfname}.lock"
+echo "${version}" >> "${lockdir}/${selfname}.lock"
+echo "${port}" >> "${lockdir}/${selfname}.lock"
fn_script_log_info "Lockfile generated"
fn_script_log_info "${lockdir}/${selfname}.lock"
@@ -108,9 +112,10 @@ elif [ "${shortname}" == "arma3" ]; then
# stripped when loading straight from the console.
${executable} ${parms//\\;/;}
elif [ "${engine}" == "quake" ]; then
- ${executable} ${parms} -condebug
+ ${executable} ${parms} -condebug
else
- ${executable} ${parms}
+ # shellcheck disable=SC2086
+ ${preexecutable} ${executable} ${parms}
fi
fn_lockfile_trap
diff --git a/lgsm/functions/command_details.sh b/lgsm/functions/command_details.sh
old mode 100644
new mode 100755
index c2abc0ba0..2db605656
--- a/lgsm/functions/command_details.sh
+++ b/lgsm/functions/command_details.sh
@@ -8,6 +8,7 @@
commandname="DETAILS"
commandaction="Viewing details"
functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
+fn_firstcommand_set
# Run checks and gathers details to display.
check.sh
@@ -16,7 +17,12 @@ info_parms.sh
info_distro.sh
info_messages.sh
if [ "${querymode}" == "2" ]||[ "${querymode}" == "3" ]; then
- query_gamedig.sh
+ for queryip in "${queryips[@]}"; do
+ query_gamedig.sh
+ if [ "${querystatus}" == "0" ]; then
+ break
+ fi
+ done
fi
fn_info_message_distro
fn_info_message_server_resource
diff --git a/lgsm/functions/command_dev_clear_functions.sh b/lgsm/functions/command_dev_clear_functions.sh
old mode 100644
new mode 100755
index 0c2faa375..96a637c52
--- a/lgsm/functions/command_dev_clear_functions.sh
+++ b/lgsm/functions/command_dev_clear_functions.sh
@@ -7,6 +7,7 @@
commandname="DEV-CLEAR-MODULES"
commandaction="Clearing modules"
functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
+fn_firstcommand_set
echo -e "================================="
echo -e "Clear Functions"
diff --git a/lgsm/functions/command_dev_debug.sh b/lgsm/functions/command_dev_debug.sh
old mode 100644
new mode 100755
index 962b01e7f..e959509cd
--- a/lgsm/functions/command_dev_debug.sh
+++ b/lgsm/functions/command_dev_debug.sh
@@ -7,6 +7,7 @@
commandname="DEV-DEBUG"
commandaction="Developer debug"
functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
+fn_firstcommand_reset
if [ -f "${rootdir}/.dev-debug" ]; then
rm "${rootdir:?}/.dev-debug"
diff --git a/lgsm/functions/command_dev_detect_deps.sh b/lgsm/functions/command_dev_detect_deps.sh
old mode 100644
new mode 100755
index 04f37d696..c8271172e
--- a/lgsm/functions/command_dev_detect_deps.sh
+++ b/lgsm/functions/command_dev_detect_deps.sh
@@ -7,6 +7,7 @@
commandname="DEV-DETECT-DEPS"
commandaction="Developer detect deps"
functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
+fn_firstcommand_set
echo -e "================================="
echo -e "Dependencies Checker"
@@ -41,8 +42,7 @@ touch "${tmpdir}/.depdetect_debian_list"
while read -r lib; do
echo -e "${lib}"
libs_array=( libm.so.6 libc.so.6 libtcmalloc_minimal.so.4 libpthread.so.0 libdl.so.2 libnsl.so.1 libgcc_s.so.1 librt.so.1 ld-linux.so.2 libdbus-glib-1.so.2 libgio-2.0.so.0 libglib-2.0.so.0 libGL.so.1 libgobject-2.0.so.0 libnm-glib.so.4 libnm-util.so.2 )
- for lib_file in "${libs_array[@]}"
- do
+ for lib_file in "${libs_array[@]}"; do
if [ "${lib}" == "${lib_file}" ]; then
echo -e "glibc.i686" >> "${tmpdir}/.depdetect_centos_list"
echo -e "lib32gcc1" >> "${tmpdir}/.depdetect_ubuntu_list"
@@ -52,8 +52,7 @@ while read -r lib; do
done
libs_array=( libawt.so libjava.so libjli.so libjvm.so libnet.so libnio.so libverify.so )
- for lib_file in "${libs_array[@]}"
- do
+ for lib_file in "${libs_array[@]}"; do
if [ "${lib}" == "${lib_file}" ]; then
echo -e "java-1.8.0-openjdk" >> "${tmpdir}/.depdetect_centos_list"
echo -e "default-jre" >> "${tmpdir}/.depdetect_ubuntu_list"
@@ -63,8 +62,7 @@ while read -r lib; do
done
libs_array=( libtier0.so libtier0_srv.so libvstdlib_srv.so Core.so libvstdlib.so libtier0_s.so Editor.so Engine.so liblua.so libsteam_api.so ld-linux-x86-64.so.2 libPhysX3_x86.so libPhysX3Common_x86.so libPhysX3Cooking_x86.so)
- for lib_file in "${libs_array[@]}"
- do
+ for lib_file in "${libs_array[@]}"; do
# Known shared libs what dont requires dependencies.
if [ "${lib}" == "${lib_file}" ]; then
libdetected=1
@@ -157,6 +155,11 @@ while read -r lib; do
echo -e "libfreetype6" >> "${tmpdir}/.depdetect_ubuntu_list"
echo -e "libfreetype6" >> "${tmpdir}/.depdetect_debian_list"
libdetected=1
+ elif [ "${lib}" == "libc++.so.1" ]; then
+ echo -e "libcxx" >> "${tmpdir}/.depdetect_centos_list"
+ echo -e "libc++1" >> "${tmpdir}/.depdetect_ubuntu_list"
+ echo -e "libc++1" >> "${tmpdir}/.depdetect_debian_list"
+ libdetected=1
fi
if [ "${libdetected}" != "1" ]; then
diff --git a/lgsm/functions/command_dev_detect_glibc.sh b/lgsm/functions/command_dev_detect_glibc.sh
old mode 100644
new mode 100755
index 2289bb818..e538c456e
--- a/lgsm/functions/command_dev_detect_glibc.sh
+++ b/lgsm/functions/command_dev_detect_glibc.sh
@@ -8,6 +8,7 @@
commandname="DEV-DETECT-GLIBC"
commandaction="Developer detect glibc"
functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
+fn_firstcommand_set
echo -e "================================="
echo -e "glibc Requirements Checker"
@@ -34,8 +35,7 @@ echo -e ""
glibc_check_dir_array=( steamcmddir serverfiles )
-for glibc_check_var in "${glibc_check_dir_array[@]}"
-do
+for glibc_check_var in "${glibc_check_dir_array[@]}"; do
if [ "${glibc_check_var}" == "serverfiles" ]; then
glibc_check_dir="${serverfiles}"
glibc_check_name="${gamename}"
diff --git a/lgsm/functions/command_dev_detect_ldd.sh b/lgsm/functions/command_dev_detect_ldd.sh
old mode 100644
new mode 100755
index 850845179..e6ddfb09f
--- a/lgsm/functions/command_dev_detect_ldd.sh
+++ b/lgsm/functions/command_dev_detect_ldd.sh
@@ -8,6 +8,7 @@
commandname="DEV-DETECT-LDD"
commandaction="Developer detect ldd"
functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
+fn_firstcommand_set
echo -e "================================="
echo -e "Shared Object dependencies Checker"
diff --git a/lgsm/functions/command_dev_query_raw.sh b/lgsm/functions/command_dev_query_raw.sh
old mode 100644
new mode 100755
index 22ed232ec..ac1e9f688
--- a/lgsm/functions/command_dev_query_raw.sh
+++ b/lgsm/functions/command_dev_query_raw.sh
@@ -7,6 +7,7 @@
commandname="DEV-QUERY-RAW"
commandaction="Developer query raw"
functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
+fn_firstcommand_set
check.sh
info_config.sh
@@ -16,6 +17,11 @@ echo -e ""
echo -e "Query Port - Raw Output"
echo -e "=================================================================="
echo -e ""
+echo -e "QUERY IP"
+for queryip in "${queryips[@]}"; do
+ echo -e "${queryip}"
+done
+echo -e "================================="
echo -e "Ports"
echo -e "================================="
echo -e ""
@@ -31,38 +37,40 @@ fi
if [ ! "$(command -v jq 2>/dev/null)" ]; then
fn_print_failure_nl "jq not installed"
fi
-
-query_gamedig.sh
-echo -e "${gamedigcmd}"
-echo""
-echo "${gamedigraw}" | jq
-
+for queryip in "${queryips[@]}"; do
+ query_gamedig.sh
+ echo -e "${gamedigcmd}"
+ echo""
+ echo "${gamedigraw}" | jq
+done
echo -e ""
echo -e "gsquery Raw Output"
echo -e "================================="
echo -e ""
-echo -e "./query_gsquery.py -a \"${ip}\" -p \"${queryport}\" -e \"${querytype}\""
-echo -e ""
-if [ ! -f "${functionsdir}/query_gsquery.py" ]; then
- fn_fetch_file_github "lgsm/functions" "query_gsquery.py" "${functionsdir}" "chmodx" "norun" "noforce" "nomd5"
-fi
-"${functionsdir}"/query_gsquery.py -a "${ip}" -p "${queryport}" -e "${querytype}"
-
+for queryip in "${queryips[@]}"; do
+ echo -e "./query_gsquery.py -a \"${queryip}\" -p \"${queryport}\" -e \"${querytype}\""
+ echo -e ""
+ if [ ! -f "${functionsdir}/query_gsquery.py" ]; then
+ fn_fetch_file_github "lgsm/functions" "query_gsquery.py" "${functionsdir}" "chmodx" "norun" "noforce" "nomd5"
+ fi
+ "${functionsdir}"/query_gsquery.py -a "${queryip}" -p "${queryport}" -e "${querytype}"
+done
echo -e ""
echo -e "TCP Raw Output"
echo -e "================================="
echo -e ""
-echo -e "bash -c 'exec 3<> /dev/tcp/'${ip}'/'${queryport}''"
-echo -e ""
-bash -c 'exec 3<> /dev/tcp/'${ip}'/'${queryport}''
-querystatus="$?"
-echo -e ""
-if [ "${querystatus}" == "0" ]; then
- echo -e "TCP query PASS"
-else
- echo -e "TCP query FAIL"
-fi
-
+for queryip in "${queryips[@]}"; do
+ echo -e "bash -c 'exec 3<> /dev/tcp/'${queryip}'/'${queryport}''"
+ echo -e ""
+ timeout 3 bash -c 'exec 3<> /dev/tcp/'${queryip}'/'${queryport}''
+ querystatus="$?"
+ echo -e ""
+ if [ "${querystatus}" == "0" ]; then
+ echo -e "TCP query PASS"
+ else
+ echo -e "TCP query FAIL"
+ fi
+done
echo -e ""
echo -e "Game Port - Raw Output"
echo -e "=================================================================="
@@ -70,16 +78,17 @@ echo -e ""
echo -e "TCP Raw Output"
echo -e "================================="
echo -e ""
-echo -e "bash -c 'exec 3<> /dev/tcp/'${ip}'/'${port}''"
-echo -e ""
-bash -c 'exec 3<> /dev/tcp/'${ip}'/'${port}''
-querystatus="$?"
-echo -e ""
-if [ "${querystatus}" == "0" ]; then
- echo -e "TCP query PASS"
-else
- echo -e "TCP query FAIL"
-fi
-
+for queryip in "${queryips[@]}"; do
+ echo -e "bash -c 'exec 3<> /dev/tcp/'${queryip}'/'${port}''"
+ echo -e ""
+ timeout 3 bash -c 'exec 3<> /dev/tcp/'${queryip}'/'${port}''
+ querystatus="$?"
+ echo -e ""
+ if [ "${querystatus}" == "0" ]; then
+ echo -e "TCP query PASS"
+ else
+ echo -e "TCP query FAIL"
+ fi
+done
exitcode=0
core_exit.sh
diff --git a/lgsm/functions/command_donate.sh b/lgsm/functions/command_donate.sh
old mode 100644
new mode 100755
index 9bb7f2faf..18e6dce5a
--- a/lgsm/functions/command_donate.sh
+++ b/lgsm/functions/command_donate.sh
@@ -7,6 +7,7 @@
commandname="DONATE"
commandaction="Donate"
functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
+fn_firstcommand_set
fn_print_ascii_logo
echo -e "${lightyellow}Support LinuxGSM${default}"
diff --git a/lgsm/functions/command_fastdl.sh b/lgsm/functions/command_fastdl.sh
old mode 100644
new mode 100755
index f6a5897db..4f8ebd863
--- a/lgsm/functions/command_fastdl.sh
+++ b/lgsm/functions/command_fastdl.sh
@@ -8,6 +8,7 @@
commandname="FASTDL"
commandaction="Fastdl"
functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
+fn_firstcommand_set
check.sh
@@ -69,7 +70,7 @@ fn_clear_old_fastdl(){
echo -en "clearing existing FastDL directory ${fastdldir}..."
rm -fR "${fastdldir:?}"
exitcode=$?
- if [ ${exitcode} -ne 0 ]; then
+ if [ "${exitcode}" != 0 ]; then
fn_print_fail_eol_nl
fn_script_log_fatal "Clearing existing FastDL directory ${fastdldir}"
core_exit.sh
@@ -86,7 +87,7 @@ fn_fastdl_dirs(){
echo -en "creating web directory ${webdir}..."
mkdir -p "${webdir}"
exitcode=$?
- if [ ${exitcode} -ne 0 ]; then
+ if [ "${exitcode}" != 0 ]; then
fn_print_fail_eol_nl
fn_script_log_fatal "Creating web directory ${webdir}"
core_exit.sh
@@ -99,7 +100,7 @@ fn_fastdl_dirs(){
echo -en "creating fastdl directory ${fastdldir}..."
mkdir -p "${fastdldir}"
exitcode=$?
- if [ ${exitcode} -ne 0 ]; then
+ if [ "${exitcode}" != 0 ]; then
fn_print_fail_eol_nl
fn_script_log_fatal "Creating fastdl directory ${fastdldir}"
core_exit.sh
@@ -235,8 +236,7 @@ fn_fastdl_preview(){
# Builds Garry's Mod fastdl directory content.
fn_fastdl_gmod(){
cd "${systemdir}" || exit
- for allowed_extention in "${allowed_extentions_array[@]}"
- do
+ for allowed_extention in "${allowed_extentions_array[@]}"; do
fileswc=0
tput sc
while read -r fastdlfile; do
@@ -245,7 +245,7 @@ fn_fastdl_gmod(){
echo -e "copying ${allowed_extention} : ${fileswc}..."
cp --parents "${fastdlfile}" "${fastdldir}"
exitcode=$?
- if [ ${exitcode} -ne 0 ]; then
+ if [ "${exitcode}" != 0 ]; then
fn_print_fail_eol_nl
fn_script_log_fatal "Copying ${fastdlfile} > ${fastdldir}"
core_exit.sh
@@ -262,7 +262,7 @@ fn_fastdl_gmod(){
echo -en "updating addons file structure..."
cp -Rf "${fastdldir}"/addons/*/* "${fastdldir}"
exitcode=$?
- if [ ${exitcode} -ne 0 ]; then
+ if [ "${exitcode}" != 0 ]; then
fn_print_fail_eol_nl
fn_script_log_fatal "Updating addons file structure"
core_exit.sh
@@ -275,7 +275,7 @@ fn_fastdl_gmod(){
fn_sleep_time
rm -fR "${fastdldir:?}/addons"
exitcode=$?
- if [ ${exitcode} -ne 0 ]; then
+ if [ "${exitcode}" != 0 ]; then
fn_print_fail_eol_nl
fn_script_log_fatal "Clearing addons dir from fastdl dir"
core_exit.sh
@@ -290,7 +290,7 @@ fn_fastdl_gmod(){
fn_sleep_time
cp -Rf "${fastdldir}/lua/"* "${fastdldir}"
exitcode=$?
- if [ ${exitcode} -ne 0 ]; then
+ if [ "${exitcode}" != 0 ]; then
fn_print_fail_eol_nl
fn_script_log_fatal "Correcting DarkRP files"
core_exit.sh
@@ -310,8 +310,7 @@ fn_fastdl_gmod(){
}
fn_fastdl_source(){
- for directory in "${fastdl_directories_array[@]}"
- do
+ for directory in "${fastdl_directories_array[@]}"; do
if [ -d "${systemdir}/${directory}" ]; then
if [ "${directory}" == "maps" ]; then
local allowed_extentions_array=( "*.bsp" "*.ain" "*.nav" "*.jpg" "*.txt" )
@@ -324,8 +323,7 @@ fn_fastdl_source(){
elif [ "${directory}" == "sound" ]; then
local allowed_extentions_array=( "*.wav" "*.mp3" "*.ogg" )
fi
- for allowed_extention in "${allowed_extentions_array[@]}"
- do
+ for allowed_extention in "${allowed_extentions_array[@]}"; do
fileswc=0
tput sc
while read -r fastdlfile; do
@@ -342,7 +340,7 @@ fn_fastdl_source(){
fi
cp "${fastdlfile}" "${fastdldir}/${copytodir}"
exitcode=$?
- if [ ${exitcode} -ne 0 ]; then
+ if [ "${exitcode}" != 0 ]; then
fn_print_fail_eol_nl
fn_script_log_fatal "Copying ${fastdlfile} > ${fastdldir}/${copytodir}"
core_exit.sh
@@ -378,7 +376,7 @@ fn_fastdl_gmod_dl_enforcer(){
echo -en "removing existing download enforcer: ${luafastdlfile}..."
rm -f "${luafastdlfullpath:?}"
exitcode=$?
- if [ ${exitcode} -ne 0 ]; then
+ if [ "${exitcode}" != 0 ]; then
fn_print_fail_eol_nl
fn_script_log_fatal "Removing existing download enforcer ${luafastdlfullpath}"
core_exit.sh
@@ -396,7 +394,7 @@ fn_fastdl_gmod_dl_enforcer(){
echo -e "resource.AddFile( \"${line}\" )" >> "${luafastdlfullpath}"
done < <(find "${fastdldir:?}" \( -type f ! -name "*.bz2" \) -printf '%P\n')
exitcode=$?
- if [ ${exitcode} -ne 0 ]; then
+ if [ "${exitcode}" != 0 ]; then
fn_print_fail_eol_nl
fn_script_log_fatal "Creating new download enforcer ${luafastdlfullpath}"
core_exit.sh
@@ -413,7 +411,7 @@ fn_fastdl_bzip2(){
echo -en "\r\033[Kcompressing ${filetocompress}..."
bzip2 -f "${filetocompress}"
exitcode=$?
- if [ ${exitcode} -ne 0 ]; then
+ if [ "${exitcode}" != 0 ]; then
fn_print_fail_eol_nl
fn_script_log_fatal "Compressing ${filetocompress}"
core_exit.sh
diff --git a/lgsm/functions/command_install.sh b/lgsm/functions/command_install.sh
old mode 100644
new mode 100755
index 9a6b64e98..3e5d27872
--- a/lgsm/functions/command_install.sh
+++ b/lgsm/functions/command_install.sh
@@ -8,6 +8,7 @@
commandname="INSTALL"
commandaction="Installing"
functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
+fn_firstcommand_set
check.sh
if [ "$(whoami)" = "root" ]; then
@@ -23,7 +24,6 @@ else
install_server_files.sh
install_ut2k4_key.sh
elif [ -z "${appid}" ]; then
- installer=1
install_server_files.sh
elif [ "${appid}" ]; then
install_steamcmd.sh
@@ -42,6 +42,7 @@ else
install_ts3db.sh
elif [ "${shortname}" == "mta" ]; then
command_install_resources_mta.sh
+ fn_firstcommand_reset
fi
fix.sh
diff --git a/lgsm/functions/command_install_resources_mta.sh b/lgsm/functions/command_install_resources_mta.sh
old mode 100644
new mode 100755
index 053982e0b..503948a3c
--- a/lgsm/functions/command_install_resources_mta.sh
+++ b/lgsm/functions/command_install_resources_mta.sh
@@ -7,6 +7,7 @@
commandname="DEFAULT-RESOURCES"
commandaction="Default Resources"
functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
+fn_firstcommand_set
fn_install_resources(){
echo -e ""
diff --git a/lgsm/functions/command_mods_install.sh b/lgsm/functions/command_mods_install.sh
old mode 100644
new mode 100755
index d3c517461..d644e0cf0
--- a/lgsm/functions/command_mods_install.sh
+++ b/lgsm/functions/command_mods_install.sh
@@ -8,6 +8,7 @@
commandname="MODS-INSTALL"
commandaction="Installing mods"
functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
+fn_firstcommand_set
check.sh
mods_core.sh
@@ -94,6 +95,18 @@ if [ -f "${modsinstalledlistfullpath}" ]; then
fi
## Installation.
+# If amxmodx check if metamod exists first
+if [ "${modcommand}" == "amxmodx" ]; then
+ fn_mod_exist "metamod"
+fi
+
+if [ "${modcommand}" == "amxmodxcs" ] ||
+ [ "${modcommand}" == "amxmodxdod" ] ||
+ [ "${modcommand}" == "amxmodxtfc" ] ||
+ [ "${modcommand}" == "amxmodxns" ] ||
+ [ "${modcommand}" == "amxmodxts" ]; then
+ fn_mod_exist "amxmodx"
+fi
fn_create_mods_dir
fn_mods_clear_tmp_dir
@@ -105,6 +118,17 @@ fn_mod_copy_destination
fn_mod_add_list
fn_mod_tidy_files_list
fn_mods_clear_tmp_dir
+
+# Create/modify existing liblist.gam file for Metamod
+if [ "${modcommand}" == "metamod" ]; then
+ fn_mod_install_liblist_gam_file
+fi
+
+# Create/modify plugins.ini file for Metamod
+if [ "${modcommand}" == "amxmodx" ]; then
+ fn_mod_install_amxmodx_file
+fi
+
echo -e "${modprettyname} installed"
fn_script_log_pass "${modprettyname} installed."
diff --git a/lgsm/functions/command_mods_remove.sh b/lgsm/functions/command_mods_remove.sh
old mode 100644
new mode 100755
index 35fd41d5f..507251e87
--- a/lgsm/functions/command_mods_remove.sh
+++ b/lgsm/functions/command_mods_remove.sh
@@ -8,6 +8,7 @@
commandname="MODS-REMOVE"
commandaction="Removing mods"
functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
+fn_firstcommand_set
check.sh
mods_core.sh
@@ -36,7 +37,7 @@ while [[ ! " ${installedmodslist[@]} " =~ " ${usermodselect} " ]]; do
read -r usermodselect
# Exit if user says exit or abort.
if [ "${usermodselect}" == "exit" ]||[ "${usermodselect}" == "abort" ]; then
- core_exit.sh
+ core_exit.sh
# Supplementary output upon invalid user input.
elif [[ ! " ${availablemodscommands[@]} " =~ " ${usermodselect} " ]]; then
fn_print_error2_nl "${usermodselect} is not a valid addon/mod."
@@ -70,7 +71,7 @@ while [ "${modfileline}" -le "${modsfilelistsize}" ]; do
if [ -f "${modinstalldir}/${currentfileremove}" ]||[ -d "${modinstalldir}/${currentfileremove}" ]; then
rm -rf "${modinstalldir:?}/${currentfileremove:?}"
((exitcode=$?))
- if [ ${exitcode} -ne 0 ]; then
+ if [ "${exitcode}" != 0 ]; then
fn_script_log_fatal "Removing ${modinstalldir}/${currentfileremove}"
break
else
@@ -81,18 +82,26 @@ while [ "${modfileline}" -le "${modsfilelistsize}" ]; do
echo -e "removing ${modprettyname} ${modfileline} / ${modsfilelistsize} : ${currentfileremove}..."
((modfileline++))
done
-if [ ${exitcode} -ne 0 ]; then
- fn_print_fail_eol_nl
- core_exit.sh
+
+# Added logic not to fail since removing game specific mods (amxmodxcs) removes files that will
+# not be found when removing the base (amxmodx) mod
+if [ "${modcommand}" != "amxmodx" ]; then
+ if [ "${exitcode}" != 0 ]; then
+ fn_print_fail_eol_nl
+ core_exit.sh
+ else
+ fn_print_ok_eol_nl
+ fi
else
fn_print_ok_eol_nl
fi
+
# Remove file list.
echo -en "removing ${modcommand}-files.txt..."
fn_sleep_time
rm -rf "${modsdir:?}/${modcommand}-files.txt"
-local exitcode=$?
-if [ ${exitcode} -ne 0 ]; then
+exitcode=$?
+if [ "${exitcode}" != 0 ]; then
fn_script_log_fatal "Removing ${modsdir}/${modcommand}-files.txt"
fn_print_fail_eol_nl
core_exit.sh
@@ -106,8 +115,8 @@ echo -en "removing ${modcommand} from ${modsinstalledlist}..."
fn_sleep_time
sed -i "/^${modcommand}$/d" "${modsinstalledlistfullpath}"
-local exitcode=$?
-if [ ${exitcode} -ne 0 ]; then
+exitcode=$?
+if [ "${exitcode}" != 0 ]; then
fn_script_log_fatal "Removing ${modcommand} from ${modsinstalledlist}"
fn_print_fail_eol_nl
core_exit.sh
@@ -123,8 +132,20 @@ if [ "${engine}" == "unity3d" ]&&[[ "${modprettyname}" == *"Oxide"* ]]; then
fn_script_log "Validating to restore original ${gamename} files replaced by Oxide"
exitbypass="1"
command_validate.sh
+ fn_firstcommand_reset
unset exitbypass
fi
+
+# Remove/modify existing liblist.gam file for Metamod
+if [ "${modcommand}" == "metamod" ]; then
+ fn_mod_remove_liblist_gam_file
+fi
+
+# Remove/modify plugins.ini file for AMX Mod X
+if [ "${modcommand}" == "amxmodx" ]; then
+ fn_mod_remove_amxmodx_file
+fi
+
echo -e "${modprettyname} removed"
fn_script_log "${modprettyname} removed"
diff --git a/lgsm/functions/command_mods_update.sh b/lgsm/functions/command_mods_update.sh
old mode 100644
new mode 100755
index 165b4ea98..9328a493d
--- a/lgsm/functions/command_mods_update.sh
+++ b/lgsm/functions/command_mods_update.sh
@@ -8,6 +8,7 @@
commandname="MODS-UPDATE"
commandaction="Updating mods"
functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
+fn_firstcommand_set
check.sh
mods_core.sh
diff --git a/lgsm/functions/command_monitor.sh b/lgsm/functions/command_monitor.sh
old mode 100644
new mode 100755
index 691fd5f7c..edc101012
--- a/lgsm/functions/command_monitor.sh
+++ b/lgsm/functions/command_monitor.sh
@@ -9,6 +9,7 @@
commandname="MONITOR"
commandaction="Monitoring"
functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
+fn_firstcommand_set
fn_monitor_check_lockfile(){
# Monitor does not run it lockfile is not found.
@@ -24,8 +25,10 @@ fn_monitor_check_lockfile(){
fi
# Fix if lockfile is not unix time or contains letters
- if [ -f "${lockdir}/${selfname}.lock" ]&&[[ "$(cat "${lockdir}/${selfname}.lock")" =~ [A-Za-z] ]]; then
- date '+%s' > "${lockdir}/${selfname}.lock"
+ if [ -f "${lockdir}/${selfname}.lock" ]&&[[ "$(head -n 1 "${lockdir}/${selfname}.lock")" =~ [A-Za-z] ]]; then
+ date '+%s' > "${lockdir}/${selfname}.lock"
+ echo "${version}" >> "${lockdir}/${selfname}.lock"
+ echo "${port}" >> "${lockdir}/${selfname}.lock"
fi
}
@@ -70,11 +73,13 @@ fn_monitor_check_queryport(){
fn_print_checking_eol
fn_script_log_info "Checking port: CHECKING"
if [ -n "${rconenabled}" ]&&[ "${rconenabled}" != "true" ]&&[ ${shortname} == "av" ]; then
- fn_print_warn "Checking port: Unable to query as rconport, rcon not enabled: "
- fn_script_log_warn "Checking port: Unable to query rconport, rcon not enabled: WARN"
+ fn_print_warn "Checking port: Unable to query, rcon is not enabled"
+ fn_print_warn_eol_nl
+ fn_script_log_warn "Checking port: Unable to query, rcon is not enabled"
else
- fn_print_error "Checking port: Unable to query queryport is not set: "
- fn_script_log_error "Checking port: Unable to query as queryport is not set: ERROR"
+ fn_print_error "Checking port: Unable to query, queryport is not set"
+ fn_script_log_error "Checking port: Unable to query, queryport is not set"
+ fn_print_error_eol_nl
fi
core_exit.sh
fi
@@ -84,12 +89,12 @@ fn_query_gsquery(){
if [ ! -f "${functionsdir}/query_gsquery.py" ]; then
fn_fetch_file_github "lgsm/functions" "query_gsquery.py" "${functionsdir}" "chmodx" "norun" "noforce" "nomd5"
fi
- "${functionsdir}"/query_gsquery.py -a "${ip}" -p "${queryport}" -e "${querytype}" > /dev/null 2>&1
+ "${functionsdir}"/query_gsquery.py -a "${queryip}" -p "${queryport}" -e "${querytype}" > /dev/null 2>&1
querystatus="$?"
}
fn_query_tcp(){
- bash -c 'exec 3<> /dev/tcp/'${ip}'/'${queryport}'' > /dev/null 2>&1
+ bash -c 'exec 3<> /dev/tcp/'${queryip}'/'${queryport}'' > /dev/null 2>&1
querystatus="$?"
}
@@ -98,87 +103,83 @@ fn_monitor_query(){
# Query will wait up to 60 seconds to confirm server is down as server can become non-responsive during map changes.
totalseconds=0
for queryattempt in {1..5}; do
- fn_print_dots "Querying port: ${querymethod}: ${ip}:${queryport} : ${totalseconds}/${queryattempt}: "
- fn_print_querying_eol
- fn_script_log_info "Querying port: ${querymethod}: ${ip}:${queryport} : ${queryattempt} : QUERYING"
- # querydelay
- if [ "$(cat "${lockdir}/${selfname}.lock")" -gt "$(date "+%s" -d "${querydelay} mins ago")" ]; then
- fn_print_ok "Querying port: ${querymethod}: ${ip}:${queryport} : ${totalseconds}/${queryattempt}: "
- fn_print_delay_eol_nl
- fn_script_log_info "Querying port: ${querymethod}: ${ip}:${queryport} : ${queryattempt} : DELAY"
- fn_script_log_info "Query bypassed: ${gameservername} started less than ${querydelay} minutes ago"
- fn_script_log_info "Server started: $(date -d @$(cat "${lockdir}/${selfname}.lock"))"
- fn_script_log_info "Current time: $(date)"
- monitorpass=1
- core_exit.sh
- # will use query method selected in fn_monitor_loop
- # gamedig
- elif [ "${querymethod}" == "gamedig" ]; then
- query_gamedig.sh
- # gsquery
- elif [ "${querymethod}" == "gsquery" ]; then
- fn_query_gsquery
- #tcp query
- elif [ "${querymethod}" == "tcp" ]; then
- fn_query_tcp
- fi
+ for queryip in "${queryips[@]}"; do
+ fn_print_dots "Querying port: ${querymethod}: ${queryip}:${queryport} : ${totalseconds}/${queryattempt}: "
+ fn_print_querying_eol
+ fn_script_log_info "Querying port: ${querymethod}: ${queryip}:${queryport} : ${queryattempt} : QUERYING"
+ # querydelay
+ if [ "$(head -n 1 "${lockdir}/${selfname}.lock")" -gt "$(date "+%s" -d "${querydelay} mins ago")" ]; then
+ fn_print_ok "Querying port: ${querymethod}: ${ip}:${queryport} : ${totalseconds}/${queryattempt}: "
+ fn_print_delay_eol_nl
+ fn_script_log_info "Querying port: ${querymethod}: ${ip}:${queryport} : ${queryattempt} : DELAY"
+ fn_script_log_info "Query bypassed: ${gameservername} started less than ${querydelay} minutes ago"
+ fn_script_log_info "Server started: $(date -d @$(head -n 1 "${lockdir}/${selfname}.lock"))"
+ fn_script_log_info "Current time: $(date)"
+ monitorpass=1
+ core_exit.sh
+ # will use query method selected in fn_monitor_loop
+ # gamedig
+ elif [ "${querymethod}" == "gamedig" ]; then
+ query_gamedig.sh
+ # gsquery
+ elif [ "${querymethod}" == "gsquery" ]; then
+ fn_query_gsquery
+ #tcp query
+ elif [ "${querymethod}" == "tcp" ]; then
+ fn_query_tcp
+ fi
- if [ "${querystatus}" == "0" ]; then
- # Server query OK.
- fn_print_ok "Querying port: ${querymethod}: ${ip}:${queryport} : ${totalseconds}/${queryattempt}: "
- fn_print_ok_eol_nl
- fn_script_log_pass "Querying port: ${querymethod}: ${ip}:${queryport} : ${queryattempt}: OK"
- monitorpass=1
if [ "${querystatus}" == "0" ]; then
- # Add query data to log.
- if [ "${gdname}" ]; then
- fn_script_log_info "Server name: ${gdname}"
- fi
- if [ "${gdplayers}" ]; then
- fn_script_log_info "Players: ${gdplayers}/${gdmaxplayers}"
- fi
- if [ "${gdbots}" ]; then
- fn_script_log_info "Bots: ${gdbots}"
- fi
- if [ "${gdmap}" ]; then
- fn_script_log_info "Map: ${gdmap}"
- fi
- if [ "${gdgamemode}" ]; then
- fn_script_log_info "Game Mode: ${gdgamemode}"
- fi
+ # Server query OK.
+ fn_print_ok "Querying port: ${querymethod}: ${queryip}:${queryport} : ${totalseconds}/${queryattempt}: "
+ fn_print_ok_eol_nl
+ fn_script_log_pass "Querying port: ${querymethod}: ${queryip}:${queryport} : ${queryattempt}: OK"
+ monitorpass=1
+ if [ "${querystatus}" == "0" ]; then
+ # Add query data to log.
+ if [ "${gdname}" ]; then
+ fn_script_log_info "Server name: ${gdname}"
+ fi
+ if [ "${gdplayers}" ]; then
+ fn_script_log_info "Players: ${gdplayers}/${gdmaxplayers}"
+ fi
+ if [ "${gdbots}" ]; then
+ fn_script_log_info "Bots: ${gdbots}"
+ fi
+ if [ "${gdmap}" ]; then
+ fn_script_log_info "Map: ${gdmap}"
+ fi
+ if [ "${gdgamemode}" ]; then
+ fn_script_log_info "Game Mode: ${gdgamemode}"
+ fi
- # send LinuxGSM stats if monitor is OK.
- if [ "${stats}" == "on" ]||[ "${stats}" == "y" ]; then
- info_stats.sh
+ # send LinuxGSM stats if monitor is OK.
+ if [ "${stats}" == "on" ]||[ "${stats}" == "y" ]; then
+ info_stats.sh
+ fi
fi
- fi
- core_exit.sh
- else
- # Server query FAIL.
- fn_print_fail "Querying port: ${querymethod}: ${ip}:${queryport} : ${totalseconds}/${queryattempt}: "
- fn_print_fail_eol
- fn_script_log_warn "Querying port: ${querymethod}: ${ip}:${queryport} : ${queryattempt}: FAIL"
- # Monitor will try gamedig (if supported) for first 30s then gsquery before restarting.
- if [ "${querymethod}" == "gsquery" ]||[ "${querymethod}" == "tcp" ]; then
+ core_exit.sh
+ else
+ # Server query FAIL.
+ fn_print_fail "Querying port: ${querymethod}: ${queryip}:${queryport} : ${totalseconds}/${queryattempt}: "
+ fn_print_fail_eol
+ fn_script_log_warn "Querying port: ${querymethod}: ${queryip}:${queryport} : ${queryattempt}: FAIL"
+ # Monitor will try gamedig (if supported) for first 30s then gsquery before restarting.
# gsquery will fail if longer than 60s
if [ "${totalseconds}" -ge "59" ]; then
# Monitor will FAIL if over 60s and trigger gane server reboot.
- fn_print_fail "Querying port: ${querymethod}: ${ip}:${queryport} : ${totalseconds}/${queryattempt}: "
+ fn_print_fail "Querying port: ${querymethod}: ${queryip}:${queryport} : ${totalseconds}/${queryattempt}: "
fn_print_fail_eol_nl
- fn_script_log_warn "Querying port: ${querymethod}: ${ip}:${queryport} : ${queryattempt}: FAIL"
+ fn_script_log_warn "Querying port: ${querymethod}: ${queryip}:${queryport} : ${queryattempt}: FAIL"
# Send alert if enabled.
alert="restartquery"
alert.sh
command_restart.sh
+ fn_firstcommand_reset
core_exit.sh
fi
- elif [ "${querymethod}" == "gamedig" ]; then
- # gamedig will fail and try gsquery if longer than 30s
- if [ "${totalseconds}" -ge "29" ]; then
- break
- fi
fi
-
+ done
# Second counter will wait for 15s before breaking loop.
for seconds in {1..15}; do
fn_print_fail "Querying port: ${querymethod}: ${ip}:${queryport} : ${totalseconds}/${queryattempt}: ${cyan}WAIT${default}"
@@ -188,7 +189,6 @@ for queryattempt in {1..5}; do
break
fi
done
- fi
done
}
@@ -204,8 +204,7 @@ fn_monitor_loop(){
elif [ "${querymode}" == "5" ]; then
local query_methods_array=( tcp )
fi
- for querymethod in "${query_methods_array[@]}"
- do
+ for querymethod in "${query_methods_array[@]}"; do
# Will check if gamedig is installed and bypass if not.
if [ "${querymethod}" == "gamedig" ]; then
if [ "$(command -v gamedig 2>/dev/null)" ]&&[ "$(command -v jq 2>/dev/null)" ]; then
diff --git a/lgsm/functions/command_postdetails.sh b/lgsm/functions/command_postdetails.sh
old mode 100644
new mode 100755
index a0afa2905..0f18b12a9
--- a/lgsm/functions/command_postdetails.sh
+++ b/lgsm/functions/command_postdetails.sh
@@ -8,31 +8,9 @@
commandname="POST-DETAILS"
commandaction="Posting details"
functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
+fn_firstcommand_set
-# Set posttarget to the appropriately-defined post destination.
-
-# The options for posttarget are:
-# The default destination - hastebin
-# posttarget="https://hastebin.com"
-#
-# Secondary destination - pastebin
-# posttarget="http://pastebin.com
-#
-# Third option - leave on the filesystem
-# posttarget=
-#
-# All of these options can be specified/overridden from the top-level
-# invocation, as in:
-# rustserver@gamerig:~$ posttarget="http://pastebin.com" ./rustserver pd
-# to post to pastebin, or
-# rustserver@gamerig:~$ posttarget= ./rustserver pd
-# to leave the output on the filesystem.
-posttarget=${posttarget="https://termbin.com"}
-
-# For pastebin, you can set the expiration period.
-# use 1 week as the default, other options are '24h' for a day, etc.
-# This, too, may be overridden from the command line at the top-level.
-postexpire="${postexpire="30D"}"
+posttarget="https://termbin.com"
# source all of the functions defined in the details command.
info_messages.sh
@@ -57,7 +35,13 @@ else
info_parms.sh
info_distro.sh
info_messages.sh
- query_gamedig.sh
+ for queryip in "${queryips[@]}"
+ do
+ query_gamedig.sh
+ if [ "${querystatus}" == "0" ]; then
+ break
+ fi
+ done
touch "${postdetailslog}" || fn_bad_postdetailslog
{
fn_info_message_distro
@@ -76,50 +60,21 @@ else
fn_info_message_statusbottom
} | sed -r "s/\x1B\[([0-9]{1,2}(;[0-9]{1,2})?)?[m|K]//g" | tee -a "${postdetailslog}" > /dev/null 2>&1
fi
-# Pastebin
-if [ "${posttarget}" == "http://pastebin.com" ] ; then
- fn_print_dots "pastbin.com for ${postexpire}"
- # grab the return from 'value' from an initial visit to pastebin.
- csrftoken=$(curl -s "${posttarget}" | sed -n 's/^.*input type="hidden" name="csrf_token_post" value="\(.*\)".*$/\1/p')
- #
- # Use the csrftoken to then post the content.
- #
- link=$(curl -s "${posttarget}/post.php" -D - -F "submit_hidden=submit_hidden" \
- -F "post_key=${csrftoken}" -F "paste_expire_date=${postexpire}" \
- -F "paste_name=${gamename} Debug Info" \
- -F "paste_format=8" -F "paste_private=0" \
- -F "paste_type=bash" -F "paste_code=<${postdetailslog}" |
- awk '/^location: / { print $2 }' | sed "s/\n//g")
- # Output the resulting link.
- fn_print_ok_nl "pastbin.com for ${postexpire}"
- fn_script_log_pass "pastbin.com for ${postexpire}"
- pdurl="${posttarget}${link}"
-# Hastebin
-elif [ "${posttarget}" == "https://hastebin.com" ] ; then
- fn_print_dots "hastebin.com"
- # hastebin is a bit simpler. If successful, the returned result
- # should look like: {"something":"key"}, putting the reference that
- # we need in "key". TODO - error handling. -CedarLUG
- link=$(curl -H "HTTP_X_REQUESTED_WITH:XMLHttpRequest" -s -d "$(<${postdetailslog})" "${posttarget}/documents" | cut -d\" -f4)
- fn_print_ok_nl "hastebin.com for ${postexpire}"
- fn_script_log_pass "hastebin.com for ${postexpire}"
- pdurl="${posttarget}/${link}"
-# Termbin
-elif [ "${posttarget}" == "https://termbin.com" ] ; then
- fn_print_dots "termbin.com"
- link=$(cat "${postdetailslog}" | nc termbin.com 9999 | tr -d '\n\0')
- fn_print_ok_nl "termbin.com for 30D"
- fn_script_log_pass "termbin.com for 30D"
- pdurl="${link}"
+fn_print_dots "termbin.com"
+link=$(cat "${postdetailslog}" | nc termbin.com 9999 | tr -d '\n\0')
+fn_print_ok_nl "termbin.com for 30D"
+fn_script_log_pass "termbin.com for 30D"
+pdurl="${link}"
+
+if [ "${firstcommandname}" == "POST-DETAILS" ]; then
+ echo -e ""
+ echo -e "Please share the following url for support: "
+ echo -e "${pdurl}"
fi
-echo -e ""
-echo -e "Please share the following url for support: "
-echo -e "${pdurl}"
fn_script_log_info "${pdurl}"
+alerturl="${pdurl}"
if [ -z "${exitbypass}" ]; then
core_exit.sh
-else
- alerturl="${pdurl}"
fi
diff --git a/lgsm/functions/command_restart.sh b/lgsm/functions/command_restart.sh
old mode 100644
new mode 100755
index 8a08c04ff..9498c618c
--- a/lgsm/functions/command_restart.sh
+++ b/lgsm/functions/command_restart.sh
@@ -7,10 +7,11 @@
commandname="MODS-INSTALL"
commandaction="Restarting"
functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
+fn_firstcommand_set
info_config.sh
exitbypass=1
command_stop.sh
command_start.sh
-
+fn_firstcommand_reset
core_exit.sh
diff --git a/lgsm/functions/command_skeleton.sh b/lgsm/functions/command_skeleton.sh
new file mode 100644
index 000000000..cb1136915
--- /dev/null
+++ b/lgsm/functions/command_skeleton.sh
@@ -0,0 +1,21 @@
+#!/bin/bash
+# LinuxGSM command_skeleton.sh function
+# Author: Daniel Gibbs
+# Website: https://linuxgsm.com
+# Description: Creates an copy of a game servers directorys.
+
+
+fn_print_dots "Creating skeleton directory"
+check.sh
+
+# Find all directorys and create them in the skel directory
+find "${rootdir}" -type d -not \( -path ./skel -prune \) | cpio -pdvm skel 2>/dev/null
+exitcode=$?
+if [ "${exitcode}" != 0 ]; then
+ fn_print_fail_nl "Creating skeleton directory"
+ fn_script_log_fatal "Creating skeleton directory"
+else
+ fn_print_ok_nl "Creating skeleton directory: ./skel"
+ fn_script_log_pass "Creating skeleton directory: ./skel"
+fi
+core_exit.sh
diff --git a/lgsm/functions/command_start.sh b/lgsm/functions/command_start.sh
old mode 100644
new mode 100755
index d0487e5d4..f349ec6a1
--- a/lgsm/functions/command_start.sh
+++ b/lgsm/functions/command_start.sh
@@ -8,6 +8,7 @@
commandname="START"
commandaction="Starting"
functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
+fn_firstcommand_set
fn_start_teamspeak3(){
if [ ! -f "${servercfgfullpath}" ]; then
@@ -31,6 +32,13 @@ fn_start_teamspeak3(){
fn_start_tmux
}
+# This will allow the Jedi Knight 2 version to be printed in console on start.
+# Used to allow update to detect JK2MV server version.
+fn_start_jk2(){
+ fn_start_tmux
+ tmux send -t "${sessionname}" version ENTER > /dev/null 2>&1
+}
+
fn_start_tmux(){
if [ "${parmsbypass}" ]; then
parms=""
@@ -63,8 +71,10 @@ fn_start_tmux(){
# Create lockfile
date '+%s' > "${lockdir}/${selfname}.lock"
+ echo "${version}" >> "${lockdir}/${selfname}.lock"
+ echo "${port}" >> "${lockdir}/${selfname}.lock"
cd "${executabledir}" || exit
- tmux new-session -d -x "${sessionwidth}" -y "${sessionheight}" -s "${sessionname}" "${executable} ${parms}" 2> "${lgsmlogdir}/.${selfname}-tmux-error.tmp"
+ tmux new-session -d -x "${sessionwidth}" -y "${sessionheight}" -s "${sessionname}" "${preexecutable} ${executable} ${parms}" 2> "${lgsmlogdir}/.${selfname}-tmux-error.tmp"
# Create logfile.
touch "${consolelog}"
@@ -122,7 +132,7 @@ fn_start_tmux(){
echo -e ""
echo -e "Command"
echo -e "================================="
- echo -e "tmux new-session -d -s \"${sessionname}\" \"${executable} ${parms}\"" | tee -a "${lgsmlog}"
+ echo -e "tmux new-session -d -s \"${sessionname}\" \"${preexecutable} ${executable} ${parms}\"" | tee -a "${lgsmlog}"
echo -e ""
echo -e "Error"
echo -e "================================="
@@ -188,14 +198,15 @@ if [ "${updateonstart}" == "yes" ]||[ "${updateonstart}" == "1" ]||[ "${updateon
exitbypass=1
unset updateonstart
command_update.sh
- commandname="START"
- commandaction="Starting"
+ fn_firstcommand_reset
fi
fn_print_dots "${servername}"
if [ "${shortname}" == "ts3" ]; then
fn_start_teamspeak3
+elif [ "${shortname}" == "jk2" ]; then
+ fn_start_jk2
else
fn_start_tmux
fi
diff --git a/lgsm/functions/command_stop.sh b/lgsm/functions/command_stop.sh
index 6ea4f4d7a..6fe06e4ef 100644
--- a/lgsm/functions/command_stop.sh
+++ b/lgsm/functions/command_stop.sh
@@ -8,6 +8,7 @@
commandname="STOP"
commandaction="Stopping"
functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
+fn_firstcommand_set
# Attempts graceful shutdown by sending 'CTRL+c'.
fn_stop_graceful_ctrlc(){
@@ -42,7 +43,7 @@ fn_stop_graceful_cmd(){
fn_print_dots "Graceful: sending \"${1}\""
fn_script_log_info "Graceful: sending \"${1}\""
# Sends specific stop command.
- tmux send -t "${sessionname}" "${1}" ENTER > /dev/null 2>&1
+ tmux send -t "${sessionname}" ENTER "${1}" ENTER > /dev/null 2>&1
# Waits up to ${seconds} seconds giving the server time to shutdown gracefully.
for ((seconds=1; seconds<=${2}; seconds++)); do
check_status.sh
@@ -228,6 +229,8 @@ fn_stop_graceful_select(){
fn_stop_graceful_goldsrc
elif [ "${stopmode}" == "10" ]; then
fn_stop_graceful_avorion
+ elif [ "${stopmode}" == "11" ]; then
+ fn_stop_graceful_cmd "end" 30
fi
}
diff --git a/lgsm/functions/command_test_alert.sh b/lgsm/functions/command_test_alert.sh
old mode 100644
new mode 100755
index 5d1c11885..625d5c6c2
--- a/lgsm/functions/command_test_alert.sh
+++ b/lgsm/functions/command_test_alert.sh
@@ -7,6 +7,7 @@
commandname="TEST-ALERT"
commandaction="Sending Alert"
functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
+fn_firstcommand_set
fn_print_dots "${servername}"
check.sh
diff --git a/lgsm/functions/command_ts3_server_pass.sh b/lgsm/functions/command_ts3_server_pass.sh
old mode 100644
new mode 100755
index 8ff799e6e..ff75b71d2
--- a/lgsm/functions/command_ts3_server_pass.sh
+++ b/lgsm/functions/command_ts3_server_pass.sh
@@ -8,6 +8,7 @@
commandname="CHANGE-PASSWORD"
commandaction="Changing password"
functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
+fn_firstcommand_set
fn_serveradmin_password_prompt(){
fn_print_header
@@ -15,7 +16,8 @@ fn_serveradmin_password_prompt(){
fn_print_warning_nl "${gamename} will restart during this process."
echo -e ""
if ! fn_prompt_yn "Continue?" Y; then
- echo Exiting; exit
+ exitcode=0
+ core_exit.sh
fi
fn_script_log_info "Initiating ${gamename} ServerAdmin password change"
read -rp "Enter new password: " newpassword
@@ -28,6 +30,7 @@ fn_serveradmin_password_set(){
ts3serverpass="1"
exitbypass="1"
command_start.sh
+ fn_firstcommand_reset
fn_print_ok_nl "New password applied"
fn_script_log_pass "New ServerAdmin password applied"
}
@@ -39,13 +42,16 @@ if [ "${status}" != "0" ]; then
# Stop any running server.
exitbypass="1"
command_stop.sh
+ fn_firstcommand_reset
fn_serveradmin_password_set
parms="serveradmin_password=\"${newpassword}\" inifile=\"${servercfgfullpath}\" > /dev/null 2>&1"
ts3serverpass="0"
command_restart.sh
+ fn_firstcommand_reset
else
fn_serveradmin_password_set
command_stop.sh
+ fn_firstcommand_reset
fi
core_exit.sh
diff --git a/lgsm/functions/command_update.sh b/lgsm/functions/command_update.sh
old mode 100644
new mode 100755
index 88109a147..718f5d490
--- a/lgsm/functions/command_update.sh
+++ b/lgsm/functions/command_update.sh
@@ -7,6 +7,7 @@
commandname="UPDATE"
commandaction="Updating"
functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
+fn_firstcommand_set
fn_print_dots ""
check.sh
@@ -25,6 +26,10 @@ elif [ "${shortname}" == "fctr" ]; then
update_factorio.sh
elif [ "${shortname}" == "mta" ]; then
update_mta.sh
+elif [ "${shortname}" == "jk2" ]; then
+ update_jediknight2.sh
+elif [ "${shortname}" == "vints" ]; then
+ update_vintagestory.sh
else
update_steamcmd.sh
fi
diff --git a/lgsm/functions/command_update_functions.sh b/lgsm/functions/command_update_functions.sh
deleted file mode 100644
index e69de29bb..000000000
diff --git a/lgsm/functions/command_update_linuxgsm.sh b/lgsm/functions/command_update_linuxgsm.sh
old mode 100644
new mode 100755
index c32bf321f..7e0ec57b6
--- a/lgsm/functions/command_update_linuxgsm.sh
+++ b/lgsm/functions/command_update_linuxgsm.sh
@@ -7,6 +7,7 @@
commandname="UPDATE-LGSM"
commandaction="Updating LinuxGSM"
functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
+fn_firstcommand_set
check.sh
@@ -16,9 +17,9 @@ fn_script_log_info "Updating LinuxGSM"
fn_print_dots "Selecting repo"
fn_script_log_info "Selecting repo"
# Select remotereponame
-curl -IsfL "https://raw.githubusercontent.com/${githubuser}/${githubrepo}/${githubbranch}/linuxgsm.sh" 1>/dev/null
+curl --connect-timeout 10 -IsfL "https://raw.githubusercontent.com/${githubuser}/${githubrepo}/${githubbranch}/linuxgsm.sh" 1>/dev/null
if [ $? != "0" ]; then
- curl -IsfL "https://bitbucket.org/${githubuser}/${githubrepo}/raw/${githubbranch}/linuxgsm.sh" 1>/dev/null
+ curl --connect-timeout 10 -IsfL "https://bitbucket.org/${githubuser}/${githubrepo}/raw/${githubbranch}/linuxgsm.sh" 1>/dev/null
if [ $? != "0" ]; then
fn_print_fail_nl "Selecting repo: Unable to to access GitHub or Bitbucket repositories"
fn_script_log_fatal "Selecting repo: Unable to to access GitHub or Bitbucket repositories"
@@ -35,9 +36,9 @@ fi
# Check linuxsm.sh
echo -en "checking ${remotereponame} linuxgsm.sh...\c"
if [ "${remotereponame}" == "GitHub" ]; then
- curl -IsfL "https://raw.githubusercontent.com/${githubuser}/${githubrepo}/${githubbranch}/linuxgsm.sh" 1>/dev/null
+ curl --connect-timeout 10 -IsfL "https://raw.githubusercontent.com/${githubuser}/${githubrepo}/${githubbranch}/linuxgsm.sh" 1>/dev/null
else
- curl -IsfL "https://bitbucket.org/${githubuser}/${githubrepo}/raw/${githubbranch}/linuxgsm.sh" 1>/dev/null
+ curl --connect-timeout 10 -IsfL "https://bitbucket.org/${githubuser}/${githubrepo}/raw/${githubbranch}/linuxgsm.sh" 1>/dev/null
fi
if [ $? != "0" ]; then
fn_print_fail_eol_nl
@@ -47,9 +48,9 @@ if [ $? != "0" ]; then
fi
if [ "${remotereponame}" == "GitHub" ]; then
- tmp_script_diff=$(diff "${tmpdir}/linuxgsm.sh" <(curl -s "https://raw.githubusercontent.com/${githubuser}/${githubrepo}/${githubbranch}/linuxgsm.sh"))
+ tmp_script_diff=$(diff "${tmpdir}/linuxgsm.sh" <(curl --connect-timeout 10 -s "https://raw.githubusercontent.com/${githubuser}/${githubrepo}/${githubbranch}/linuxgsm.sh"))
else
- tmp_script_diff=$(diff "${tmpdir}/linuxgsm.sh" <(curl -s "https://bitbucket.org/${githubuser}/${githubrepo}/raw/${githubbranch}/linuxgsm.sh"))
+ tmp_script_diff=$(diff "${tmpdir}/linuxgsm.sh" <(curl --connect-timeout 10 -s "https://bitbucket.org/${githubuser}/${githubrepo}/raw/${githubbranch}/linuxgsm.sh"))
fi
if [ "${tmp_script_diff}" != "" ]; then
@@ -77,7 +78,7 @@ if [ "${script_diff}" != "" ]; then
mkdir -p "${backupdir}/script"
fi
cp "${rootdir}/${selfname}" "${backupdir}/script/${selfname}-$(date +"%m_%d_%Y_%M").bak"
- if [ $? -ne 0 ]; then
+ if [ $? != 0 ]; then
fn_print_fail_eol_nl
fn_script_log_fatal "Backup ${selfname}"
core_exit.sh
@@ -115,9 +116,9 @@ fi
echo -en "checking ${remotereponame} config _default.cfg...\c"
fn_script_log_info "Checking ${remotereponame} config _default.cfg"
if [ "${remotereponame}" == "GitHub" ]; then
- curl -IsfL "https://raw.githubusercontent.com/${githubuser}/${githubrepo}/${githubbranch}/lgsm/config-default/config-lgsm/${gameservername}/_default.cfg" 1>/dev/null
+ curl --connect-timeout 10 -IsfL "https://raw.githubusercontent.com/${githubuser}/${githubrepo}/${githubbranch}/lgsm/config-default/config-lgsm/${gameservername}/_default.cfg" 1>/dev/null
else
- curl -IsfL "https://bitbucket.org/${githubuser}/${githubrepo}/raw/${githubbranch}/lgsm/config-default/config-lgsm/${gameservername}/_default.cfg" 1>/dev/null
+ curl --connect-timeout 10 -IsfL "https://bitbucket.org/${githubuser}/${githubrepo}/raw/${githubbranch}/lgsm/config-default/config-lgsm/${gameservername}/_default.cfg" 1>/dev/null
fi
if [ $? != "0" ]; then
fn_print_fail_eol_nl
@@ -127,9 +128,9 @@ if [ $? != "0" ]; then
fi
if [ "${remotereponame}" == "GitHub" ]; then
- config_file_diff=$(diff "${configdirdefault}/config-lgsm/${gameservername}/_default.cfg" <(curl -s "https://raw.githubusercontent.com/${githubuser}/${githubrepo}/${githubbranch}/lgsm/config-default/config-lgsm/${gameservername}/_default.cfg"))
+ config_file_diff=$(diff "${configdirdefault}/config-lgsm/${gameservername}/_default.cfg" <(curl --connect-timeout 10 -s "https://raw.githubusercontent.com/${githubuser}/${githubrepo}/${githubbranch}/lgsm/config-default/config-lgsm/${gameservername}/_default.cfg"))
else
- config_file_diff=$(diff "${configdirdefault}/config-lgsm/${gameservername}/_default.cfg" <(curl -s "https://bitbucket.org/${githubuser}/${githubrepo}/raw/${githubbranch}/lgsm/config-default/config-lgsm/${gameservername}/_default.cfg"))
+ config_file_diff=$(diff "${configdirdefault}/config-lgsm/${gameservername}/_default.cfg" <(curl --connect-timeout 10 -s "https://bitbucket.org/${githubuser}/${githubrepo}/raw/${githubbranch}/lgsm/config-default/config-lgsm/${gameservername}/_default.cfg"))
fi
if [ "${config_file_diff}" != "" ]; then
@@ -148,18 +149,17 @@ fi
if [ -n "${functionsdir}" ]; then
if [ -d "${functionsdir}" ]; then
cd "${functionsdir}" || exit
- for functionfile in *
- do
+ for functionfile in *; do
# check if module exists in the repo and remove if missing.
# commonly used if module names change.
echo -en "checking ${remotereponame} module ${functionfile}...\c"
github_file_url_dir="lgsm/functions"
if [ "${remotereponame}" == "GitHub" ]; then
- curl -IsfL "https://raw.githubusercontent.com/${githubuser}/${githubrepo}/${githubbranch}/${github_file_url_dir}/${functionfile}" 1>/dev/null
+ curl --connect-timeout 10 -IsfL "https://raw.githubusercontent.com/${githubuser}/${githubrepo}/${githubbranch}/${github_file_url_dir}/${functionfile}" 1>/dev/null
else
- curl -IsfL "https://bitbucket.org/${githubuser}/${githubrepo}/raw/${githubbranch}/${github_file_url_dir}/${functionfile}" 1>/dev/null
+ curl --connect-timeout 10 -IsfL "https://bitbucket.org/${githubuser}/${githubrepo}/raw/${githubbranch}/${github_file_url_dir}/${functionfile}" 1>/dev/null
fi
- if [ $? -ne 0 ]; then
+ if [ $? != 0 ]; then
fn_print_error_eol_nl
fn_script_log_error "Checking ${remotereponame} module ${functionfile}"
echo -en "removing module ${functionfile}...\c"
@@ -174,9 +174,9 @@ if [ -n "${functionsdir}" ]; then
else
# compare file
if [ "${remotereponame}" == "GitHub" ]; then
- function_file_diff=$(diff "${functionsdir}/${functionfile}" <(curl -s "https://raw.githubusercontent.com/${githubuser}/${githubrepo}/${githubbranch}/${github_file_url_dir}/${functionfile}"))
+ function_file_diff=$(diff "${functionsdir}/${functionfile}" <(curl --connect-timeout 10 -s "https://raw.githubusercontent.com/${githubuser}/${githubrepo}/${githubbranch}/${github_file_url_dir}/${functionfile}"))
else
- function_file_diff=$(diff "${functionsdir}/${functionfile}" <(curl -s "https://bitbucket.org/${githubuser}/${githubrepo}/raw/${githubbranch}/${github_file_url_dir}/${functionfile}"))
+ function_file_diff=$(diff "${functionsdir}/${functionfile}" <(curl --connect-timeout 10 -s "https://bitbucket.org/${githubuser}/${githubrepo}/raw/${githubbranch}/${github_file_url_dir}/${functionfile}"))
fi
# results
diff --git a/lgsm/functions/command_validate.sh b/lgsm/functions/command_validate.sh
old mode 100644
new mode 100755
index 276458e48..690a86b43
--- a/lgsm/functions/command_validate.sh
+++ b/lgsm/functions/command_validate.sh
@@ -7,85 +7,40 @@
commandname="VALIDATE"
commandaction="Validating"
functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
+fn_firstcommand_set
fn_validate(){
- fn_script_log_warn "Validating server: SteamCMD: Validate might overwrite some customised files"
+ fn_print_warn "Validate might overwrite some customised files"
+ fn_script_log_warn "${commandaction} server: Validate might overwrite some customised files"
totalseconds=3
for seconds in {3..1}; do
- fn_print_warn "Validating server: SteamCMD: Validate might overwrite some customised files: ${totalseconds}"
+ fn_print_warn "Validate might overwrite some customised files: ${totalseconds}"
totalseconds=$((totalseconds - 1))
sleep 1
if [ "${seconds}" == "0" ]; then
break
fi
done
- fn_print_warn_nl "Validating server: SteamCMD: Validate might overwrite some customised files"
- fn_print_start_nl "Validating server: SteamCMD"
- fn_script_log_info "Validating server: SteamCMD"
- if [ -d "${steamcmddir}" ]; then
- cd "${steamcmddir}" || exit
- fi
- # Detects if unbuffer command is available, for 32 bit distributions only.
- info_distro.sh
- if [ "$(command -v stdbuf)" ]&&[ "${arch}" != "x86_64" ]; then
- unbuffer="stdbuf -i0 -o0 -e0"
- fi
+ fn_print_warn_nl "Validate might overwrite some customised files"
- # If GoldSrc (appid 90) servers. GoldSrc (appid 90) require extra commands.
- if [ "${appid}" == "90" ]; then
- # If using a specific branch.
- if [ -n "${branch}" ]; then
- ${unbuffer} ${steamcmdcommand} +login "${steamuser}" "${steampass}" +force_install_dir "${serverfiles}" +app_info_print 70 +app_set_config 90 mod "${appidmod}" +app_update "${appid}" "${branch}" +app_update "${appid}" -beta "${branch}" validate +quit | tee -a "${lgsmlog}"
- else
- ${unbuffer} ${steamcmdcommand} +login "${steamuser}" "${steampass}" +force_install_dir "${serverfiles}" +app_info_print 70 +app_set_config 90 mod "${appidmod}" +app_update "${appid}" "${branch}" +app_update "${appid}" validate +quit | tee -a "${lgsmlog}"
- fi
- elif [ "${shortname}" == "ac" ]; then
- ${unbuffer} ${steamcmdcommand} +@sSteamCmdForcePlatformType windows +login "${steamuser}" "${steampass}" +force_install_dir "${serverfiles}" +app_update "${appid}" validate +quit
- local exitcode=$?
- # All other servers.
- elif [ -n "${branch}" ]; then
- ${unbuffer} ${steamcmdcommand} +login "${steamuser}" "${steampass}" +force_install_dir "${serverfiles}" +app_update "${appid}" -beta "${branch}" validate +quit | tee -a "${lgsmlog}"
- else
- ${unbuffer} ${steamcmdcommand} +login "${steamuser}" "${steampass}" +force_install_dir "${serverfiles}" +app_update "${appid}" validate +quit | tee -a "${lgsmlog}"
- fi
-
- exitcode=$?
- fn_print_dots "Validating server: SteamCMD"
- if [ "${exitcode}" != "0" ]; then
- fn_print_fail_nl "Validating server: SteamCMD"
- fn_script_log_fatal "Validating server: SteamCMD: FAIL"
- else
- fn_print_ok_nl "Validating server: SteamCMD"
- fn_script_log_pass "Validating server: SteamCMD: OK"
- fi
- core_exit.sh
-}
-
-fn_stop_warning(){
- fn_print_warn "Validating server: SteamCMD: ${selfname} will be stopped during validation"
- fn_script_log_warn "Validating server: SteamCMD: ${selfname} will be stopped during validation"
- totalseconds=3
- for seconds in {3..1}; do
- fn_print_warn "Validating server: SteamCMD: ${selfname} will be stopped during validation: ${totalseconds}"
- totalseconds=$((totalseconds - 1))
- sleep 1
- if [ "${seconds}" == "0" ]; then
- break
- fi
- done
- fn_print_warn_nl "Validating server: SteamCMD: ${selfname} will be stopped during validation"
+ fn_dl_steamcmd
}
-fn_print_dots "Validating server"
-fn_print_dots "Validating server: SteamCMD"
+# The location where the builds are checked and downloaded.
+remotelocation="SteamCMD"
check.sh
+
+fn_print_dots "${remotelocation}"
+
if [ "${status}" != "0" ]; then
- fn_stop_warning
+ fn_print_restart_warning
exitbypass=1
command_stop.sh
+ fn_firstcommand_reset
fn_validate
exitbypass=1
command_start.sh
+ fn_firstcommand_reset
else
fn_validate
fi
diff --git a/lgsm/functions/command_wipe.sh b/lgsm/functions/command_wipe.sh
old mode 100644
new mode 100755
index 5b5abf552..9fc099fbe
--- a/lgsm/functions/command_wipe.sh
+++ b/lgsm/functions/command_wipe.sh
@@ -8,31 +8,12 @@
commandname="WIPE"
commandaction="Wiping"
functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
-
-check.sh
-fn_print_header
-fn_script_log "Entering ${gamename} ${commandaction}"
-
-# Process to server wipe.
-fn_wipe_server_process(){
- check_status.sh
- if [ "${status}" != "0" ]; then
- exitbypass=1
- command_stop.sh
- fn_wipe_server_remove_files
- exitbypass=1
- command_start.sh
- else
- fn_wipe_server_remove_files
- fi
- echo -e "server data wiped"
- fn_script_log "server data wiped."
-}
+fn_firstcommand_set
# Provides an exit code upon error.
fn_wipe_exit_code(){
((exitcode=$?))
- if [ ${exitcode} -ne 0 ]; then
+ if [ "${exitcode}" != 0 ]; then
fn_script_log_fatal "${currentaction}"
core_exit.sh
else
@@ -41,166 +22,211 @@ fn_wipe_exit_code(){
}
# Removes files to wipe server.
-fn_wipe_server_remove_files(){
- # Rust Wipe.
- if [ "${shortname}" == "rust" ]; then
- # Wipe pocedural map.
- if [ "$(find "${serveridentitydir}" -type f -name "proceduralmap.*.map")" ]; then
- currentaction="Removing map file(s): ${serveridentitydir}/proceduralmap.*.map"
- echo -en "Removing procedural map proceduralmap.*.map file(s)..."
- fn_sleep_time
- fn_script_log "${currentaction}"
- find "${serveridentitydir:?}" -type f -name "proceduralmap.*.map" -delete
- fn_wipe_exit_code
- fn_sleep_time
- else
- fn_print_information_nl "No procedural map file to remove"
- fn_script_log_info "No procedural map file to remove."
- fi
- # Wipe procedural map save.
- if [ "$(find "${serveridentitydir}" -type f -name "proceduralmap.*.sav")" ]; then
- currentaction="Removing procedural map save(s): ${serveridentitydir}/proceduralmap.*.sav"
- echo -en "Removing map saves proceduralmap.*.sav file(s)..."
- fn_sleep_time
- fn_script_log "${currentaction}"
- find "${serveridentitydir:?}" -type f -name "proceduralmap.*.sav" -delete
- fn_wipe_exit_code
- fn_sleep_time
- else
- fn_print_information_nl "No procedural map save to remove"
- fn_script_log_info "No procedural map save to remove."
- fi
- # Wipe Barren map.
- if [ "$(find "${serveridentitydir}" -type f -name "barren*.map")" ]; then
- currentaction="Removing map file(s): ${serveridentitydir}/barren*.map"
- echo -en "Removing barren map barren*.map file(s)..."
- fn_sleep_time
- fn_script_log "${currentaction}"
- find "${serveridentitydir:?}" -type f -name "barren*.map" -delete
- fn_wipe_exit_code
- fn_sleep_time
- else
- fn_print_information_nl "No barren map file to remove"
- fn_script_log_info "No barren map file to remove."
- fi
- # Wipe barren map save.
- if [ "$(find "${serveridentitydir}" -type f -name "barren*.sav")" ]; then
- currentaction="Removing barren map save(s): ${serveridentitydir}/barren*.sav"
- echo -en "Removing barren map saves barren*.sav file(s)..."
- fn_sleep_time
- fn_script_log "${currentaction}"
- find "${serveridentitydir:?}" -type f -name "barren*.sav" -delete
- fn_wipe_exit_code
- fn_sleep_time
- else
- fn_print_information_nl "No barren map save to remove"
- fn_script_log_info "No barren map save to remove."
- fi
- # Wipe user dir, might be a legacy thing, maybe to be removed.
- if [ -d "${serveridentitydir}/user" ]; then
- currentaction="Removing user directory: ${serveridentitydir}/user"
- echo -en "Removing user directory..."
- fn_sleep_time
- fn_script_log "${currentaction}"
- rm -rf "${serveridentitydir:?}/user"
- fn_wipe_exit_code
- fn_sleep_time
+fn_wipe_server_files(){
+ fn_print_start_nl "Wiping server"
+ fn_script_log_info "Wiping server"
+ # Wipe procedural map.
+ if [ -n "$(find "${serveridentitydir}" -type f -name "proceduralmap.*.map")" ]; then
+ echo -en "removing procedural map proceduralmap.*.map file(s)..."
+ fn_sleep_time
+ fn_script_log_info "Removing procedural map file(s): ${serveridentitydir}/proceduralmap.*.map"
+ find "${serveridentitydir:?}" -type f -name "proceduralmap.*.map" -delete | tee -a "${lgsmlog}"
+ fn_wipe_exit_code
+ fn_sleep_time
+ else
+ echo -e "no procedural map file to remove"
+ fn_sleep_time
+ fn_script_log_pass "No procedural map file to remove"
+ fi
+ # Wipe Barren map.
+ if [ -n "$(find "${serveridentitydir}" -type f -name "barren*.map")" ]; then
+ echo -en "removing barren map barren*.map file(s)..."
+ fn_sleep_time
+ fn_script_log_info "Removing map file(s): ${serveridentitydir}/barren*.map"
+ find "${serveridentitydir:?}" -type f -name "barren*.map" -delete | tee -a "${lgsmlog}"
+ fn_wipe_exit_code
+ fn_sleep_time
+ else
+ echo -e "no barren map file to remove"
+ fn_sleep_time
+ fn_script_log_pass "No barren map file to remove"
+ fi
+ # Wipe custom map.
+ if [ -n "$(find "${serveridentitydir}" -type f -name "*.map")" ]; then
+ echo -en "removing custom map file(s)..."
+ fn_sleep_time
+ fn_script_log_info "Removing map file(s): ${serveridentitydir}/*.map"
+ find "${serveridentitydir:?}" -type f -name "*.map" -delete | tee -a "${lgsmlog}"
+ fn_wipe_exit_code
+ fn_sleep_time
+ else
+ echo -e "no map file to remove"
+ fn_sleep_time
+ fn_script_log_pass "No map file to remove"
+ fi
+ # Wipe custom map save.
+ if [ -n "$(find "${serveridentitydir}" -type f -name "*.sav*")" ]; then
+ echo -en "removing map save *.sav* file(s)..."
+ fn_sleep_time
+ fn_script_log_info "Removing map save(s): ${serveridentitydir}/*.sav*"
+ find "${serveridentitydir:?}" -type f -name "*.sav*" -delete | tee -a "${lgsmlog}"
+ fn_wipe_exit_code
+ fn_sleep_time
+ else
+ echo -e "no map save to remove"
+ fn_sleep_time
+ fn_script_log_pass "No map save to remove."
+ fi
+ # Wipe user dir, might be a legacy thing, maybe to be removed.
+ if [ -d "${serveridentitydir}/user" ]; then
+ echo -en "removing user directory..."
+ fn_sleep_time
+ fn_script_log_info "removing user directory: ${serveridentitydir}/user"
+ rm -rf "${serveridentitydir:?}/user"
+ fn_wipe_exit_code
+ fn_sleep_time
# We do not print additional information if there is nothing to remove since this might be obsolete.
- fi
- # Wipe storage dir, might be a legacy thing, maybe to be removed.
- if [ -d "${serveridentitydir}/storage" ]; then
- currentaction="Removing storage directory: ${serveridentitydir}/storage"
- echo -en "Removing storage directory..."
- fn_sleep_time
- fn_script_log "${currentaction}"
- rm -rf "${serveridentitydir:?}/storage"
- fn_wipe_exit_code
- fn_sleep_time
+ fi
+ # Wipe storage dir, might be a legacy thing, maybe to be removed.
+ if [ -d "${serveridentitydir}/storage" ]; then
+ echo -en "removing storage directory..."
+ fn_sleep_time
+ fn_script_log_info "removing storage directory: ${serveridentitydir}/storage"
+ rm -rf "${serveridentitydir:?}/storage"
+ fn_wipe_exit_code
+ fn_sleep_time
# We do not print additional information if there is nothing to remove since this might be obsolete.
- fi
- # Wipe sv.files.
- if [ "$(find "${serveridentitydir}" -type f -name "sv.files.*.db")" ]; then
- currentaction="Removing server misc files: ${serveridentitydir}/sv.files.*.db"
- echo -en "Removing server misc srv.files*.db file(s)..."
- fn_sleep_time
- fn_script_log "${currentaction}"
- find "${serveridentitydir:?}" -type f -name "sv.files.*.db" -delete
- fn_wipe_exit_code
- fn_sleep_time
+ fi
+ # Wipe sv.files.
+ if [ -n "$(find "${serveridentitydir}" -type f -name "sv.files.*.db")" ]; then
+ echo -en "removing server misc srv.files*.db file(s)..."
+ fn_sleep_time
+ fn_script_log_info "Removing server misc files: ${serveridentitydir}/sv.files.*.db"
+ find "${serveridentitydir:?}" -type f -name "sv.files.*.db" -delete | tee -a "${lgsmlog}"
+ fn_wipe_exit_code
+ fn_sleep_time
# No further information if not found because it should I could not get this file showing up.
- fi
- # Wipe player death files.
- if [ "$(find "${serveridentitydir}" -type f -name "player.deaths.*.db")" ]; then
- currentaction="Removing player death files: ${serveridentitydir}/player.deaths.*.db"
- echo -en "Removing player deaths player.deaths.*.db file(s)..."
+ fi
+ # Wipe player death files.
+ if [ -n "$(find "${serveridentitydir}" -type f -name "player.deaths.*.db")" ]; then
+ echo -en "removing player deaths player.deaths.*.db file(s)..."
+ fn_sleep_time
+ fn_script_log_info "Removing player death files: ${serveridentitydir}/player.deaths.*.db"
+ find "${serveridentitydir:?}" -type f -name "player.deaths.*.db" -delete | tee -a "${lgsmlog}"
+ fn_wipe_exit_code
+ fn_sleep_time
+ else
+ echo -e "no player death to remove"
+ fn_sleep_time
+ fn_script_log_pass "No player death to remove"
+ fi
+ # Wipe player states files
+ if [ -n "$(find "${serveridentitydir}" -type f -name "player.states.*.db")" ]; then
+ echo -en "removing player states player.states.*.db file(s)..."
+ fn_sleep_time
+ fn_script_log_info "Removing player states: ${serveridentitydir}/player.states.*.db"
+ find "${serveridentitydir:?}" -type f -name "player.states.*.db" -delete | tee -a "${lgsmlog}"
+ fn_wipe_exit_code
+ fn_sleep_time
+ else
+ echo -e "no player states to remove"
+ fn_sleep_time
+ fn_script_log_pass "No player states to remove"
+ fi
+ # Wipe blueprints only if full-wipe command was used.
+ if [ "${fullwipe}" == "1" ]; then
+ if [ -n "$(find "${serveridentitydir}" -type f -name "player.blueprints.*.db")" ]; then
+ echo -en "removing blueprints player.blueprints.*.db file(s)..."
fn_sleep_time
- fn_script_log "${currentaction}"
- find "${serveridentitydir:?}" -type f -name "player.deaths.*.db" -delete
+ fn_script_log_info "Removing blueprint file(s): ${serveridentitydir}/player.blueprints.*.db"
+ find "${serveridentitydir:?}" -type f -name "player.blueprints.*.db" -delete | tee -a "${lgsmlog}"
fn_wipe_exit_code
fn_sleep_time
else
- fn_print_information_nl "No player death to remove"
- fn_script_log_info "No player death to remove."
- fi
- # Wipe blueprints only if wipeall command was used.
- if [ "${wipeall}" == "1" ]; then
- if [ "$(find "${serveridentitydir}" -type f -name "player.blueprints.*.db")" ]; then
- currentaction="Removing blueprint file(s): ${serveridentitydir}/player.blueprints.*.db"
- echo -en "Removing blueprints player.blueprints.*.db file(s)..."
- fn_sleep_time
- fn_script_log "${currentaction}"
- find "${serveridentitydir:?}" -type f -name "player.blueprints.*.db" -delete
- fn_wipe_exit_code
- fn_sleep_time
- else
- fn_print_information_nl "No blueprint file to remove"
- fn_script_log_info "No blueprint file to remove."
- fi
- elif [ "$(find "${serveridentitydir}" -type f -name "player.blueprints.*.db")" ]; then
- fn_print_information_nl "Keeping blueprints"
- fn_script_log_info "Keeping blueprints."
- else
- fn_print_information_nl "No blueprints found"
- fn_script_log_info "No blueprints found."
- fn_sleep_time
- fi
- # Wipe some logs that might be there.
- if [ "$(find "${serveridentitydir}" -type f -name "Log.*.txt")" ]; then
- currentaction="Removing log files: ${serveridentitydir}/Log.*.txt"
- echo -en "Removing Log files..."
+ echo -e "no blueprint file to remove"
fn_sleep_time
- fn_script_log "${currentaction}"
- find "${serveridentitydir:?}" -type f -name "Log.*.txt" -delete
- fn_wipe_exit_code
- fn_sleep_time
- # We do not print additional information if there are no logs to remove.
+ fn_script_log_pass "No blueprint file to remove"
fi
- # You can add an "elif" here to add another game or engine.
+ elif [ -n "$(find "${serveridentitydir}" -type f -name "player.blueprints.*.db")" ]; then
+ echo -e "keeping blueprints"
+ fn_sleep_time
+ fn_script_log_info "Keeping blueprints"
+ else
+ echo -e "no blueprints found"
+ fn_sleep_time
+ fn_script_log_pass "No blueprints found"
+ fi
+ # Wipe some logs that might be there.
+ if [ -n "$(find "${serveridentitydir}" -type f -name "Log.*.txt")" ]; then
+ echo -en "removing log files..."
+ fn_sleep_time
+ fn_script_log_info "Removing log files: ${serveridentitydir}/Log.*.txt"
+ find "${serveridentitydir:?}" -type f -name "Log.*.txt" -delete
+ fn_wipe_exit_code
+ fn_sleep_time
+ # We do not print additional information if there are no logs to remove.
fi
}
-# Check if there is something to wipe, prompt the user, and call appropriate functions.
-# Rust Wipe.
-if [ "${shortname}" == "rust" ]; then
- if [ -d "${serveridentitydir}/storage" ]||[ -d "${serveridentitydir}/user" ]||[ -n "$(find "${serveridentitydir}" -type f -name "proceduralmap*.sav")" ]||[ -n "$(find "${serveridentitydir}" -type f -name "barren*.sav")" ]||[ -n "$(find "${serveridentitydir}" -type f -name "Log.*.txt")" ]||[ -n "$(find "${serveridentitydir}" -type f -name "player.deaths.*.db")" ]||[ -n "$(find "${serveridentitydir}" -type f -name "player.blueprints.*.db")" ]||[ -n "$(find "${serveridentitydir}" -type f -name "sv.files.*.db")" ]; then
- fn_print_warning_nl "Any user, storage, log and map data from ${serveridentitydir} will be erased."
- if ! fn_prompt_yn "Continue?" Y; then
- core_exit.sh
+fn_stop_warning(){
+ fn_print_warn "this game server will be stopped during wipe"
+ fn_script_log_warn "this game server will be stopped during wipe"
+ totalseconds=3
+ for seconds in {3..1}; do
+ fn_print_warn "this game server will be stopped during wipe: ${totalseconds}"
+ totalseconds=$((totalseconds - 1))
+ sleep 1
+ if [ "${seconds}" == "0" ]; then
+ break
fi
- fn_script_log_info "User selects to erase any user, storage, log and map data from ${serveridentitydir}"
- fn_sleep_time
- fn_wipe_server_process
+ done
+ fn_print_warn_nl "this game server will be stopped during wipe"
+}
+
+fn_wipe_warning(){
+ fn_print_warn "wipe is about to start"
+ fn_script_log_warn "wipe is about to start"
+ totalseconds=3
+ for seconds in {3..1}; do
+ fn_print_warn "wipe is about to start: ${totalseconds}"
+ totalseconds=$((totalseconds - 1))
+ sleep 1
+ if [ "${seconds}" == "0" ]; then
+ break
+ fi
+ done
+ fn_print_warn "wipe is about to start"
+}
+
+# Will change the seed everytime the wipe command is run if the seed in config is not set.
+fn_wipe_random_seed(){
+ shuf -i 1-2147483647 -n 1 > "${datadir}/${selfname}-seed.txt"
+}
+
+fn_print_dots ""
+check.sh
+
+# Check if there is something to wipe.
+if [ -d "${serveridentitydir}/storage" ]||[ -d "${serveridentitydir}/user" ]||[ -n "$(find "${serveridentitydir}" -type f -name "*.sav*")" ]||[ -n "$(find "${serveridentitydir}" -type f -name "Log.*.txt")" ]||[ -n "$(find "${serveridentitydir}" -type f -name "player.deaths.*.db")" ]||[ -n "$(find "${serveridentitydir}" -type f -name "player.blueprints.*.db")" ]||[ -n "$(find "${serveridentitydir}" -type f -name "sv.files.*.db")" ]; then
+ fn_wipe_warning
+ check_status.sh
+ if [ "${status}" != "0" ]; then
+ fn_stop_warning
+ exitbypass=1
+ command_stop.sh
+ fn_firstcommand_reset
+ fn_wipe_server_files
+ exitbypass=1
+ command_start.sh
+ fn_firstcommand_reset
else
- fn_print_information_nl "No data to wipe was found"
- fn_script_log_info "No data to wipe was found."
- core_exit.sh
+ fn_wipe_server_files
fi
-# You can add an "elif" here to add another game or engine.
+ fn_print_complete_nl "Wiping ${selfname}"
+ fn_script_log_pass "Wiping ${selfname}"
+ fn_wipe_random_seed
else
- # Game not listed.
- fn_print_information_nl "Wipe is not available for this game"
- fn_script_log_info "Wipe is not available for this game."
- core_exit.sh
+ fn_print_ok_nl "Wipe not required"
+ fn_script_log_pass "Wipe not required"
fi
-
core_exit.sh
diff --git a/lgsm/functions/compress_unreal2_maps.sh b/lgsm/functions/compress_unreal2_maps.sh
old mode 100644
new mode 100755
index 3580c20c9..7169c9612
--- a/lgsm/functions/compress_unreal2_maps.sh
+++ b/lgsm/functions/compress_unreal2_maps.sh
@@ -7,6 +7,7 @@
commandname="MAP-COMPRESSOR"
commandaction="Compressing maps"
functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
+fn_firstcommand_set
check.sh
fn_print_header
@@ -19,7 +20,8 @@ echo -e ""
echo -e "${compressedmapsdir}"
echo -e ""
if ! fn_prompt_yn "Start compression?" Y; then
- return
+ exitcode=0
+ core_exit.sh
fi
mkdir -pv "${compressedmapsdir}" > /dev/null 2>&1
rm -rfv "${serverfiles:?}/Maps/"*.ut2.uz2
diff --git a/lgsm/functions/compress_ut99_maps.sh b/lgsm/functions/compress_ut99_maps.sh
old mode 100644
new mode 100755
index 677f5aaa2..3239837a0
--- a/lgsm/functions/compress_ut99_maps.sh
+++ b/lgsm/functions/compress_ut99_maps.sh
@@ -7,6 +7,7 @@
commandname="MAP-COMPRESSOR"
commandaction="Compressing maps"
functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
+fn_firstcommand_set
check.sh
fn_print_header
@@ -19,7 +20,8 @@ echo -e ""
echo -e "${compressedmapsdir}"
echo -e ""
if ! fn_prompt_yn "Start compression?" Y; then
- return
+ exitcode=0
+ core_exit.sh
fi
mkdir -pv "${compressedmapsdir}" > /dev/null 2>&1
rm -rfv "${serverfiles:?}/Maps/"*.unr.uz
diff --git a/lgsm/functions/core_dl.sh b/lgsm/functions/core_dl.sh
old mode 100644
new mode 100755
index 89ee784db..01d001b2a
--- a/lgsm/functions/core_dl.sh
+++ b/lgsm/functions/core_dl.sh
@@ -19,13 +19,128 @@
functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
+fn_dl_steamcmd(){
+ fn_print_start_nl "${remotelocation}"
+ fn_script_log_info "${commandaction} ${selfname}: ${remotelocation}"
+ if [ -n "${branch}" ]; then
+ echo -e "Branch: ${branch}"
+ fn_script_log_info "Branch: ${branch}"
+ fi
+ if [ -n "${betapassword}" ]; then
+ echo -e "Branch password: ${betapassword}"
+ fn_script_log_info "Branch password: ${betapassword}"
+ fi
+ if [ -d "${steamcmddir}" ]; then
+ cd "${steamcmddir}" || exit
+ fi
+
+ # Unbuffer will allow the output of steamcmd not buffer allowing a smooth output.
+ # unbuffer us part of the expect package.
+ if [ "$(command -v unbuffer)" ]; then
+ unbuffer="unbuffer"
+ fi
+
+ # Validate will be added as a parameter if required.
+ if [ "${commandname}" == "VALIDATE" ]||[ "${commandname}" == "INSTALL" ]; then
+ validate="validate"
+ fi
+
+ # To do error checking for SteamCMD the output of steamcmd will be saved to a log.
+ steamcmdlog="${lgsmlogdir}/${selfname}-steamcmd.log"
+
+ # clear previous steamcmd log
+ if [ -f "${steamcmdlog}" ]; then
+ rm -f "${steamcmdlog:?}"
+ fi
+ counter=0
+ while [ "${counter}" == "0" ]||[ "${exitcode}" != "0" ]; do
+ counter=$((counter+1))
+ # Select SteamCMD parameters
+ # If GoldSrc (appid 90) servers. GoldSrc (appid 90) require extra commands.
+ if [ "${appid}" == "90" ]; then
+ # If using a specific branch.
+ if [ -n "${branch}" ]&&[ -n "${betapassword}" ]; then
+ ${unbuffer} ${steamcmdcommand} +login "${steamuser}" "${steampass}" +force_install_dir "${serverfiles}" +app_set_config 90 mod "${appidmod}" +app_update "${appid}" -beta "${branch}" -betapassword "${betapassword}" ${validate} +quit | uniq | tee -a "${lgsmlog}" "${steamcmdlog}"
+ elif [ -n "${branch}" ]; then
+ ${unbuffer} ${steamcmdcommand} +login "${steamuser}" "${steampass}" +force_install_dir "${serverfiles}" +app_set_config 90 mod "${appidmod}" +app_update "${appid}" -beta "${branch}" ${validate} +quit | uniq | tee -a "${lgsmlog}" "${steamcmdlog}"
+ else
+ ${unbuffer} ${steamcmdcommand} +login "${steamuser}" "${steampass}" +force_install_dir "${serverfiles}" +app_set_config 90 mod "${appidmod}" +app_update "${appid}" ${validate} +quit | uniq | tee -a "${lgsmlog}" "${steamcmdlog}"
+ fi
+ # Force Windows Platform type.
+ elif [ "${steamcmdforcewindows}" == "yes" ]; then
+ if [ -n "${branch}" ]&&[ -n "${betapassword}" ]; then
+ ${unbuffer} ${steamcmdcommand} +@sSteamCmdForcePlatformType windows +login "${steamuser}" "${steampass}" +force_install_dir "${serverfiles}" +app_update "${appid}" -beta "${branch}" -betapassword "${betapassword}" ${validate} +quit | uniq | tee -a "${lgsmlog}" "${steamcmdlog}"
+ elif [ -n "${branch}" ]; then
+ ${unbuffer} ${steamcmdcommand} +@sSteamCmdForcePlatformType windows +login "${steamuser}" "${steampass}" +force_install_dir "${serverfiles}" +app_update "${appid}" -beta "${branch}" ${validate} +quit | uniq | tee -a "${lgsmlog}" "${steamcmdlog}"
+ else
+ ${unbuffer} ${steamcmdcommand} +@sSteamCmdForcePlatformType windows +login "${steamuser}" "${steampass}" +force_install_dir "${serverfiles}" +app_update "${appid}" ${validate} +quit | uniq | tee -a "${lgsmlog}" "${steamcmdlog}"
+ fi
+ # All other servers.
+ else
+ if [ -n "${branch}" ]&&[ -n "${betapassword}" ]; then
+ ${unbuffer} ${steamcmdcommand} +login "${steamuser}" "${steampass}" +force_install_dir "${serverfiles}" +app_update "${appid}" -beta "${branch}" -betapassword "${betapassword}" ${validate} +quit | uniq | tee -a "${lgsmlog}" "${steamcmdlog}"
+ elif [ -n "${branch}" ]; then
+ ${unbuffer} ${steamcmdcommand} +login "${steamuser}" "${steampass}" +force_install_dir "${serverfiles}" +app_update "${appid}" -beta "${branch}" ${validate} +quit | uniq | tee -a "${lgsmlog}" "${steamcmdlog}"
+ else
+ ${unbuffer} ${steamcmdcommand} +login "${steamuser}" "${steampass}" +force_install_dir "${serverfiles}" +app_update "${appid}" ${validate} +quit | uniq | tee -a "${lgsmlog}" "${steamcmdlog}"
+ fi
+ fi
+
+ # Error checking for SteamCMD. Some errors will loop to try again and some will just exit.
+ # Check also if we have more errors than retries to be sure that we do not loop to many times and error out.
+ exitcode=$?
+ if [ -n "$(grep -i "Error!" "${steamcmdlog}" | tail -1)" ]&&[ "$(grep -ic "Error!" "${steamcmdlog}")" -ge "${counter}" ] ; then
+ # Not enough space.
+ if [ -n "$(grep "0x202" "${steamcmdlog}" | tail -1)" ]; then
+ fn_print_failure_nl "${commandaction} ${selfname}: ${remotelocation}: Not enough space to download server files"
+ fn_script_log_fatal "${commandaction} ${selfname}: ${remotelocation}: Not enough space to download server files"
+ core_exit.sh
+ # Need tp purchase game.
+ elif [ -n "$(grep "No subscription" "${steamcmdlog}" | tail -1)" ]; then
+ fn_print_failure_nl "${commandaction} ${selfname}: ${remotelocation}: Steam account does not have a license for the required game"
+ fn_script_log_fatal "${commandaction} ${selfname}: ${remotelocation}: Steam account does not have a license for the required game"
+ core_exit.sh
+ # Two-factor authentication failure
+ elif [ -n "$(grep "Two-factor code mismatch" "${steamcmdlog}" | tail -1)" ]; then
+ fn_print_failure_nl "${commandaction} ${selfname}: ${remotelocation}: Two-factor authentication failure"
+ fn_script_log_fatal "${commandaction} ${selfname}: ${remotelocation}: Two-factor authentication failure"
+ core_exit.sh
+ # Incorrect Branch password
+ elif [ -n "$(grep "Password check for AppId" "${steamcmdlog}" | tail -1)" ]; then
+ fn_print_failure_nl "${commandaction} ${selfname}: ${remotelocation}: betapassword is incorrect"
+ fn_script_log_fatal "${commandaction} ${selfname}: ${remotelocation}: betapassword is incorrect"
+ core_exit.sh
+ # Update did not finish.
+ elif [ -n "$(grep "0x402" "${steamcmdlog}" | tail -1)" ]||[ -n "$(grep "0x602" "${steamcmdlog}" | tail -1)" ]; then
+ fn_print_error2_nl "${commandaction} ${selfname}: ${remotelocation}: Update required but not completed - check network"
+ fn_script_log_error "${commandaction} ${selfname}: ${remotelocation}: Update required but not completed - check network"
+ else
+ fn_print_error2_nl "${commandaction} ${selfname}: ${remotelocation}: Unknown error occured"
+ fn_script_log_error "${commandaction} ${selfname}: ${remotelocation}: Unknown error occured"
+ fi
+ elif [ "${exitcode}" != "0" ]; then
+ fn_print_error2_nl "${commandaction} ${selfname}: ${remotelocation}: Exit code: ${exitcode}"
+ fn_script_log_error "${commandaction} ${selfname}: ${remotelocation}: Exit code: ${exitcode}"
+ else
+ fn_print_complete_nl "${commandaction} ${selfname}: ${remotelocation}"
+ fn_script_log_pass "${commandaction} ${selfname}: ${remotelocation}"
+ fi
+
+ if [ "${counter}" -gt "10" ]; then
+ fn_print_failure_nl "${commandaction} ${selfname}: ${remotelocation}: Did not complete the download, too many retrys"
+ fn_script_log_fatal "${commandaction} ${selfname}: ${remotelocation}: Did not complete the download, too many retrys"
+ core_exit.sh
+ fi
+ done
+}
+
# Emptys contents of the LinuxGSM tmpdir.
fn_clear_tmp(){
echo -en "clearing LinuxGSM tmp directory..."
if [ -d "${tmpdir}" ]; then
rm -rf "${tmpdir:?}/"*
local exitcode=$?
- if [ ${exitcode} -eq 0 ]; then
+ if [ "${exitcode}" == 0 ]; then
fn_print_ok_eol_nl
fn_script_log_pass "clearing LinuxGSM tmp directory"
else
@@ -82,7 +197,7 @@ fn_dl_extract(){
extractcmd=$(unzip -qo -d "${extractdir}" "${local_filedir}/${local_filename}")
fi
local exitcode=$?
- if [ ${exitcode} -ne 0 ]; then
+ if [ "${exitcode}" != 0 ]; then
fn_print_fail_eol_nl
fn_script_log_fatal "Extracting download"
if [ -f "${lgsmlog}" ]; then
@@ -134,8 +249,7 @@ fn_fetch_file(){
counter=1
remote_fileurls_array=( remote_fileurl )
fi
- for remote_fileurl_array in "${remote_fileurls_array[@]}"
- do
+ for remote_fileurl_array in "${remote_fileurls_array[@]}"; do
if [ "${remote_fileurl_array}" == "remote_fileurl" ]; then
fileurl="${remote_fileurl}"
fileurl_name="${remote_fileurl_name}"
@@ -154,11 +268,11 @@ fn_fetch_file(){
echo -en "downloading ${local_filename}..."
fn_sleep_time
echo -en "\033[1K"
- curlcmd=$(curl --progress-bar --fail -L -o "${local_filedir}/${local_filename}" "${fileurl}")
+ curlcmd=$(curl --connect-timeout 10 --progress-bar --fail -L -o "${local_filedir}/${local_filename}" "${fileurl}")
echo -en "downloading ${local_filename}..."
else
echo -en "fetching ${fileurl_name} ${local_filename}...\c"
- curlcmd=$(curl -s --fail -L -o "${local_filedir}/${local_filename}" "${fileurl}" 2>&1)
+ curlcmd=$(curl --connect-timeout 10 -s --fail -L -o "${local_filedir}/${local_filename}" "${fileurl}" 2>&1)
fi
local exitcode=$?
@@ -171,7 +285,7 @@ fn_fetch_file(){
fi
# On first try will error. On second try will fail.
- if [ ${exitcode} -ne 0 ]; then
+ if [ "${exitcode}" != 0 ]; then
if [ ${counter} -ge 2 ]; then
fn_print_fail_eol_nl
if [ -f "${lgsmlog}" ]; then
@@ -236,11 +350,12 @@ fn_fetch_file(){
fn_fetch_file_github(){
github_file_url_dir="${1}"
github_file_url_name="${2}"
+ # For legacy versions - code can be removed at a future date
if [ "${legacymode}" == "1" ]; then
- # For legacy versions - code can be removed at a future date
remote_fileurl="https://raw.githubusercontent.com/${githubuser}/${githubrepo}/${githubbranch}/${github_file_url_dir}/${github_file_url_name}"
remote_fileurl_backup="https://bitbucket.org/${githubuser}/${githubrepo}/raw/${githubbranch}/${github_file_url_dir}/${github_file_url_name}"
- elif [ "${githubbranch}" == "master" ]&&[ "${commandname}" != "UPDATE-LGSM" ]; then
+ # If master branch will currently running LinuxGSM version to prevent "version mixing". This is ignored if a fork.
+ elif [ "${githubbranch}" == "master" ]&&[ "${githubuser}" == "GameServerManager" ]&&[ "${commandname}" != "UPDATE-LGSM" ]; then
remote_fileurl="https://raw.githubusercontent.com/${githubuser}/${githubrepo}/${version}/${github_file_url_dir}/${github_file_url_name}"
remote_fileurl_backup="https://bitbucket.org/${githubuser}/${githubrepo}/raw/${version}/${github_file_url_dir}/${github_file_url_name}"
else
@@ -263,7 +378,8 @@ fn_fetch_file_github(){
fn_fetch_config(){
github_file_url_dir="${1}"
github_file_url_name="${2}"
- if [ "${githubbranch}" == "master" ]&&[ "${commandname}" != "UPDATE-LGSM" ]; then
+ # If master branch will currently running LinuxGSM version to prevent "version mixing". This is ignored if a fork.
+ if [ "${githubbranch}" == "master" ]&&[ "${githubuser}" == "GameServerManager" ]&&[ "${commandname}" != "UPDATE-LGSM" ]; then
remote_fileurl="https://raw.githubusercontent.com/${githubuser}/${githubrepo}/${version}/${github_file_url_dir}/${github_file_url_name}"
remote_fileurl_backup="https://bitbucket.org/${githubuser}/${githubrepo}/raw/${version}/${github_file_url_dir}/${github_file_url_name}"
else
@@ -286,7 +402,8 @@ fn_fetch_config(){
fn_fetch_function(){
github_file_url_dir="lgsm/functions"
github_file_url_name="${functionfile}"
- if [ "${githubbranch}" == "master" ]&&[ "${commandname}" != "UPDATE-LGSM" ]; then
+ # If master branch will currently running LinuxGSM version to prevent "version mixing". This is ignored if a fork.
+ if [ "${githubbranch}" == "master" ]&&[ "${githubuser}" == "GameServerManager" ]&&[ "${commandname}" != "UPDATE-LGSM" ]; then
remote_fileurl="https://raw.githubusercontent.com/${githubuser}/${githubrepo}/${version}/${github_file_url_dir}/${github_file_url_name}"
remote_fileurl_backup="https://bitbucket.org/${githubuser}/${githubrepo}/raw/${version}/${github_file_url_dir}/${github_file_url_name}"
else
@@ -309,7 +426,8 @@ fn_fetch_function(){
fn_update_function(){
github_file_url_dir="lgsm/functions"
github_file_url_name="${functionfile}"
- if [ "${githubbranch}" == "master" ]&&[ "${commandname}" != "UPDATE-LGSM" ]; then
+ # If master branch will currently running LinuxGSM version to prevent "version mixing". This is ignored if a fork.
+ if [ "${githubbranch}" == "master" ]&&[ "${githubuser}" == "GameServerManager" ]&&[ "${commandname}" != "UPDATE-LGSM" ]; then
remote_fileurl="https://raw.githubusercontent.com/${githubuser}/${githubrepo}/${version}/${github_file_url_dir}/${github_file_url_name}"
remote_fileurl_backup="https://bitbucket.org/${githubuser}/${githubrepo}/raw/${version}/${github_file_url_dir}/${github_file_url_name}"
else
@@ -329,6 +447,46 @@ fn_update_function(){
}
+# Function to download latest github release.
+# $1 GitHub user / organisation.
+# $2 Repo name.
+# $3 Destination for download.
+# $4 Search string in releases (needed if there are more files that can be downloaded from the release pages).
+fn_dl_latest_release_github(){
+ local githubreleaseuser="${1}"
+ local githubreleaserepo="${2}"
+ local githubreleasedownloadpath="${3}"
+ local githubreleasesearch="${4}"
+ local githublatestreleaseurl="https://api.github.com/repos/${githubreleaseuser}/${githubreleaserepo}/releases/latest"
+
+ # Get last github release.
+ # If no search for the release filename is set, just get the first file from the latest release.
+ if [ -z "${githubreleasesearch}" ]; then
+ githubreleaseassets=$(curl -s "${githublatestreleaseurl}" | jq '[ .assets[] ]')
+ else
+ githubreleaseassets=$(curl -s "${githublatestreleaseurl}" | jq "[ .assets[]|select(.browser_download_url | contains(\"${githubreleasesearch}\")) ]")
+ fi
+
+ # Check how many releases we got from the api and exit if we have more then one.
+ if [ "$(echo -e "${githubreleaseassets}" | jq '. | length')" -gt 1 ]; then
+ fn_print_fatal_nl "Found more than one release to download - Please report this to the LinuxGSM issue tracker"
+ fn_script_log_fatal "Found more than one release to download - Please report this to the LinuxGSM issue tracker"
+ else
+ # Set variables for download via fn_fetch_file.
+ githubreleasefilename=$(echo -e "${githubreleaseassets}" | jq -r '.[]name')
+ githubreleasedownloadlink=$(echo -e "${githubreleaseassets}" | jq -r '.[]browser_download_url')
+
+ # Error if no version is there.
+ if [ -z "${githubreleasefilename}" ]; then
+ fn_print_fail_nl "Cannot get version from GitHub API for ${githubreleaseuser}/${githubreleaserepo}"
+ fn_script_log_fatal "Cannot get version from GitHub API for ${githubreleaseuser}/${githubreleaserepo}"
+ else
+ # Fetch file from the remote location from the existing function to the ${tmpdir} for now.
+ fn_fetch_file "${githubreleasedownloadlink}" "" "${githubreleasefilename}" "" "${githubreleasedownloadpath}" "${githubreleasefilename}"
+ fi
+ fi
+}
+
# Check that curl is installed
if [ ! "$(command -v curl 2>/dev/null)" ]; then
echo -e "[ FAIL ] Curl is not installed"
diff --git a/lgsm/functions/core_exit.sh b/lgsm/functions/core_exit.sh
old mode 100644
new mode 100755
diff --git a/lgsm/functions/core_functions.sh b/lgsm/functions/core_functions.sh
old mode 100644
new mode 100755
index 4b0387194..f9e6b3e05
--- a/lgsm/functions/core_functions.sh
+++ b/lgsm/functions/core_functions.sh
@@ -7,7 +7,7 @@
functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
-modulesversion="v20.3.3"
+modulesversion="v20.6.2"
# Core
@@ -38,6 +38,10 @@ else
fi
}
+fn_parms(){
+parms="${startparameters}"
+}
+
core_exit.sh(){
functionfile="${FUNCNAME[0]}"
fn_fetch_function
@@ -53,6 +57,16 @@ functionfile="${FUNCNAME[0]}"
fn_fetch_function
}
+core_steamcmd.sh(){
+functionfile="${FUNCNAME[0]}"
+fn_fetch_function
+}
+
+core_github.sh(){
+functionfile="${FUNCNAME[0]}"
+fn_fetch_function
+}
+
# Commands
command_backup.sh(){
@@ -155,6 +169,11 @@ functionfile="${FUNCNAME[0]}"
fn_fetch_function
}
+command_skeleton.sh(){
+functionfile="${FUNCNAME[0]}"
+fn_fetch_function
+}
+
command_wipe.sh(){
functionfile="${FUNCNAME[0]}"
fn_fetch_function
@@ -320,22 +339,22 @@ functionfile="${FUNCNAME[0]}"
fn_fetch_function
}
-fix_cmw.sh(){
+fix_bo.sh(){
functionfile="${FUNCNAME[0]}"
fn_fetch_function
}
-fix_csgo.sh(){
+fix_cmw.sh(){
functionfile="${FUNCNAME[0]}"
fn_fetch_function
}
-fix_dst.sh(){
+fix_csgo.sh(){
functionfile="${FUNCNAME[0]}"
fn_fetch_function
}
-fix_ges.sh(){
+fix_dst.sh(){
functionfile="${FUNCNAME[0]}"
fn_fetch_function
}
@@ -400,6 +419,11 @@ functionfile="${FUNCNAME[0]}"
fn_fetch_function
}
+fix_st.sh(){
+functionfile="${FUNCNAME[0]}"
+fn_fetch_function
+}
+
fix_steamcmd.sh(){
functionfile="${FUNCNAME[0]}"
fn_fetch_function
@@ -415,17 +439,17 @@ functionfile="${FUNCNAME[0]}"
fn_fetch_function
}
-fix_tu.sh(){
+fix_ut3.sh(){
functionfile="${FUNCNAME[0]}"
fn_fetch_function
}
-fix_ut3.sh(){
+fix_rust.sh(){
functionfile="${FUNCNAME[0]}"
fn_fetch_function
}
-fix_rust.sh(){
+fix_samp.sh(){
functionfile="${FUNCNAME[0]}"
fn_fetch_function
}
@@ -440,7 +464,7 @@ functionfile="${FUNCNAME[0]}"
fn_fetch_function
}
-fix_ss3.sh(){
+fix_squad.sh(){
functionfile="${FUNCNAME[0]}"
fn_fetch_function
}
@@ -549,6 +573,16 @@ functionfile="${FUNCNAME[0]}"
fn_fetch_function
}
+alert_rocketchat.sh(){
+functionfile="${FUNCNAME[0]}"
+fn_fetch_function
+}
+
+alert_sendgrid.sh(){
+functionfile="${FUNCNAME[0]}"
+fn_fetch_function
+}
+
alert_slack.sh(){
functionfile="${FUNCNAME[0]}"
fn_fetch_function
@@ -584,6 +618,11 @@ functionfile="${FUNCNAME[0]}"
fn_fetch_function
}
+command_check_update.sh(){
+functionfile="${FUNCNAME[0]}"
+fn_fetch_function
+}
+
update_ts3.sh(){
functionfile="${FUNCNAME[0]}"
fn_fetch_function
@@ -614,11 +653,21 @@ functionfile="${FUNCNAME[0]}"
fn_fetch_function
}
+update_jediknight2.sh(){
+functionfile="${FUNCNAME[0]}"
+fn_fetch_function
+}
+
update_steamcmd.sh(){
functionfile="${FUNCNAME[0]}"
fn_fetch_function
}
+update_vintagestory.sh(){
+functionfile="${FUNCNAME[0]}"
+fn_fetch_function
+}
+
fn_update_functions.sh(){
functionfile="${FUNCNAME[0]}"
fn_fetch_function
diff --git a/lgsm/functions/core_getopt.sh b/lgsm/functions/core_getopt.sh
old mode 100644
new mode 100755
index fe31f488f..5fae3fb9f
--- a/lgsm/functions/core_getopt.sh
+++ b/lgsm/functions/core_getopt.sh
@@ -20,12 +20,14 @@ cmd_backup=( "b;backup" "command_backup.sh" "Create backup archives of the serve
cmd_update_linuxgsm=( "ul;update-lgsm;uf;update-functions" "command_update_linuxgsm.sh" "Check and apply any LinuxGSM updates." )
cmd_test_alert=( "ta;test-alert" "command_test_alert.sh" "Send a test alert." )
cmd_monitor=( "m;monitor" "command_monitor.sh" "Check server status and restart if crashed." )
+cmd_skeleton=( "sk;skeleton" "command_skeleton.sh" "Create a skeleton directory." )
cmd_donate=( "do;donate" "command_donate.sh" "Donation options." )
# Console servers only.
cmd_console=( "c;console" "command_console.sh" "Access server console." )
cmd_debug=( "d;debug" "command_debug.sh" "Start server directly in your terminal." )
# Update servers only.
cmd_update=( "u;update" "command_update.sh" "Check and apply any server updates." )
+cmd_check_update=( "cu;check-update" "command_check_update.sh" "Check if a gameserver update is available" )
cmd_force_update=( "fu;force-update;update-restart;ur" "forceupdate=1; command_update.sh" "Apply server updates bypassing check." )
# SteamCMD servers only.
cmd_validate=( "v;validate" "command_validate.sh" "Validate server files with SteamCMD." )
@@ -36,8 +38,8 @@ cmd_mods_update=( "mu;mods-update" "command_mods_update.sh" "Update installed mo
# Server specific.
cmd_change_password=( "pw;change-password" "command_ts3_server_pass.sh" "Change TS3 serveradmin password." )
cmd_install_default_resources=( "ir;install-default-resources" "command_install_resources_mta.sh" "Install the MTA default resources." )
-cmd_wipe=( "wi;wipe" "command_wipe.sh" "Wipe your main game server data." )
-cmd_wipeall=( "wa;wipeall" "wipeall=1; command_wipe.sh" "Wipe your game server data and blueprints." )
+cmd_wipe=( "w;wipe;wi" "command_wipe.sh" "Map assets are wiped and blueprints are kept." )
+cmd_full_wipe=( "fw;full-wipe;wa;wipeall" "fullwipe=1; command_wipe.sh" "Map assets and blueprints are wiped." )
cmd_map_compressor_u99=( "mc;map-compressor" "compress_ut99_maps.sh" "Compresses all ${gamename} server maps." )
cmd_map_compressor_u2=( "mc;map-compressor" "compress_unreal2_maps.sh" "Compresses all ${gamename} server maps." )
cmd_install_cdkey=( "cd;server-cd-key" "install_ut2k4_key.sh" "Add your server cd key." )
@@ -55,23 +57,25 @@ cmd_dev_clear_functions=( "cf;clear-functions" "command_dev_clear_functions.sh"
### Set specific opt here.
-currentopt=( "${cmd_start[@]}" "${cmd_stop[@]}" "${cmd_restart[@]}" "${cmd_monitor[@]}" "${cmd_test_alert[@]}" "${cmd_details[@]}" "${cmd_postdetails[@]}" )
+currentopt=( "${cmd_start[@]}" "${cmd_stop[@]}" "${cmd_restart[@]}" "${cmd_monitor[@]}" "${cmd_test_alert[@]}" "${cmd_details[@]}" "${cmd_postdetails[@]}" "${cmd_skeleton[@]}" )
-# Update LGSM.
+# Update LinuxGSM.
currentopt+=( "${cmd_update_linuxgsm[@]}" )
# Exclude noupdate games here.
-if [ "${engine}" != "quake" ]&&[ "${engine}" != "idtech2" ]&&[ "${engine}" != "idtech3" ]&&[ "${engine}" != "iw2.0" ]&&[ "${engine}" != "iw3.0" ]&&[ "${shortname}" != "bf1942" ]&&[ "${shortname}" != "bfv" ]&&[ "${shortname}" != "samp" ]; then
- currentopt+=( "${cmd_update[@]}" )
- # force update for SteamCMD only or MTA.
- if [ "${appid}" ]||[ "${shortname}" == "mta" ]; then
- currentopt+=( "${cmd_force_update[@]}" )
+if [ "${shortname}" == "jk2" ]||[ "${engine}" != "idtech3" ];then
+ if [ "${shortname}" != "bf1942" ]&&[ "${shortname}" != "bfv" ]&&[ "${engine}" != "idtech2" ]&&[ "${engine}" != "iw2.0" ]&&[ "${engine}" != "iw3.0" ]&&[ "${engine}" != "quake" ]&&[ "${shortname}" != "samp" ]&&[ "${shortname}" != "ut2k4" ]&&[ "${shortname}" != "ut99" ]; then
+ currentopt+=( "${cmd_update[@]}" )
+ # force update for SteamCMD or Multi Theft Auto only.
+ if [ "${appid}" ]||[ "${shortname}" == "mta" ]; then
+ currentopt+=( "${cmd_force_update[@]}" )
+ fi
fi
fi
-# Validate command.
+# Validate and check-update command.
if [ "${appid}" ]; then
- currentopt+=( "${cmd_validate[@]}" )
+ currentopt+=( "${cmd_validate[@]}" "${cmd_check_update[@]}" )
fi
# Backup.
@@ -94,7 +98,7 @@ fi
# Unreal exclusive.
if [ "${shortname}" == "rust" ]; then
- currentopt+=( "${cmd_wipe[@]}" "${cmd_wipeall[@]}" )
+ currentopt+=( "${cmd_wipe[@]}" "${cmd_full_wipe[@]}" )
fi
if [ "${engine}" == "unreal2" ]; then
if [ "${shortname}" == "ut2k4" ]; then
@@ -123,7 +127,7 @@ if [ "${shortname}" == "squad" ]; then
fi
## Mods commands.
-if [ "${engine}" == "source" ]||[ "${shortname}" == "rust" ]||[ "${shortname}" == "hq" ]||[ "${shortname}" == "sdtd" ]; then
+if [ "${engine}" == "source" ]||[ "${shortname}" == "rust" ]||[ "${shortname}" == "hq" ]||[ "${shortname}" == "sdtd" ]||[ "${shortname}" == "cs" ]||[ "${shortname}" == "dod" ]||[ "${shortname}" == "tfc" ]||[ "${shortname}" == "ns" ]||[ "${shortname}" == "ts" ]||[ "${shortname}" == "hldm" ]; then
currentopt+=( "${cmd_mods_install[@]}" "${cmd_mods_remove[@]}" "${cmd_mods_update[@]}" )
fi
diff --git a/lgsm/functions/core_github.sh b/lgsm/functions/core_github.sh
new file mode 100644
index 000000000..a83512b6a
--- /dev/null
+++ b/lgsm/functions/core_github.sh
@@ -0,0 +1,113 @@
+#!/bin/bash
+# LinuxGSM core_github.sh function
+# Author: Christian Birk
+# Website: https://linuxgsm.com
+# Description: core function file for updates via github
+
+functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
+
+github_api="https://api.github.com"
+
+fn_githublocalversionfile(){
+ local githubreleaseuser="${1}"
+ local githubreleaserepo="${2}"
+
+ githublocalversionfile="${datadir}/github-${githubreleaseuser}-${githubreleaserepo}-version"
+}
+
+# $1 githubuser/group
+# $2 github repo name
+fn_github_get_latest_release_version(){
+ local githubreleaseuser="${1}"
+ local githubreleaserepo="${2}"
+ local githublatestreleaseurl="${github_api}/repos/${githubreleaseuser}/${githubreleaserepo}/releases/latest"
+
+ githubreleaseversion=$(curl -s --connect-timeout 10 "${githublatestreleaseurl}" | jq '.tag_name' )
+
+ # error if no version is there
+ if [ -z "${githubreleaseversion}" ]; then
+ fn_print_fail_nl "Cannot get version from GitHub API for ${githubreleaseuser}/${githubreleaserepo}"
+ fn_script_log_fatal "Cannot get version from GitHub API for ${githubreleaseuser}/${githubreleaserepo}"
+ fi
+}
+
+# $1 githubuser/group
+# $2 github repo name
+fn_github_set_latest_release_version(){
+ local githubreleaseuser="${1}"
+ local githubreleaserepo="${2}"
+
+ fn_githublocalversionfile "${githubreleaseuser}" "${githubreleaserepo}"
+
+ local githublatestreleaseurl="${github_api}/repos/${githubreleaseuser}/${githubreleaserepo}/releases/latest"
+ githubreleaseversion=$(curl -s "${githublatestreleaseurl}" | jq -r '.tag_name' )
+
+ # error if no version is there
+ if [ -z "${githubreleaseversion}" ]; then
+ fn_print_fail_nl "Cannot get version from GitHub API for ${githubreleaseuser}/${githubreleaserepo}"
+ fn_script_log_fatal "Cannot get version from GitHub API for ${githubreleaseuser}/${githubreleaserepo}"
+ else
+ echo "${githubreleaseversion}" > "${githublocalversionfile}"
+ fi
+}
+
+# $1 githubuser/group
+# $2 github repo name
+fn_github_get_installed_version(){
+ local githubreleaseuser="${1}"
+ local githubreleaserepo="${2}"
+
+ fn_githublocalversionfile "${githubreleaseuser}" "${githubreleaserepo}"
+
+ githublocalversion=$(cat "${githublocalversionfile}")
+}
+
+# $1 githubuser/group
+# $2 github repo name
+# if a update needs to be downloaded - updateneeded is set to 1
+fn_github_compare_version(){
+ local githubreleaseuser="${1}"
+ local githubreleaserepo="${2}"
+ exitcode=0
+ updateneeded=0
+
+ fn_githublocalversionfile "${githubreleaseuser}" "${githubreleaserepo}"
+ local githublatestreleaseurl="${github_api}/repos/${githubreleaseuser}/${githubreleaserepo}/releases/latest"
+
+ githublocalversion=$(cat "${githublocalversionfile}")
+ githubreleaseversion=$(curl -s "${githublatestreleaseurl}" | jq '.tag_name' )
+
+ # error if no version is there
+ if [ -z "${githubreleaseversion}" ]; then
+ fn_print_fail_nl "Can not get version from Github Api for ${githubreleaseuser}/${githubreleaserepo}"
+ fn_script_log_fatal "Can not get version from Github Api for ${githubreleaseuser}/${githubreleaserepo}"
+ else
+ if [ "${githublocalversion}" == "${githubreleaseversion}" ]; then
+ echo -en "\n"
+ echo -e "No update from github.com/${githubreleaseuser}/${githubreleaserepo}/ available:"
+ echo -e "* Local build: ${red}${githublocalversion}${default}"
+ echo -e "* Remote build: ${green}${githubreleaseversion}${default}"
+ echo -en "\n"
+ else
+ # check if version that is installed is higher than the remote version to not override it
+ last_version=$(echo -e "${githublocalversion}\n${githubreleaseversion}" | sort -V | head -n1 )
+ if [ "${githubreleaseversion}" == "${last_version}" ]; then
+ echo -en "\n"
+ echo -e "Update from github.com/${githubreleaseuser}/${githubreleaserepo}/ available:"
+ echo -e "* Local build: ${red}${githublocalversion}${default}"
+ echo -e "* Remote build: ${green}${githubreleaseversion}${default}"
+ echo -en "\n"
+ updateneeded=1
+ else
+ # local version is higher than the remote version output this to the user
+ # strange case but could be possible, as a release could be removed from github
+ echo -en "\n"
+ echo -e "Local version is newer than the remote version"
+ echo -e "* Local version: ${green}${githublocalversion}${default}"
+ echo -e "* Remote version: ${green}${githubreleaseversion}${default}"
+ echo -en "\n"
+ exitcode=1
+ fi
+ fi
+ fi
+}
diff --git a/lgsm/functions/core_legacy.sh b/lgsm/functions/core_legacy.sh
old mode 100644
new mode 100755
index 3450d5842..9c95adcaf
--- a/lgsm/functions/core_legacy.sh
+++ b/lgsm/functions/core_legacy.sh
@@ -8,8 +8,7 @@ functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
# This is to help the transition to v20.3.0 and above
legacy_versions_array=( v20.2.1 v20.2.0 v20.1.5 v20.1.4 v20.1.3 v20.1.2 v20.1.1 v20.1.0 v19.12.5 v19.12.4 v19.12.3 v19.12.2 v19.12.1 v19.12.0 )
-for legacy_version in "${legacy_versions_array[@]}"
-do
+for legacy_version in "${legacy_versions_array[@]}"; do
if [ "${version}" == "${legacy_version}" ]; then
legacymode=1
fi
diff --git a/lgsm/functions/core_logs.sh b/lgsm/functions/core_logs.sh
old mode 100644
new mode 100755
diff --git a/lgsm/functions/core_messages.sh b/lgsm/functions/core_messages.sh
old mode 100644
new mode 100755
index 8a13cc6ea..c467c2a4d
--- a/lgsm/functions/core_messages.sh
+++ b/lgsm/functions/core_messages.sh
@@ -529,3 +529,35 @@ fn_print_ascii_logo(){
echo -e "${lightyellow}LinuxGSM${default} ${lightyellow}888${default} ${lightyellow}888${default} ${lightyellow}888${default} ${lightyellow}Y8888Y${default} ${lightyellow}888${default} ${lightyellow}888${default} Y2012P88 Y8888P 888 888"
echo -e ""
}
+
+fn_print_restart_warning(){
+ fn_print_warn "${selfname} will be restarted"
+ fn_script_log_warn "${selfname} will be restarted"
+ totalseconds=3
+ for seconds in {3..1}; do
+ fn_print_warn "${selfname} will be restarted: ${totalseconds}"
+ totalseconds=$((totalseconds - 1))
+ sleep 1
+ if [ "${seconds}" == "0" ]; then
+ break
+ fi
+ done
+ fn_print_warn_nl "${selfname} will be restarted"
+}
+
+# Functions below are used to ensure that logs and UI correctly reflect the command it is actually running.
+# Useful when a command has to call upon another command causing the other command to overrite commandname variables
+
+# Used to remember the command that ran first.
+fn_firstcommand_set(){
+ if [ -z "${firstcommandname}" ]; then
+ firstcommandname="${commandname}"
+ firstcommandaction="${commandaction}"
+ fi
+}
+
+# Used to reset commandname variables to the command the script ran first.
+fn_firstcommand_reset(){
+ commandname="${firstcommandname}"
+ commandaction="${firstcommandaction}"
+}
diff --git a/lgsm/functions/core_steamcmd.sh b/lgsm/functions/core_steamcmd.sh
new file mode 100644
index 000000000..389880241
--- /dev/null
+++ b/lgsm/functions/core_steamcmd.sh
@@ -0,0 +1,322 @@
+#!/bin/bash
+# LinuxGSM core_steamcmd.sh function
+# Author: Daniel Gibbs
+# Website: https://linuxgsm.com
+# Description: Core functions for SteamCMD
+
+functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
+
+fn_install_steamcmd(){
+ if [ "${shortname}" == "ark" ]&&[ "${installsteamcmd}" == "1" ]; then
+ steamcmddir="${serverfiles}/Engine/Binaries/ThirdParty/SteamCMD/Linux"
+ fi
+ if [ ! -d "${steamcmddir}" ]; then
+ mkdir -p "${steamcmddir}"
+ fi
+ fn_fetch_file "http://media.steampowered.com/client/steamcmd_linux.tar.gz" "" "" "" "${tmpdir}" "steamcmd_linux.tar.gz" "" "norun" "noforce" "nomd5"
+ fn_dl_extract "${tmpdir}" "steamcmd_linux.tar.gz" "${steamcmddir}"
+ chmod +x "${steamcmddir}/steamcmd.sh"
+}
+
+fn_check_steamcmd_user(){
+ # Checks if steamuser is setup.
+ if [ "${steamuser}" == "username" ]; then
+ fn_print_fail_nl "Steam login not set. Update steamuser in ${configdirserver}"
+ echo -e " * Change steamuser=\"username\" to a valid steam login."
+ if [ -d "${lgsmlogdir}" ]; then
+ fn_script_log_fatal "Steam login not set. Update steamuser in ${configdirserver}"
+ fi
+ core_exit.sh
+ fi
+ # Anonymous user is set if steamuser is missing.
+ if [ -z "${steamuser}" ]; then
+ if [ -d "${lgsmlogdir}" ]; then
+ fn_script_log_info "Using anonymous Steam login"
+ fi
+ steamuser="anonymous"
+ steampass=''
+ fi
+}
+
+fn_check_steamcmd(){
+ # Checks if SteamCMD exists when starting or updating a server.
+ # Only install if steamcmd package is missing or steamcmd dir is missing.
+ if [ ! -f "${steamcmddir}/steamcmd.sh" ]&&[ -z "$(command -v steamcmd 2>/dev/null)" ]; then
+ if [ "${commandname}" == "INSTALL" ]; then
+ fn_install_steamcmd
+ else
+ fn_print_warn_nl "SteamCMD is missing"
+ fn_script_log_warn "SteamCMD is missing"
+ fn_install_steamcmd
+ fi
+ elif [ "${commandname}" == "INSTALL" ]; then
+ fn_print_information "SteamCMD is already installed..."
+ fn_print_ok_eol_nl
+ fi
+}
+
+fn_check_steamcmd_dir(){
+ # Worksround that pre-installs the correct steam directories to ensure all packages use the correct Standard.
+ # https://github.com/ValveSoftware/steam-for-linux/issues/6976#issuecomment-610446347
+
+ # Create Steam installation directory.
+ if [ ! -d "${XDG_DATA_HOME:="${HOME}/.local/share"}/Steam" ]; then
+ mkdir -p "${XDG_DATA_HOME:="${HOME}/.local/share"}/Steam"
+ fi
+
+ # Create common Steam directory.
+ if [ ! -d "${HOME}/.steam" ]; then
+ mkdir -p "${HOME}/.steam"
+ fi
+
+ # Symbolic links to Steam installation directory.
+ if [ ! -L "${HOME}/.steam/root" ]; then
+ if [ -d "${HOME}/.steam/root" ]; then
+ rm "${HOME}/.steam/root"
+ fi
+ ln -s "${XDG_DATA_HOME:="${HOME}/.local/share"}/Steam" "${HOME}/.steam/root"
+ fi
+
+ if [ ! -L "${HOME}/.steam/steam" ]; then
+ if [ -d "${HOME}/.steam/steam" ]; then
+ rm -rf "${HOME}/.steam/steam"
+ fi
+ ln -s "${XDG_DATA_HOME:="${HOME}/.local/share"}/Steam" "${HOME}/.steam/steam"
+ fi
+}
+
+fn_check_steamcmd_dir_legacy(){
+ # Remove old Steam installation directories ~/Steam and ${rootdir}/steamcmd
+ if [ -d "${rootdir}/steamcmd" ]&&[ "${steamcmddir}" == "${XDG_DATA_HOME:="${HOME}/.local/share"}/Steam" ]; then
+ rm -rf "${rootdir:?}/steamcmd"
+ fi
+
+ if [ -d "${HOME}/Steam" ]&&[ "${steamcmddir}" == "${XDG_DATA_HOME:="${HOME}/.local/share"}/Steam" ]; then
+ rm -rf "${HOME}/Steam"
+ fi
+}
+
+fn_check_steamcmd_ark(){
+ # Checks if SteamCMD exists in
+ # Engine/Binaries/ThirdParty/SteamCMD/Linux
+ # to allow ark mods to work
+ if [ ! -f "${serverfiles}/Engine/Binaries/ThirdParty/SteamCMD/Linux/steamcmd.sh" ]; then
+ installsteamcmd=1
+ if [ "${commandname}" == "INSTALL" ]; then
+ fn_install_steamcmd
+ else
+ fn_print_warn_nl "ARK mods SteamCMD is missing"
+ fn_script_log_warn "ARK mods SteamCMD is missing"
+ fn_install_steamcmd
+ fi
+ elif [ "${commandname}" == "INSTALL" ]; then
+ fn_print_information "ARK mods SteamCMD is already installed..."
+ fn_print_ok_eol_nl
+ fi
+}
+
+fn_check_steamcmd_clear(){
+ # Will remove steamcmd dir if steamcmd package is installed.
+ if [ "$(command -v steamcmd 2>/dev/null)" ]&&[ -d "${rootdir}/steamcmd" ]; then
+ rm -rf "${steamcmddir:?}"
+ exitcode=$?
+ if [ "${exitcode}" != 0 ]; then
+ fn_script_log_fatal "Removing ${rootdir}/steamcmd"
+ else
+ fn_script_log_pass "Removing ${rootdir}/steamcmd"
+ fi
+ fi
+}
+
+fn_check_steamcmd_exec(){
+ if [ "$(command -v steamcmd 2>/dev/null)" ]; then
+ steamcmdcommand="steamcmd"
+ else
+ steamcmdcommand="./steamcmd.sh"
+ fi
+}
+
+fn_update_steamcmd_localbuild(){
+ # Gets local build info.
+ fn_print_dots "Checking local build: ${remotelocation}"
+ fn_appmanifest_check
+ # Uses appmanifest to find local build.
+ localbuild=$(grep buildid "${appmanifestfile}" | tr '[:blank:]"' ' ' | tr -s ' ' | cut -d\ -f3)
+
+ # Set branch to public if no custom branch.
+ if [ -z "${branch}" ]; then
+ branch="public"
+ fi
+
+ # Checks if localbuild variable has been set.
+ if [ -z "${localbuild}" ]||[ "${localbuild}" == "null" ]; then
+ fn_print_fail "Checking local build: ${remotelocation}"
+ fn_script_log_fatal "Checking local build"
+ core_exit.sh
+ else
+ fn_print_ok "Checking local build: ${remotelocation}"
+ fn_script_log_pass "Checking local build"
+ fi
+}
+
+fn_update_steamcmd_remotebuild(){
+ # Gets remote build info.
+ if [ -d "${steamcmddir}" ]; then
+ cd "${steamcmddir}" || exit
+ fi
+
+ # Removes appinfo.vdf as a fix for not always getting up to date version info from SteamCMD.
+ if [ "$(find "${HOME}" -type f -name "appinfo.vdf" | wc -l)" -ne "0" ]; then
+ find "${HOME}" -type f -name "appinfo.vdf" -exec rm -f {} \;
+ fi
+
+ # password for branch not needed to check the buildid
+ remotebuild=$(${steamcmdcommand} +login "${steamuser}" "${steampass}" +app_info_update 1 +app_info_print "${appid}" +quit | sed -e '/"branches"/,/^}/!d' | sed -n "/\"${branch}\"/,/}/p" | grep -m 1 buildid | tr -cd '[:digit:]')
+
+ if [ "${firstcommandname}" != "INSTALL" ]; then
+ fn_print_dots "Checking remote build: ${remotelocation}"
+ # Checks if remotebuild variable has been set.
+ if [ -z "${remotebuild}" ]||[ "${remotebuild}" == "null" ]; then
+ fn_print_fail "Checking remote build: ${remotelocation}"
+ fn_script_log_fatal "Checking remote build"
+ core_exit.sh
+ else
+ fn_print_ok "Checking remote build: ${remotelocation}"
+ fn_script_log_pass "Checking remote build"
+ fi
+ else
+ # Checks if remotebuild variable has been set.
+ if [ -z "${remotebuild}" ]||[ "${remotebuild}" == "null" ]; then
+ fn_print_failure "Unable to get remote build"
+ fn_script_log_fatal "Unable to get remote build"
+ core_exit.sh
+ fi
+ fi
+}
+
+fn_update_steamcmd_compare(){
+ fn_print_dots "Checking for update: ${remotelocation}"
+ if [ "${localbuild}" != "${remotebuild}" ]; then
+ fn_print_ok_nl "Checking for update: ${remotelocation}"
+ echo -en "\n"
+ echo -e "Update available"
+ echo -e "* Local build: ${red}${localbuild}${default}"
+ echo -e "* Remote build: ${green}${remotebuild}${default}"
+ if [ -n "${branch}" ]; then
+ echo -e "* Branch: ${branch}"
+ fi
+ if [ -n "${betapassword}" ]; then
+ echo -e "* Branch password: ${betapassword}"
+ fi
+ echo -e "https://steamdb.info/app/${appid}/"
+ echo -en "\n"
+ fn_script_log_info "Update available"
+ fn_script_log_info "Local build: ${localbuild}"
+ fn_script_log_info "Remote build: ${remotebuild}"
+ if [ -n "${branch}" ]; then
+ fn_script_log_info "Branch: ${branch}"
+ fi
+ if [ -n "${betapassword}" ]; then
+ fn_script_log_info "Branch password: ${betapassword}"
+ fi
+ fn_script_log_info "${localbuild} > ${remotebuild}"
+
+ if [ "${commandname}" == "UPDATE" ]; then
+ unset updateonstart
+ check_status.sh
+ # If server stopped.
+ if [ "${status}" == "0" ]; then
+ fn_dl_steamcmd
+ # If server started.
+ else
+ fn_print_restart_warning
+ exitbypass=1
+ command_stop.sh
+ fn_firstcommand_reset
+ exitbypass=1
+ fn_dl_steamcmd
+ exitbypass=1
+ command_start.sh
+ fn_firstcommand_reset
+ unset exitbypass
+ fi
+ date +%s > "${lockdir}/lastupdate.lock"
+ alert="update"
+ elif [ "${commandname}" == "CHECK-UPDATE" ]; then
+ alert="check-update"
+ fi
+ alert.sh
+ else
+ fn_print_ok_nl "Checking for update: ${remotelocation}"
+ echo -en "\n"
+ echo -e "No update available"
+ echo -e "* Local build: ${green}${localbuild}${default}"
+ echo -e "* Remote build: ${green}${remotebuild}${default}"
+ if [ -n "${branch}" ]; then
+ echo -e "* Branch: ${branch}"
+ fi
+ if [ -n "${betapassword}" ]; then
+ echo -e "* Branch password: ${betapassword}"
+ fi
+ echo -e "https://steamdb.info/app/${appid}/"
+ echo -en "\n"
+ fn_script_log_info "No update available"
+ fn_script_log_info "Local build: ${localbuild}"
+ fn_script_log_info "Remote build: ${remotebuild}"
+ if [ -n "${branch}" ]; then
+ fn_script_log_info "Branch: ${branch}"
+ fi
+ if [ -n "${betapassword}" ]; then
+ fn_script_log_info "Branch password: ${betapassword}"
+ fi
+ fi
+}
+
+fn_appmanifest_info(){
+ appmanifestfile=$(find "${serverfiles}" -type f -name "appmanifest_${appid}.acf")
+ appmanifestfilewc=$(find "${serverfiles}" -type f -name "appmanifest_${appid}.acf" | wc -l)
+}
+
+fn_appmanifest_check(){
+ fn_appmanifest_info
+ # Multiple or no matching appmanifest files may sometimes be present.
+ # This error is corrected if required.
+ if [ "${appmanifestfilewc}" -ge "2" ]; then
+ fn_print_error "Multiple appmanifest_${appid}.acf files found"
+ fn_script_log_error "Multiple appmanifest_${appid}.acf files found"
+ fn_print_dots "Removing x${appmanifestfilewc} appmanifest_${appid}.acf files"
+ for appfile in ${appmanifestfile}; do
+ rm -f "${appfile:?}"
+ done
+ appmanifestfilewc1="${appmanifestfilewc}"
+ fn_appmanifest_info
+ # if error can not be resolved.
+ if [ "${appmanifestfilewc}" -ge "2" ]; then
+ fn_print_fail "Unable to remove x${appmanifestfilewc} appmanifest_${appid}.acf files"
+ fn_script_log_fatal "Unable to remove x${appmanifestfilewc} appmanifest_${appid}.acf files"
+ echo -e "* Check user permissions"
+ for appfile in ${appmanifestfile}; do
+ echo -e " ${appfile}"
+ done
+ core_exit.sh
+ else
+ fn_print_ok "Removed x${appmanifestfilewc1} appmanifest_${appid}.acf files"
+ fn_script_log_pass "Removed x${appmanifestfilewc1} appmanifest_${appid}.acf files"
+ fn_print_info_nl "Forcing update to correct issue"
+ fn_script_log_info "Forcing update to correct issue"
+ fn_dl_steamcmd
+ fi
+ elif [ "${appmanifestfilewc}" -eq "0" ]; then
+ fn_print_error_nl "No appmanifest_${appid}.acf found"
+ fn_script_log_error "No appmanifest_${appid}.acf found"
+ fn_print_info_nl "Forcing update to correct issue"
+ fn_script_log_info "Forcing update to correct issue"
+ fn_dl_steamcmd
+ fn_appmanifest_info
+ if [ "${appmanifestfilewc}" -eq "0" ]; then
+ fn_print_fail_nl "Still no appmanifest_${appid}.acf found"
+ fn_script_log_fatal "Still no appmanifest_${appid}.acf found"
+ core_exit.sh
+ fi
+ fi
+}
diff --git a/lgsm/functions/core_trap.sh b/lgsm/functions/core_trap.sh
old mode 100644
new mode 100755
index f943c5c33..769c27c96
--- a/lgsm/functions/core_trap.sh
+++ b/lgsm/functions/core_trap.sh
@@ -7,7 +7,13 @@
functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
fn_exit_trap(){
+ if [ -z "${exitcode}" ]; then
+ exitcode=$?
+ fi
echo -e ""
+ if [ -z "${exitcode}" ]; then
+ exitcode=0
+ fi
core_exit.sh
}
diff --git a/lgsm/functions/fix.sh b/lgsm/functions/fix.sh
old mode 100644
new mode 100755
index a42f0e51d..2e2931e41
--- a/lgsm/functions/fix.sh
+++ b/lgsm/functions/fix.sh
@@ -21,7 +21,7 @@ fn_fix_msg_start_nl(){
}
fn_fix_msg_end(){
- if [ $? -ne 0 ]; then
+ if [ $? != 0 ]; then
fn_print_error_nl "Applying ${fixname} fix: ${gamename}"
fn_script_log_error "Applying ${fixname} fix: ${gamename}"
else
@@ -40,14 +40,14 @@ if [ "${commandname}" != "INSTALL" ]&&[ -z "${fixbypass}" ]; then
fix_arma3.sh
elif [ "${shortname}" == "ark" ]; then
fix_ark.sh
+ elif [ "${shortname}" == "bo" ]; then
+ fix_bo.sh
elif [ "${shortname}" == "csgo" ]; then
fix_csgo.sh
elif [ "${shortname}" == "cmw" ]; then
fix_cmw.sh
elif [ "${shortname}" == "dst" ]; then
fix_dst.sh
- elif [ "${shortname}" == "ges" ]; then
- fix_ges.sh
elif [ "${shortname}" == "hw" ]; then
fix_hw.sh
elif [ "${shortname}" == "ins" ]; then
@@ -66,16 +66,16 @@ if [ "${commandname}" != "INSTALL" ]&&[ -z "${fixbypass}" ]; then
fix_sfc.sh
elif [ "${shortname}" == "sof2" ]; then
fix_sof2.sh
- elif [ "${shortname}" == "ss3" ]; then
- fix_ss3.sh
+ elif [ "${shortname}" == "squad" ]; then
+ fix_squad.sh
+ elif [ "${shortname}" == "st" ]; then
+ fix_st.sh
elif [ "${shortname}" == "tf2" ]; then
fix_tf2.sh
elif [ "${shortname}" == "terraria" ]; then
fix_terraria.sh
elif [ "${shortname}" == "ts3" ]; then
fix_ts3.sh
- elif [ "${shortname}" == "tu" ]; then
- fix_tu.sh
elif [ "${shortname}" == "mcb" ]; then
fix_mcb.sh
elif [ "${shortname}" == "mta" ]; then
@@ -91,7 +91,7 @@ fi
# Fixes that are run on install only.
if [ "${commandname}" == "INSTALL" ]; then
- if [ "${shortname}" == "av" ]||[ "${shortname}" == "cmw" ]||[ "${shortname}" == "kf" ]||[ "${shortname}" == "kf2" ]||[ "${shortname}" == "onset" ]||[ "${shortname}" == "ro" ]||[ "${shortname}" == "ut2k4" ]||[ "${shortname}" == "ut" ]||[ "${shortname}" == "ut3" ]; then
+ if [ "${shortname}" == "av" ]||[ "${shortname}" == "cmw" ]||[ "${shortname}" == "kf" ]||[ "${shortname}" == "kf2" ]||[ "${shortname}" == "onset" ]||[ "${shortname}" == "ro" ]||[ "${shortname}" == "samp" ]||[ "${shortname}" == "ut2k4" ]||[ "${shortname}" == "ut" ]||[ "${shortname}" == "ut3" ]; then
echo -e ""
echo -e "Applying Post-Install Fixes"
echo -e "================================="
@@ -105,6 +105,8 @@ if [ "${commandname}" == "INSTALL" ]; then
fix_kf2.sh
elif [ "${shortname}" == "ro" ]; then
fix_ro.sh
+ elif [ "${shortname}" == "samp" ]; then
+ fix_samp.sh
elif [ "${shortname}" == "ut2k4" ]; then
fix_ut2k4.sh
elif [ "${shortname}" == "ut" ]; then
diff --git a/lgsm/functions/fix_ark.sh b/lgsm/functions/fix_ark.sh
old mode 100644
new mode 100755
index 3c1355b1e..4c4cf3f32
--- a/lgsm/functions/fix_ark.sh
+++ b/lgsm/functions/fix_ark.sh
@@ -7,18 +7,18 @@
functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
# removes mulitple appworkshop_346110.acf if found.
-steamappsfilewc=$(find ${HOME} -name appworkshop_346110.acf | wc -l)
+steamappsfilewc="$(find "${HOME}" -name appworkshop_346110.acf | wc -l)"
if [ "${steamappsfilewc}" -gt "1" ]; then
fixname="multiple appworkshop acf files"
fn_fix_msg_start
- find ${HOME} -name appworkshop_346110.acf -exec rm -f {} \;
+ find "${HOME}" -name appworkshop_346110.acf -exec rm -f {} \;
fn_fix_msg_end
elif [ "${steamappsfilewc}" -eq "1" ]; then
# Steam mods directory selecter
# This allows LinxuGSM to select either ~/.steam or ~/Steam. depending on what is being used
- steamappsfile=$(find ${HOME} -name appworkshop_346110.acf)
+ steamappsfile=$(find "${HOME}" -name appworkshop_346110.acf)
steamappsdir=$(dirname "${steamappsfile}")
- steamappspath=$(cd "${steamappsdir}"|| return; cd ../;pwd)
+ steamappspath=$(cd "${steamappsdir}" || return; cd ../;pwd)
# removes the symlink if exists.
# fixes issue with older versions of LinuxGSM linking to /home/arkserver/steamcmd
@@ -40,7 +40,7 @@ elif [ "${steamappsfilewc}" -eq "1" ]; then
fi
# if the steamapps symlink is incorrect unlink it.
- if [ -d "${serverfiles}/Engine/Binaries/ThirdParty/SteamCMD/Linux" ]&&[ -L "${serverfiles}/Engine/Binaries/ThirdParty/SteamCMD/Linux/steamapps" ]&&[ "$(readlink ${serverfiles}/Engine/Binaries/ThirdParty/SteamCMD/Linux/steamapps)" != "${steamappspath}" ]; then
+ if [ -d "${serverfiles}/Engine/Binaries/ThirdParty/SteamCMD/Linux" ]&&[ -L "${serverfiles}/Engine/Binaries/ThirdParty/SteamCMD/Linux/steamapps" ]&&[ "$(readlink "${serverfiles}/Engine/Binaries/ThirdParty/SteamCMD/Linux/steamapps")" != "${steamappspath}" ]; then
fixname="incorrect steamapps symlink"
fn_fix_msg_start
unlink "${serverfiles:?}/Engine/Binaries/ThirdParty/SteamCMD/Linux/steamapps"
diff --git a/lgsm/functions/fix_arma3.sh b/lgsm/functions/fix_arma3.sh
old mode 100644
new mode 100755
diff --git a/lgsm/functions/fix_av.sh b/lgsm/functions/fix_av.sh
old mode 100644
new mode 100755
diff --git a/lgsm/functions/fix_bo.sh b/lgsm/functions/fix_bo.sh
new file mode 100644
index 000000000..545504f63
--- /dev/null
+++ b/lgsm/functions/fix_bo.sh
@@ -0,0 +1,9 @@
+#!/bin/bash
+# LinuxGSM fix_hw.sh function
+# Author: Daniel Gibbs
+# Website: https://linuxgsm.com
+# Description: Resolves various issues with Ballistic Overkill.
+
+functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
+
+export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:${serverfiles}:${serverfiles}/BODS_Data/Plugins/x86_64"
diff --git a/lgsm/functions/fix_cmw.sh b/lgsm/functions/fix_cmw.sh
old mode 100644
new mode 100755
index 7dc502be6..2f517b1b7
--- a/lgsm/functions/fix_cmw.sh
+++ b/lgsm/functions/fix_cmw.sh
@@ -4,26 +4,13 @@
# Website: https://linuxgsm.com
# Description: Resolves the issue of the not starting server on linux
-fixname="steam_appid.txt"
-
if [ ! -f "${executabledir}/steam_appid.txt" ]; then
+ fixname="steam_appid.txt"
fn_fix_msg_start
echo 219640 > "${executabledir}/steam_appid.txt"
fn_fix_msg_end
fi
-
-if [ ! -f "${executabledir}/lib/steamclient.so" ]; then
- fixname="steamclient.so"
- fn_fix_msg_start
- if [ -f "${HOME}/.steam/steamcmd/linux32/steamclient.so" ]; then
- cp "${steamcmddir}/linux32/steamclient.so" "${executabledir}/lib/steamclient.so"
- elif [ -f "${steamcmddir}/linux32/steamclient.so" ]; then
- cp "${steamcmddir}/linux32/steamclient.so" "${executabledir}/lib/steamclient.so"
- fi
- fn_fix_msg_end
-fi
-
if [ ! -f "${servercfgfullpath}" ]; then
fn_fix_msg_start
fixname="copy config"
diff --git a/lgsm/functions/fix_csgo.sh b/lgsm/functions/fix_csgo.sh
old mode 100644
new mode 100755
diff --git a/lgsm/functions/fix_dst.sh b/lgsm/functions/fix_dst.sh
old mode 100644
new mode 100755
diff --git a/lgsm/functions/fix_ges.sh b/lgsm/functions/fix_ges.sh
deleted file mode 100644
index 6065f9ba8..000000000
--- a/lgsm/functions/fix_ges.sh
+++ /dev/null
@@ -1,10 +0,0 @@
-#!/bin/bash
-# LinuxGSM fix_ges.sh function
-# Author: Daniel Gibbs
-# Website: https://linuxgsm.com
-# Description: Resolves various issues with GoldenEye: Source.
-
-functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
-
-# Fixes: MALLOC_CHECK_ needing to be set to 0.
-export MALLOC_CHECK_=0
diff --git a/lgsm/functions/fix_hw.sh b/lgsm/functions/fix_hw.sh
old mode 100644
new mode 100755
index 6230f7b46..4fc3dcd0d
--- a/lgsm/functions/fix_hw.sh
+++ b/lgsm/functions/fix_hw.sh
@@ -6,30 +6,4 @@
functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
-if [ "${shortname}" == "hw" ]; then
- # Fixes: [S_API FAIL] SteamAPI_Init() failed; unable to locate a running instance of Steam, or a local steamclient.so.
- if [ ! -f "${serverfiles}/Hurtworld_Data/Plugins/x86/steamclient.so" ]; then
- fixname="steamclient.so x86"
- fn_fix_msg_start
- if [ -f "${HOME}/.steam/steamcmd/linux32/steamclient.so" ]; then
- cp "${steamcmddir}/linux32/steamclient.so" "${serverfiles}/Hurtworld_Data/Plugins/x86/steamclient.so" >> "${lgsmlog}"
- elif [ -f "${steamcmddir}/linux32/steamclient.so" ]; then
- cp "${steamcmddir}/linux32/steamclient.so" "${serverfiles}/Hurtworld_Data/Plugins/x86/steamclient.so" >> "${lgsmlog}"
- else
- :
- fi
- fn_fix_msg_end
- fi
- if [ ! -f "${serverfiles}/Hurtworld_Data/Plugins/x86_64/steamclient.so" ]; then
- fixname="steamclient.so x86_64"
- fn_fix_msg_start
- if [ -f "${HOME}/.steam/steamcmd/linux64/steamclient.so" ]; then
- cp "${steamcmddir}/linux64/steamclient.so" "${serverfiles}/Hurtworld_Data/Plugins/x86_64/steamclient.so" >> "${lgsmlog}"
- elif [ -f "${steamcmddir}/linux64/steamclient.so" ]; then
- cp "${steamcmddir}/linux64/steamclient.so" "${serverfiles}/Hurtworld_Data/Plugins/x86_64/steamclient.so" >> "${lgsmlog}"
- else
- :
- fi
- fn_fix_msg_end
- fi
-fi
+export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:${serverfiles}:${serverfiles}/Hurtworld_Data/Plugins/x86_64"
diff --git a/lgsm/functions/fix_ins.sh b/lgsm/functions/fix_ins.sh
old mode 100644
new mode 100755
diff --git a/lgsm/functions/fix_kf.sh b/lgsm/functions/fix_kf.sh
old mode 100644
new mode 100755
index f0c29ee6f..c4a294515
--- a/lgsm/functions/fix_kf.sh
+++ b/lgsm/functions/fix_kf.sh
@@ -21,11 +21,15 @@ echo -e "forcing server restart..."
fn_sleep_time
exitbypass=1
command_start.sh
+fn_firstcommand_reset
sleep 5
exitbypass=1
command_stop.sh
+fn_firstcommand_reset
exitbypass=1
command_start.sh
+fn_firstcommand_reset
sleep 5
exitbypass=1
command_stop.sh
+fn_firstcommand_reset
diff --git a/lgsm/functions/fix_kf2.sh b/lgsm/functions/fix_kf2.sh
old mode 100644
new mode 100755
index 77edd77e8..e826dea2a
--- a/lgsm/functions/fix_kf2.sh
+++ b/lgsm/functions/fix_kf2.sh
@@ -14,6 +14,8 @@ fn_print_information "starting ${gamename} server to generate configs."
fn_sleep_time
exitbypass=1
command_start.sh
+fn_firstcommand_reset
sleep 10
exitbypass=1
command_stop.sh
+fn_firstcommand_reset
diff --git a/lgsm/functions/fix_mcb.sh b/lgsm/functions/fix_mcb.sh
old mode 100644
new mode 100755
diff --git a/lgsm/functions/fix_mta.sh b/lgsm/functions/fix_mta.sh
old mode 100644
new mode 100755
diff --git a/lgsm/functions/fix_nmrih.sh b/lgsm/functions/fix_nmrih.sh
old mode 100644
new mode 100755
diff --git a/lgsm/functions/fix_onset.sh b/lgsm/functions/fix_onset.sh
old mode 100644
new mode 100755
diff --git a/lgsm/functions/fix_ro.sh b/lgsm/functions/fix_ro.sh
old mode 100644
new mode 100755
index 9f08d56d7..c9254aa64
--- a/lgsm/functions/fix_ro.sh
+++ b/lgsm/functions/fix_ro.sh
@@ -24,11 +24,15 @@ echo -e "forcing server restart..."
fn_sleep_time
exitbypass=1
command_start.sh
+fn_firstcommand_reset
sleep 5
exitbypass=1
command_stop.sh
+fn_firstcommand_reset
exitbypass=1
command_start.sh
+fn_firstcommand_reset
sleep 5
exitbypass=1
command_stop.sh
+fn_firstcommand_reset
diff --git a/lgsm/functions/fix_rust.sh b/lgsm/functions/fix_rust.sh
old mode 100644
new mode 100755
index 9ceff7b29..607af491b
--- a/lgsm/functions/fix_rust.sh
+++ b/lgsm/functions/fix_rust.sh
@@ -7,4 +7,4 @@
functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
# Fixes: [Raknet] Server Shutting Down (Shutting Down).
-export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:${systemdir}/RustDedicated_Data/Plugins/x86_64"
+export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:${serverfiles}:${serverfiles}/RustDedicated_Data/Plugins/x86_64"
diff --git a/lgsm/functions/fix_rw.sh b/lgsm/functions/fix_rw.sh
old mode 100644
new mode 100755
diff --git a/lgsm/functions/fix_samp.sh b/lgsm/functions/fix_samp.sh
new file mode 100644
index 000000000..b69779019
--- /dev/null
+++ b/lgsm/functions/fix_samp.sh
@@ -0,0 +1,33 @@
+#!/bin/bash
+# LinuxGSM fix_sfc.sh function
+# Author: Christian Birk
+# Website: https://linuxgsm.com
+# Description: Resolves issue that the default rcon password is not changed
+
+functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
+
+if [ -f "${servercfgfullpath}" ]; then
+ # check if default password is set "changeme"
+ currentpass=$(grep -E "^rcon_password" "${servercfgfullpath}" | sed 's/^rcon_password //' )
+ defaultpass="changeme"
+ # check if default password is set
+ if [ "${currentpass}" == "${defaultpass}" ]; then
+ fixname="change default rcon password"
+ fn_fix_msg_start
+ fn_script_log_info "changing rcon/admin password."
+ random=$(tr -dc A-Za-z0-9_ < /dev/urandom | head -c 8 | xargs)
+ rconpass="admin${random}"
+ sed -i "s/rcon_password changeme/rcon_password ${rconpass}/g" "${servercfgfullpath}"
+ fn_fix_msg_end
+ fi
+ # check if the hostname is the default name
+ currenthostname=$(grep -E "^hostname" "${servercfgfullpath}" | sed 's/^hostname //')
+ defaulthostname="SA-MP 0.3 Server"
+ if [ "${currenthostname}" == "${defaulthostname}" ]; then
+ fixname="change default hostname"
+ fn_fix_msg_start
+ fn_script_log_info "changing default hostname to LinuxGSM"
+ sed -i "s/hostname ${defaulthostname}/hostname LinuxGSM/g" "${servercfgfullpath}"
+ fn_fix_msg_end
+ fi
+fi
diff --git a/lgsm/functions/fix_sdtd.sh b/lgsm/functions/fix_sdtd.sh
old mode 100644
new mode 100755
index 91c94897a..2709102c4
--- a/lgsm/functions/fix_sdtd.sh
+++ b/lgsm/functions/fix_sdtd.sh
@@ -6,4 +6,4 @@
functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
-export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:${serverfiles}"
+export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:${serverfiles}/7DaysToDieServer_Data/Plugins/x86_64"
diff --git a/lgsm/functions/fix_sfc.sh b/lgsm/functions/fix_sfc.sh
old mode 100644
new mode 100755
diff --git a/lgsm/functions/fix_sof2.sh b/lgsm/functions/fix_sof2.sh
old mode 100644
new mode 100755
diff --git a/lgsm/functions/fix_squad.sh b/lgsm/functions/fix_squad.sh
new file mode 100644
index 000000000..8ec84a86f
--- /dev/null
+++ b/lgsm/functions/fix_squad.sh
@@ -0,0 +1,23 @@
+#!/bin/bash
+# LinuxGSM fix_squad.sh function
+# Author: Christian Birk
+# Website: https://linuxgsm.com
+# Description: Resolves various issues with Squad.
+
+# As the server base dir changed for the game, we need to migrate the default config from the old to the new location
+oldservercfg="${serverfiles}/Squad/ServerConfig/${servercfg}"
+if [ -f "${oldservercfg}" ]&&[ -f "${servercfgfullpath}" ]; then
+ # diff old and new config - if it is different move the old config over the new one
+ if [ "$(diff -c "${oldservercfg}" "${servercfgfullpath}" | wc -l)" -gt 0 ]; then
+ fixname="Migrate server config to new Game folder"
+ fn_fix_msg_start
+ mv -v "${oldservercfg}" "${servercfgfullpath}"
+ fn_fix_msg_end
+ else
+ fixname="remove the same config from old configdir"
+ fn_fix_msg_start
+ rm -f "${oldservercfg}"
+ fn_fix_msg_end
+
+ fi
+fi
diff --git a/lgsm/functions/fix_ss3.sh b/lgsm/functions/fix_ss3.sh
deleted file mode 100644
index 6bea53861..000000000
--- a/lgsm/functions/fix_ss3.sh
+++ /dev/null
@@ -1,24 +0,0 @@
-#!/bin/bash
-# LinuxGSM fix_ss3.sh function
-# Author: Daniel Gibbs
-# Website: https://linuxgsm.com
-# Description: Resolves various issues with Serious Sam 3.
-
-functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
-
-# Fixes: https://steamcommunity.com/app/41070/discussions/0/353916981477716386/
-if [ ! -f "${serverfiles}/Bin/steamclient.so" ]||[ "$(diff "${HOME}/.steam/steamcmd/linux32/steamclient.so" "${serverfiles}/Bin/steamclient.so" 2>/dev/null)" ]; then
- fixname="steamclient.so"
- fn_fix_msg_start
- cp -f "${HOME}/.steam/steamcmd/linux32/steamclient.so" "${serverfiles}/Bin/steamclient.so"
- fn_fix_msg_end
-fi
-
-# Fixes: .steam/bin32/libsteam.so: cannot open shared object file: No such file or directory
-if [ ! -f "${HOME}/.steam/bin32/libsteam.so" ]; then
- fixname="libsteam.so"
- fn_fix_msg_start
- mkdir -pv "${HOME}/.steam/bin32" >> "${lgsmlog}"
- cp "${serverfiles}/Bin/libsteam.so" "${HOME}/.steam/bin32/libsteam.so" >> "${lgsmlog}"
- fn_fix_msg_end
-fi
diff --git a/lgsm/functions/fix_st.sh b/lgsm/functions/fix_st.sh
new file mode 100644
index 000000000..2495264da
--- /dev/null
+++ b/lgsm/functions/fix_st.sh
@@ -0,0 +1,10 @@
+#!/bin/bash
+# LinuxGSM fix_rust.sh function
+# Author: Daniel Gibbs
+# Website: https://linuxgsm.com
+# Description: Resolves startup issue with Stationeers.
+
+functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
+
+# Fixes: [Raknet] Server Shutting Down (Shutting Down).
+export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:${serverfiles}:${serverfiles}/rocketstation_DedicatedServer_Data/Plugins/x86_64"
diff --git a/lgsm/functions/fix_steamcmd.sh b/lgsm/functions/fix_steamcmd.sh
old mode 100644
new mode 100755
index 0a2f774f1..01465b45e
--- a/lgsm/functions/fix_steamcmd.sh
+++ b/lgsm/functions/fix_steamcmd.sh
@@ -6,15 +6,54 @@
functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
+# function to simplify the steamclient.so fix
+# example
+# fn_fix_steamclient_so 32|64 (bit) "${serverfiles}/linux32/"
+fn_fix_steamclient_so(){
+ # $1 type of fix 32 or 64 as possible values
+ # $2 as destination where the lib will be copied to
+ if [ "$1" == "32" ]; then
+ # steamclient.so x86 fix.
+ if [ ! -f "${2}/steamclient.so" ]; then
+ fixname="steamclient.so x86"
+ fn_fix_msg_start
+ if [ ! -d "${2}" ]; then
+ mkdir -p "${2}"
+ fi
+ if [ -f "${HOME}/.steam/steamcmd/linux32/steamclient.so" ]; then
+ cp "${HOME}/.steam/steamcmd/linux32/steamclient.so" "${2}/steamclient.so"
+ elif [ -f "${steamcmddir}/linux32/steamclient.so" ]; then
+ cp "${steamcmddir}/linux32/steamclient.so" "${2}/steamclient.so"
+ fi
+ fn_fix_msg_end
+ fi
+ elif [ "$1" == "64" ]; then
+ # steamclient.so x86_64 fix.
+ if [ ! -f "${2}/steamclient.so" ]; then
+ fixname="steamclient.so x86_64"
+ fn_fix_msg_start
+ if [ ! -d "${2}" ]; then
+ mkdir -p "${2}"
+ fi
+ if [ -f "${HOME}/.steam/steamcmd/linux64/steamclient.so" ]; then
+ cp "${HOME}/.steam/steamcmd/linux64/steamclient.so" "${2}/steamclient.so"
+ elif [ -f "${steamcmddir}/linux64/steamclient.so" ]; then
+ cp "${steamcmddir}/linux64/steamclient.so" "${2}/steamclient.so"
+ fi
+ fn_fix_msg_end
+ fi
+ fi
+}
+
# Helps fix: [S_API FAIL] SteamAPI_Init() failed; unable to locate a running instance of Steam,or a local steamclient.so.
if [ ! -f "${HOME}/.steam/sdk64/steamclient.so" ]; then
fixname="steamclient.so sdk64"
fn_fix_msg_start
- mkdir -pv "${HOME}/.steam/sdk64" >> "${lgsmlog}"
+ mkdir -p "${HOME}/.steam/sdk64"
if [ -f "${HOME}/.steam/steamcmd/linux64/steamclient.so" ]; then
- cp "${steamcmddir}/linux64/steamclient.so" "${HOME}/.steam/sdk64/steamclient.so" >> "${lgsmlog}"
+ cp "${HOME}/.steam/steamcmd/linux64/steamclient.so" "${HOME}/.steam/sdk64/steamclient.so"
elif [ -f "${steamcmddir}/linux64/steamclient.so" ]; then
- cp "${steamcmddir}/linux64/steamclient.so" "${HOME}/.steam/sdk64/steamclient.so" >> "${lgsmlog}"
+ cp "${steamcmddir}/linux64/steamclient.so" "${HOME}/.steam/sdk64/steamclient.so"
fi
fn_fix_msg_end
fi
@@ -23,11 +62,38 @@ fi
if [ ! -f "${HOME}/.steam/sdk32/steamclient.so" ]; then
fixname="steamclient.so sdk32"
fn_fix_msg_start
- mkdir -pv "${HOME}/.steam/sdk32" >> "${lgsmlog}"
+ mkdir -p "${HOME}/.steam/sdk32"
if [ -f "${HOME}/.steam/steamcmd/linux32/steamclient.so" ]; then
- cp "${steamcmddir}/linux32/steamclient.so" "${HOME}/.steam/sdk32/steamclient.so" >> "${lgsmlog}"
+ cp "${HOME}/.steam/steamcmd/linux32/steamclient.so" "${HOME}/.steam/sdk32/steamclient.so"
elif [ -f "${steamcmddir}/linux32/steamclient.so" ]; then
- cp "${steamcmddir}/linux32/steamclient.so" "${HOME}/.steam/sdk32/steamclient.so" >> "${lgsmlog}"
+ cp "${steamcmddir}/linux32/steamclient.so" "${HOME}/.steam/sdk32/steamclient.so"
fi
fn_fix_msg_end
fi
+
+# steamclient.so fixes
+if [ "${shortname}" == "bo" ]; then
+ fn_fix_steamclient_so "32" "${serverfiles}/BODS_Data/Plugins/x86"
+ fn_fix_steamclient_so "64" "${serverfiles}/BODS_Data/Plugins/x86_64"
+elif [ "${shortname}" == "cmw" ]; then
+ fn_fix_steamclient_so "32" "${executabledir}/lib"
+elif [ "${shortname}" == "cs" ]; then
+ fn_fix_steamclient_so "32" "${serverfiles}"
+elif [ "${shortname}" == "col" ]; then
+ fn_fix_steamclient_so "64" "${serverfiles}"
+elif [ "${shortname}" == "ins" ]; then
+ fn_fix_steamclient_so "32" "${serverfiles}/bin"
+elif [ "${shortname}" == "pz" ]; then
+ fn_fix_steamclient_so "32" "${serverfiles}/linux32"
+ fn_fix_steamclient_so "64" "${serverfiles}/linux64"
+elif [ "${shortname}" == "pvr" ]; then
+ fn_fix_steamclient_so "64" "${executabledir}"
+elif [ "${shortname}" == "ss3" ]; then
+ fn_fix_steamclient_so "32" "${serverfiles}/Bin"
+elif [ "${shortname}" == "tu" ];then
+ fn_fix_steamclient_so "64" "${executabledir}"
+elif [ "${shortname}" == "unt" ]; then
+ fn_fix_steamclient_so "64" "${serverfiles}"
+elif [ "${shortname}" == "wurm" ]; then
+ fn_fix_steamclient_so "64" "${serverfiles}/nativelibs"
+fi
diff --git a/lgsm/functions/fix_terraria.sh b/lgsm/functions/fix_terraria.sh
old mode 100644
new mode 100755
diff --git a/lgsm/functions/fix_tf2.sh b/lgsm/functions/fix_tf2.sh
old mode 100644
new mode 100755
diff --git a/lgsm/functions/fix_ts3.sh b/lgsm/functions/fix_ts3.sh
old mode 100644
new mode 100755
diff --git a/lgsm/functions/fix_tu.sh b/lgsm/functions/fix_tu.sh
deleted file mode 100644
index 1f01fd7b3..000000000
--- a/lgsm/functions/fix_tu.sh
+++ /dev/null
@@ -1,17 +0,0 @@
-#!/bin/bash
-# LinuxGSM fix_tu.sh function
-# Author: Daniel Gibbs
-# Website: https://linuxgsm.com
-# Description: Resolves various issues with Tower Unite.
-
-functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
-
-if [ "${shortname}" == "tu" ]; then
- # Fixes: [S_API FAIL] SteamAPI_Init() failed; unable to locate a running instance of Steam, or a local steamclient.so.
- if [ ! -f "${executabledir}/steamclient.so" ]; then
- fixname="steamclient.so"
- fn_fix_msg_start
- cp -v "${serverfiles}/linux64/steamclient.so" "${executabledir}/steamclient.so" >> "${lgsmlog}"
- fn_fix_msg_end
- fi
-fi
diff --git a/lgsm/functions/fix_unt.sh b/lgsm/functions/fix_unt.sh
old mode 100644
new mode 100755
index 60f3d2edf..d030ef318
--- a/lgsm/functions/fix_unt.sh
+++ b/lgsm/functions/fix_unt.sh
@@ -6,5 +6,4 @@
functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
-# steamclient.so: cannot open shared object file: No such file or directory
-export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:${serverfiles}:${serverfiles}/linux64"
+export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:${serverfiles}:${serverfiles}/Unturned_Headless_Data/Plugins/x86_64"
diff --git a/lgsm/functions/fix_ut.sh b/lgsm/functions/fix_ut.sh
old mode 100644
new mode 100755
diff --git a/lgsm/functions/fix_ut2k4.sh b/lgsm/functions/fix_ut2k4.sh
old mode 100644
new mode 100755
index fa2d29bf5..cc1621815
--- a/lgsm/functions/fix_ut2k4.sh
+++ b/lgsm/functions/fix_ut2k4.sh
@@ -21,11 +21,15 @@ echo -e "forcing server restart."
fn_sleep_time
exitbypass=1
command_start.sh
+fn_firstcommand_reset
sleep 5
exitbypass=1
command_stop.sh
+fn_firstcommand_reset
exitbypass=1
command_start.sh
+fn_firstcommand_reset
sleep 5
exitbypass=1
command_stop.sh
+fn_firstcommand_reset
diff --git a/lgsm/functions/fix_ut3.sh b/lgsm/functions/fix_ut3.sh
old mode 100644
new mode 100755
index e6c018d00..402683bf1
--- a/lgsm/functions/fix_ut3.sh
+++ b/lgsm/functions/fix_ut3.sh
@@ -14,6 +14,8 @@ fn_print_information "starting ${gamename} server to generate configs."
fn_sleep_time
exitbypass=1
command_start.sh
+fn_firstcommand_reset
sleep 10
exitbypass=1
command_stop.sh
+fn_firstcommand_reset
diff --git a/lgsm/functions/fix_wurm.sh b/lgsm/functions/fix_wurm.sh
old mode 100644
new mode 100755
index 809651d55..bf53e35b0
--- a/lgsm/functions/fix_wurm.sh
+++ b/lgsm/functions/fix_wurm.sh
@@ -6,11 +6,6 @@
functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
-# Copies steamclient.so to correct location.
-if [ ! -f "${serverfiles}/nativelibs" ]; then
- cp -f "${serverfiles}/linux64/steamclient.so" "${serverfiles}/nativelibs"
-fi
-
# First run requires start with no parms.
# After first run new dirs are created.
if [ ! -d "${serverfiles}/Creative" ]; then
@@ -18,8 +13,10 @@ if [ ! -d "${serverfiles}/Creative" ]; then
fixbypass=1
exitbypass=1
command_start.sh
+ fn_firstcommand_reset
sleep 10
exitbypass=1
command_stop.sh
+ fn_firstcommand_reset
unset parmsbypass
fi
diff --git a/lgsm/functions/fix_zmr.sh b/lgsm/functions/fix_zmr.sh
old mode 100644
new mode 100755
diff --git a/lgsm/functions/info_config.sh b/lgsm/functions/info_config.sh
old mode 100644
new mode 100755
index a59f96d79..4d4b9bd2b
--- a/lgsm/functions/info_config.sh
+++ b/lgsm/functions/info_config.sh
@@ -53,7 +53,7 @@ fn_info_config_justcause2(){
maxplayers=$(grep "MaxPlayers" "${servercfgfullpath}" | grep -v "\--" | tr -cd '[:digit:]')
port=$(grep "BindPort" "${servercfgfullpath}" | grep -v "\--" | tr -cd '[:digit:]')
queryport="${port}"
- ip=$(grep "BindIP" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^--/d' -e 's/BindIP//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
+ configip=$(grep "BindIP" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^--/d' -e 's/BindIP//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
ipsetinconfig=1
ipinconfigvar="BindIP"
@@ -86,7 +86,7 @@ fn_info_config_justcause3(){
steamport=$(grep "\"steamPort\"" "${servercfgfullpath}" | tr -cd '[:digit:]')
tickrate=$(grep "\"maxTickRate\"" "${servercfgfullpath}" | tr -cd '[:digit:]')
- ip=$(grep "host" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^#/d' -e 's/host//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
+ configip=$(grep "host" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^#/d' -e 's/host//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
ipsetinconfig=1
ipinconfigvar="host"
@@ -105,10 +105,17 @@ fn_info_config_justcause3(){
fn_info_config_ark(){
if [ ! -f "${servercfgfullpath}" ]; then
servername="${unavailable}"
+ adminpassword="${unavailable}"
+ serverpassword="${unavailable}"
else
servername=$(grep "SessionName" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^--/d' -e 's/SessionName//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
+ adminpassword=$(grep "ServerAdminPassword" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^--/d' -e 's/ServerAdminPassword//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//' )
+ serverpassword=$( grep "ServerPassword" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^--/d' -e 's/ServerPassword//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
+
# Not Set
servername=${servername:-"NOT SET"}
+ adminpassword=${adminpassword:-"NOT SET"}
+ serverpassword=${serverpassword:-"NOT SET"}
fi
}
@@ -181,13 +188,13 @@ fn_info_config_bf1942(){
queryport="${zero}"
else
- servername=$(grep "game.serverName" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^--/d' -e 's/game.serverName //g' | tr -d '=\";,:' | xargs)
+ servername=$(grep -E "^game.serverName " "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^--/d' -e 's/game.serverName //g' | tr -d '=\";,:' | xargs)
serverpassword=$(grep "game.serverPassword" "${servercfgfullpath}" | sed -e 's/^ *//g' -e '/^--/d' -e 's/game.serverPassword//g' | tr -d '=\";,:' | xargs)
maxplayers=$(grep "game.serverMaxPlayers" "${servercfgfullpath}" | grep -v "\--" | tr -cd '[:digit:]')
port=$(grep "game.serverPort" "${servercfgfullpath}" | grep -v "\--" | tr -cd '[:digit:]')
queryport="22000"
- ip=$(grep "game.serverIP" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^--/d' -e 's/game.serverIP//g' | tr -d '=\";,:' | xargs)
+ configip=$(grep "game.serverIP" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^--/d' -e 's/game.serverIP//g' | tr -d '=\";,:' | xargs)
ipsetinconfig=1
ipinconfigvar="game.serverIP"
@@ -214,7 +221,7 @@ fn_info_config_bfv(){
port=$(grep "game.serverPort" "${servercfgfullpath}" | grep -v "\--" | tr -cd '[:digit:]')
queryport="23000"
- ip=$(grep "game.serverIP" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^--/d' -e 's/game.serverIP//g' | tr -d '=\";,:' | xargs)
+ configip=$(grep "game.serverIP" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^--/d' -e 's/game.serverIP//g' | tr -d '=\";,:' | xargs)
ipsetinconfig=1
ipinconfigvar="game.serverIP"
@@ -232,8 +239,8 @@ fn_info_config_chivalry(){
serverpassword="${unavailable}"
adminpassword="${unavailable}"
else
- servername=$(egrep "^ServerName" "${servercfgfullpath}" | sed 's/^ServerName=//')
- adminpassword=$(egrep "^AdminPassword" "${servercfgfullpath}" | sed 's/^AdminPassword=//')
+ servername=$(grep -E "^ServerName" "${servercfgfullpath}" | sed 's/^ServerName=//')
+ adminpassword=$(grep -E "^AdminPassword" "${servercfgfullpath}" | sed 's/^AdminPassword=//')
# Not Set
servername=${servername:-"NOT SET"}
@@ -315,7 +322,7 @@ fn_info_config_dontstarve(){
tickrate=$(grep "tick_rate" "${clustercfgfullpath}" | grep -v "#" | tr -cd '[:digit:]')
masterport=$(grep "master_port" "${clustercfgfullpath}" | grep -v "#" | tr -cd '[:digit:]')
- ip=$(grep "bind_ip" "${clustercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^#/d' -e 's/bind_ip//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
+ configip=$(grep "bind_ip" "${clustercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^#/d' -e 's/bind_ip//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
ipsetinconfig=1
ipinconfigvar="bind_ip"
@@ -346,29 +353,29 @@ fn_info_config_dontstarve(){
fn_info_config_eco(){
if [ ! -f "${servercfgfullpath}" ]; then
+ configip="${unavailable}"
servername="${unavailable}"
serverpassword="${unavailable}"
maxplayers="${zero}"
- gamemode="${unavailable}"
tickrate="${zero}"
port="${zero}"
webadminport="${zero}"
- public=""
else
- servername=$(grep "Description" "${servercfgdir}/Network.eco" | sed -e 's/^[ \t]*//g' -e '/^#/d' -e 's/Description//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
- serverpassword=$(grep "Password" "${servercfgdir}/Network.eco" | sed -e 's/^[ \t]*//g' -e '/^#/d' -e 's/Password//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
- maxplayers=$(grep "MaxConnections" "${servercfgdir}/Network.eco" | sed -e 's/^[ \t]*//g' -e '/^#/d' -e 's/MaxConnections//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
- port=$(grep "\"GameServerPort\"" "${servercfgdir}/Network.eco" | tr -cd '[:digit:]')
- webadminport=$(grep "\"WebServerPort\"" "${servercfgdir}/Network.eco" | tr -cd '[:digit:]')
- public=$(grep "PublicServer" "${servercfgdir}/Network.eco" | sed -e 's/^[ \t]*//g' -e '/^#/d' -e 's/PublicServer//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
+ configip=$(jq -r '.IPAddress' "${servercfgfullpath}")
+ servername=$(jq -r '.Description' "${servercfgfullpath}")
+ serverpassword=$(jq -r '.Password' "${servercfgfullpath}")
+ maxplayers=$(jq -r '.MaxConnections' "${servercfgfullpath}")
+ tickrate=$(jq -r '.Rate' "${servercfgfullpath}")
+ port=$(jq -r '.GameServerPort' "${servercfgfullpath}")
+ webadminport=$(jq -r '.WebServerPort' "${servercfgfullpath}")
# Not Set
+ configip=${configip:-"NOT SET"}
servername=${servername:-"NOT SET"}
serverpassword=${serverpassword:-"NOT SET"}
maxplayers=${maxplayers=:-"0"}
port=${port=:-"0"}
webadminport=${webadminport=:-"0"}
- public=${public=:-"NOT SET"}
fi
}
@@ -377,39 +384,24 @@ fn_info_config_factorio(){
servername="Factorio Server"
serverpassword="${unavailable}"
maxplayers="${zero}"
+ authtoken=${authtoken:-"NOT SET"}
+ savegameinterval="${unavailable}"
+ versioncount="${unavailable}"
else
- servername="Factorio Server"
- serverpassword=$(grep "game_password" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^#/d' -e 's/game_password//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
- maxplayers=$(grep "\"max_players\"" "${servercfgfullpath}" | tr -cd '[:digit:]')
+ servername=$(jq -r '.name' "${servercfgfullpath}")
+ serverpassword=$(jq -r '.game_password' "${servercfgfullpath}")
+ maxplayers=$(jq -r '.max_players' "${servercfgfullpath}")
+ authtoken=$(jq -r '.token' "${servercfgfullpath}")
+ savegameinterval=$(jq -r '.autosave_interval' "${servercfgfullpath}")
+ versioncount=$(jq -r '.autosave_slots' "${servercfgfullpath}")
# Not Set
servername=${servername:-"NOT SET"}
serverpassword=${serverpassword:-"NOT SET"}
- maxplayers=${maxplayers=:-"0"}
- fi
-}
-
-fn_info_config_inss(){
- if [ ! -f "${servercfgfullpath}" ]; then
- rconenabled="${unavailable}"
- rconpassword="${unavailable}"
- rconport="${zero}"
- maxplayers="${zero}"
- port="${zero}"
- queryport="${zero}"
- queryenabled="${unavailable}"
- rconport="${zero}"
- gamemode="${unavailable}"
- gameworld="${unavailable}"
- else
- rconenabled=$(grep "bEnabled" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^#/d' -e 's/bEnabled//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
- rconpassword=$(grep "Password" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^#/d' -e 's/Password//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
- rconport=$(grep "ListenPort" "${servercfgfullpath}" | tr -cd '[:digit:]')
-
- # Not Set
- rconenabled=${rconenabled:-"NOT SET"}
- rconpassword=${rconpassword:-"NOT SET"}
- rconport=${rconport:-"0"}
+ maxplayers=${maxplayers:-"0"}
+ authtoken=${authtoken:-"NOT SET"}
+ savegameinterval=${savegameinterval:-"0"}
+ versioncount=${versioncount:-"0"}
fi
}
@@ -438,7 +430,7 @@ fn_info_config_minecraft(){
gamemode=$(grep "gamemode" "${servercfgfullpath}" | grep -v "#" | tr -cd '[:digit:]')
gameworld=$(grep "level-name" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^#/d' -e 's/level-name//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
- ip=$(grep "server-ip" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^--/d' -e 's/server-ip//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
+ configip=$(grep "server-ip" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^--/d' -e 's/server-ip//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
ipsetinconfig=1
ipinconfigvar="server-ip"
@@ -491,7 +483,7 @@ fn_info_config_mofm(){
else
servername=$(grep "ServerName" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^--/d' -e 's/ServerName//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
serverpassword=$(grep "ServerPassword" "${servercfgfullpath}" | sed -e 's/^ *//g' -e '/^--/d' -e 's/ServerPassword//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
-
+
# Not Set
servername=${servername:-"NOT SET"}
serverpassword=${serverpassword:-"NOT SET"}
@@ -631,8 +623,8 @@ fn_info_config_quakeworld(){
maxplayers="${zero}"
port="${zero}"
else
- rconpassword=$(grep "rcon_password" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^\//d' -e 's/set rcon_password//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
- servername=$(grep "hostname" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^\//d' -e 's/set hostname//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
+ rconpassword=$(grep "rcon_password" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^\//d' -e 's/set rcon_password//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//' | cut -f1 -d "/")
+ servername=$(grep "hostname" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^\//d' -e 's/set hostname//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//' | cut -f1 -d "/")
maxplayers=$(grep "maxclients" "${servercfgfullpath}" | grep -v "#" | tr -cd '[:digit:]')
# Not Set
@@ -680,6 +672,27 @@ fn_info_config_quake3(){
fi
}
+fn_info_config_jk2(){
+ if [ ! -f "${servercfgfullpath}" ]; then
+ rconpassword="${unavailable}"
+ servername="${unavailable}"
+ serverpassword="${unavailable}"
+ maxplayers="${zero}"
+ else
+ rconpassword=$(grep "seta rconpassword" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^\//d' -e 's/seta rconpassword//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
+ servername=$(grep "seta sv_hostname" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^\//d' -e 's/seta sv_hostname//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
+ serverpassword=$(grep "seta g_password" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^\//d' -e 's/seta g_password//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
+ maxplayers=$(grep "seta sv_maxclients" "${servercfgfullpath}" | grep -v "#" | tr -cd '[:digit:]')
+ serverversion=$(grep "seta mv_serverversion" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^\//d' -e 's/seta mv_serverversion//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
+
+ # Not Set
+ rconpassword=${rconpassword:-"NOT SET"}
+ servername=${servername:-"NOT SET"}
+ serverpassword=${serverpassword:-"NOT SET"}
+ maxplayers=${maxplayers:-"0"}
+ fi
+}
+
fn_info_config_quakelive(){
if [ ! -f "${servercfgfullpath}" ]; then
rconpassword="${unavailable}"
@@ -700,7 +713,7 @@ fn_info_config_quakelive(){
rconport=$(grep "zmq_rcon_port" "${servercfgfullpath}" | grep -v "//" | tr -cd '[:digit:]')
statsport=$(grep "zmq_stats_port" "${servercfgfullpath}" | grep -v "//" | tr -cd '[:digit:]')
- ip=$(grep "set net_ip" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^\//d' -e 's/set net_ip//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
+ configip=$(grep "set net_ip" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^\//d' -e 's/set net_ip//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
ipsetinconfig=1
ipinconfigvar="set net_ip"
@@ -755,7 +768,7 @@ fn_info_config_risingworld(){
gamemode=$(grep "gamemode" "${servercfgfullpath}" | grep -v "#" | tr -cd '[:digit:]')
gameworld=$(grep "server_world_name" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^#/d' -e 's/server_world_name//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
javaram=$(grep "server_memory" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^#/d' -e 's/server_memory//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
- ip=$(grep "server_ip" "${servercfgfullpath}" | grep -v "database_mysql_server_ip" | sed -e 's/^[ \t]*//g' -e '/^--/d' -e 's/server_ip//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
+ configip=$(grep "server_ip" "${servercfgfullpath}" | grep -v "database_mysql_server_ip" | sed -e 's/^[ \t]*//g' -e '/^--/d' -e 's/server_ip//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
ipsetinconfig=1
ipinconfigvar="server-ip"
@@ -790,29 +803,6 @@ fn_info_config_rtcw(){
fi
}
-fn_info_config_seriousengine35(){
- if [ ! -f "${servercfgfullpath}" ]; then
- servername="${unavailable}"
- rconpassword="${unavailable}"
- gamemode="${unavailable}"
- maxplayers="${zero}"
- port="${zero}"
- else
- servername=$(grep "prj_strMultiplayerSessionName" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^\//d' -e 's/prj_strMultiplayerSessionName//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
- rconpassword=$(grep "rcts_strAdminPassword" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^\//d' -e 's/rcts_strAdminPassword//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
- gamemode=$(grep "gam_idGameMode" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^\//d' -e 's/gam_idGameMode//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
- maxplayers=$(grep "gam_ctMaxPlayers" "${servercfgfullpath}" | grep -v "//" | tr -cd '[:digit:]')
- port=$(grep "prj_uwPort" "${servercfgfullpath}" | grep -v "//" | tr -cd '[:digit:]')
-
- # Not Set
- servername=${servername:-"NOT SET"}
- rconpassword=${rconpassword:-"NOT SET"}
- gamemode=${gamemode:-"NOT SET"}
- maxplayers=${maxplayers:-"0"}
- port=${port:-"0"}
- fi
-}
-
#StickyBots
fn_info_config_sbots(){
if [ ! -f "${servercfgfullpath}" ]; then
@@ -909,7 +899,7 @@ fn_info_config_teamspeak3(){
queryport=$(grep "query_port" "${servercfgfullpath}" | grep -v "#" | tr -cd '[:digit:]')
fileport=$(grep "filetransfer_port" "${servercfgfullpath}" | grep -v "#" | tr -cd '[:digit:]')
- ip=$(grep "voice_ip" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^#/d' -e 's/voice_ip//g' | sed 's/,.*//' | tr -d '=\";,' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
+ configip=$(grep "voice_ip" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^#/d' -e 's/voice_ip//g' | sed 's/,.*//' | tr -d '=\";,' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
ipsetinconfig=1
ipinconfigvar="voice_ip"
@@ -929,7 +919,7 @@ fn_info_config_mumble(){
port=$(grep "port" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^;/d' -e 's/port//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
queryport="${port}"
- ip=$(grep "host=" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^;/d' -e 's/host=//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
+ configip=$(grep "host=" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^;/d' -e 's/host=//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
ipsetinconfig=1
ipinconfigvar="voice_ip"
@@ -1074,15 +1064,15 @@ fn_info_config_unreal2(){
webadminuser="${unavailable}"
webadminpass="${unavailable}"
else
- servername=$(grep "ServerName" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^#/d' -e 's/ServerName//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//'| sed 's/\r$//')
- serverpassword=$(grep "GamePassword" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^#/d' -e 's/GamePassword//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//'| sed 's/\r$//')
- adminpassword=$(grep "AdminPassword" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^#/d' -e 's/AdminPassword//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//'| sed 's/\r$//')
- port=$(grep "Port" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' | grep "^Port" | grep -v "#" | tr -cd '[:digit:]')
+ servername=$(sed -nr 's/^ServerName=(.*)$/\1/p' "${servercfgfullpath}" | tr -d '=\";,:' | sed 's/\r$//')
+ serverpassword=$(sed -nr 's/^GamePassword=(.*)$/\1/p' "${servercfgfullpath}" | tr -d '=\";,:' | sed 's/\r$//')
+ adminpassword=$(sed -nr 's/^AdminPassword=(.*)$/\1/p' "${servercfgfullpath}" | tr -d '=\";,:' | sed 's/\r$//')
+ port=$(sed -nr 's/^Port=(.*)$/\1/p' "${servercfgfullpath}" | tr -cd '[:digit:]')
queryport=$((port + 1))
- queryportgs=$(grep "OldQueryPortNumber" "${servercfgfullpath}" | grep -v "#" | tr -cd '[:digit:]')
- webadminenabled=$(grep "bEnabled" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^#/d' -e 's/bEnabled//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//'| sed 's/\r$//')
- webadminport=$(grep "ListenPort" "${servercfgfullpath}" | grep -v "#" | tr -cd '[:digit:]')
- webadminuser=$(grep "AdminName" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^#/d' -e 's/AdminName//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//'| sed 's/\r$//')
+ queryportgs=$(sed -nr 's/^OldQueryPortNumber=(.*)$/\1/p' "${servercfgfullpath}" | tr -cd '[:digit:]')
+ webadminenabled=$(sed -nr 's/^bEnabled=(.*)$/\1/p' "${servercfgfullpath}" | tr -d '=\";,:' | sed 's/\r$//')
+ webadminport=$(sed -nr 's/^ListenPort=(.*)$/\1/p' "${servercfgfullpath}" | tr -cd '[:digit:]')
+ webadminuser=$(sed -nr 's/^AdminName=(.*)$/\1/p' "${servercfgfullpath}" | tr -d '=\";,:' | sed 's/\r$//')
webadminpass="${adminpassword}"
# Not Set
@@ -1204,13 +1194,14 @@ fn_info_config_sdtd(){
telnetenabled="${unavailable}"
telnetport="${zero}"
telnetpass="${unavailable}"
+ telnetip="${unavailable}"
maxplayers="${unavailable}"
gamemode="${unavailable}"
gameworld="${unavailable}"
else
servername=$(grep "ServerName" "${servercfgfullpath}" | sed 's/^.*value="//' | cut -f1 -d"\"")
serverpassword=$(grep "ServerPassword" "${servercfgfullpath}" | sed 's/^.*value="//' | cut -f1 -d"\"")
- port=$(grep "ServerPort" "${servercfgfullpath}" | tr -cd '[:digit:]')
+ port=$(grep "ServerPort" "${servercfgfullpath}" | grep -Eo 'value="[0-9]+"' | tr -cd '[:digit:]')
queryport=${port:-"0"}
webadminenabled=$(grep "ControlPanelEnabled" "${servercfgfullpath}" | sed 's/^.*value="//' | cut -f1 -d"\"")
@@ -1219,7 +1210,11 @@ fn_info_config_sdtd(){
telnetenabled=$(grep "TelnetEnabled" "${servercfgfullpath}" | sed 's/^.*value="//' | cut -f1 -d"\"")
telnetport=$(grep "TelnetPort" "${servercfgfullpath}" | tr -cd '[:digit:]')
telnetpass=$(grep "TelnetPassword" "${servercfgfullpath}" | sed 's/^.*value="//' | cut -f1 -d"\"")
-
+ # Telnet IP will be localhost if no password is set
+ # check_ip will set the IP first. This will overwrite it.
+ if [ -z "${telnetpass}" ]; then
+ telnetip="127.0.0.1"
+ fi
maxplayers=$(grep "ServerMaxPlayerCount" "${servercfgfullpath}" | tr -cd '[:digit:]')
gamemode=$(grep "GameMode" "${servercfgfullpath}" | sed 's/^.*value="//' | cut -f1 -d"\"")
gameworld=$(grep "GameWorld" "${servercfgfullpath}" | sed 's/^.*value="//' | cut -f1 -d"\"")
@@ -1243,7 +1238,7 @@ fn_info_config_sdtd(){
fn_info_config_mta(){
if [ ! -f "${servercfgfullpath}" ]; then
- ip="${zero}"
+ configip="${zero}"
port="${unavailable}"
httpport="${unavailable}"
ase="${unavailable}"
@@ -1262,7 +1257,7 @@ fn_info_config_mta(){
else
ase="Disabled"
fi
- # ip=$(grep -m 1 "serverip" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^\//d' -e 's///g' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//' | cut -f1 -d "<")
+ # configip=$(grep -m 1 "serverip" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^\//d' -e 's///g' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//' | cut -f1 -d "<")
# ipsetinconfig=1
# ipinconfigvar="serverip"
@@ -1292,7 +1287,7 @@ fn_info_config_wolfensteinenemyterritory(){
serverpassword=$(grep "set g_password" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^\//d' -e 's/set g_password //g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
maxplayers=$(grep "set sv_maxclients" "${servercfgfullpath}" | grep -v "//" | tr -cd '[:digit:]')
- ip=$(grep "set net_ip" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^\//d' -e 's/set net_ip//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
+ configip=$(grep "set net_ip" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^\//d' -e 's/set net_ip//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
ipsetinconfig=1
ipinconfigvar="set net_ip"
@@ -1322,7 +1317,7 @@ fn_info_config_etlegacy(){
serverpassword=$(grep "set g_password" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^\//d' -e 's/set g_password //g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
maxplayers=$(grep "set sv_maxclients" "${servercfgfullpath}" | grep -v "//" | tr -cd '[:digit:]')
- ip=$(grep "set net_ip" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^\//d' -e 's/set net_ip//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
+ configip=$(grep "set net_ip" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^\//d' -e 's/set net_ip//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
ipsetinconfig=1
ipinconfigvar="set net_ip"
@@ -1354,7 +1349,7 @@ fn_info_config_wurmunlimited(){
adminpassword=$(grep "ADMINPWD=" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^\//d' -e 's/ADMINPWD//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
maxplayers=$(grep "MAXPLAYERS=" "${servercfgfullpath}" | grep -v "#" | tr -cd '[:digit:]')
- ip=$(grep "IP" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^#/d' -e 's/IP//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
+ configip=$(grep "IP" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^#/d' -e 's/IP//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
ipsetinconfig=1
ipinconfigvar="IP"
@@ -1492,159 +1487,188 @@ fn_info_config_soldat(){
fi
}
-# Assetto Corsa
+fn_info_config_pavlovvr(){
+ if [ ! -f "${servercfgfullpath}" ]; then
+ servername="${unavailable}"
+ maxplayers="${unavailable}"
+ else
+ servername=$(grep "ServerName" "${servercfgfullpath}" | awk -F '=' '{print $2}')
+ maxplayers=$(grep "MaxPlayers" "${servercfgfullpath}" | awk -F '=' '{print $2}')
+
+ # Not set
+ servername=${servername:-"NOT SET"}
+ maxplayers=${maxplayers:-"0"}
+ fi
+}
+
+fn_info_config_col(){
+ if [ -f "${servercfgfullpath}" ]; then
+ servername=$(jq -r '.ServerSettings.ServerName' "${servercfgfullpath}")
+ serverpassword=$(jq -r '.ServerSettings.ServerPassword' "${servercfgfullpath}")
+ maxplayers=$(jq -r '.ServerSettings.MaxPlayerCount' "${servercfgfullpath}")
+ port=$(jq -r '.ServerSettings.ServerGamePort' "${servercfgfullpath}")
+ steamport=$(jq -r '.ServerSettings.ServerSteamPort' "${servercfgfullpath}")
+ rconpassword=$(jq -r '.ServerSettings.RCONPassword' "${servercfgfullpath}")
+ configip=$(jq -r '.ServerSettings.ServerIP' "${servercfgfullpath}")
+
+ # password not set
+ serverpassword=${serverpassword:-"NOT SET"}
+ queryport=${port:-"0"}
+ else
+ servername=${servername:-"NOT SET"}
+ serverpassword=${serverpassword:-"NOT SET"}
+ maxplayers=${maxplayers:-"0"}
+ port=${port:-"27004"}
+ steamport=${steamport:-"27005"}
+ rconpassword=${rconpassword:-"NOT SET"}
+ fi
+}
+
+fn_info_config_vintagestory(){
+ if [ ! -f "${servercfgfullpath}" ]; then
+ servername="${unavailable}"
+ maxplayers="${unavailable}"
+ serverpassword="${unavailable}"
+ port="${unavailable}"
+ queryport="${unavailable}"
+ configip="${unavailable}"
+ else
+ servername=$(jq -r '.ServerName' "${servercfgfullpath}")
+ maxplayers=$(jq -r '.MaxClients' "${servercfgfullpath}")
+ serverpassword=$(jq -r 'select(.Password != null) | .Password' "${servercfgfullpath}")
+ port=$(jq -r '.Port' "${servercfgfullpath}")
+ queryport=${port:-"0"}
+ configip=$(jq -r 'select(.Ip != null) | .Ip' "${servercfgfullpath}")
+
+ serverpassword=${serverpassword:-"NOT SET"}
+ configip=${configip:-"0.0.0.0"}
+ fi
+}
+
+fn_info_config_scpsl(){
+ if [ -f "${servercfgfullpath}" ]; then
+ servername=$(sed -nr 's/^server_name: (.*)$/\1/p' "${servercfgfullpath}")
+ maxplayers=$(sed -nr 's/^max_players: (.*)$/\1/p' "${servercfgfullpath}")
+ configip=$(sed -nr 's/^ipv4_bind_ip: (.*)$/\1/p' "${servercfgfullpath}")
+ tickrate=$(sed -nr 's/^server_tickrate: (.*)$/\1/p' "${servercfgfullpath}")
+ adminpassword=$(sed -nr 's/^administrator_query_password: (.*)$/\1/p' "${servercfgfullpath}")
+
+ if [ "${adminpassword}" == "none" ]; then
+ adminpassword="NOT SET"
+ fi
+ else
+ servername=${servername:-"NOT SET"}
+ maxplayers=${maxplayers:-"0"}
+ configip=${configip:-"0.0.0.0"}
+ tickrate=${tickrate:-"NOT SET"}
+ adminpassword=${adminpassword:-"NOT SET"}
+ fi
+}
+
if [ "${shortname}" == "ac" ]; then
fn_info_config_assettocorsa
-# ARK: Survival Evolved
elif [ "${shortname}" == "ark" ]; then
fn_info_config_ark
-# Avorion
elif [ "${shortname}" == "av" ]; then
fn_info_config_avorion
-# Ballistic Overkill
elif [ "${shortname}" == "bo" ]; then
fn_info_config_ballistic_overkill
-# Barotrauma
elif [ "${shortname}" == "bt" ]; then
fn_info_config_barotrauma
-# Battalion 1944
elif [ "${shortname}" == "bt1944" ]; then
fn_info_config_battalion1944
-# Battlefield: 1942
elif [ "${shortname}" == "bf1942" ]; then
fn_info_config_bf1942
-# Battlefield: Vietnam
elif [ "${shortname}" == "bfv" ]; then
- fn_info_config_bfv
-# Chivalry: Medieval Warfare
+ fn_info_config_bfv
elif [ "${shortname}" == "cmw" ]; then
fn_info_config_chivalry
-# Call of Duty
elif [ "${shortname}" == "cod" ]||[ "${shortname}" == "coduo" ]; then
fn_info_config_cod
-# Call of Duty 2
elif [ "${shortname}" == "cod2" ]; then
fn_info_config_cod2
-# Call of Duty 4
elif [ "${shortname}" == "cod4" ]; then
fn_info_config_cod4
-# Call of Duty: World at War
elif [ "${shortname}" == "codwaw" ]; then
fn_info_config_codwaw
-# Dont Starve Together
+elif [ "${shortname}" == "col" ]; then
+ fn_info_config_col
elif [ "${shortname}" == "dst" ]; then
fn_info_config_dontstarve
-# Eco
elif [ "${shortname}" == "eco" ]; then
fn_info_config_eco
-# Factorio
elif [ "${shortname}" == "fctr" ]; then
fn_info_config_factorio
-# Insurgency: Sandstorm
-elif [ "${shortname}" == "inss" ]; then
- fn_info_config_inss
-# Just Cause 2
elif [ "${shortname}" == "jc2" ]; then
fn_info_config_justcause2
-# Just Cause 3
elif [ "${shortname}" == "jc3" ]; then
fn_info_config_justcause3
-# Killing Floor 2
elif [ "${shortname}" == "kf2" ]; then
fn_info_config_kf2
-# Medal of Honor: Allied Assault
elif [ "${shortname}" == "mohaa" ]; then
fn_info_config_mohaa
-# Memories of Mars
elif [ "${shortname}" == "mofm" ]; then
fn_info_config_mofm
-# QuakeWorld
elif [ "${shortname}" == "qw" ]; then
fn_info_config_quakeworld
-# Quake 2
elif [ "${shortname}" == "q2" ]; then
fn_info_config_quake2
-# Quake 3
elif [ "${shortname}" == "q3" ]; then
fn_info_config_quake3
-# Quake Live
elif [ "${shortname}" == "ql" ]; then
fn_info_config_quakelive
-# Minecraft
+elif [ "${shortname}" == "jk2" ]; then
+ fn_info_config_jk2
elif [ "${shortname}" == "mc" ]; then
fn_info_config_minecraft
-# Minecraft Bedrock
elif [ "${shortname}" == "mcb" ]; then
fn_info_config_minecraft_bedrock
-# Onset
elif [ "${shortname}" == "onset" ]; then
fn_info_config_onset
-# Post Scriptum: The Bloody Seventh
elif [ "${shortname}" == "pstbs" ]; then
fn_info_config_pstbs
-# Project Cars
elif [ "${shortname}" == "pc" ]; then
fn_info_config_projectcars
-# Project Zomboid
elif [ "${shortname}" == "pz" ]; then
fn_info_config_projectzomboid
-# ARMA 3
elif [ "${shortname}" == "arma3" ]; then
fn_info_config_realvirtuality
-# Return to Castle Wolfenstein
elif [ "${shortname}" == "rtcw" ]; then
fn_info_config_rtcw
-# Rising World
elif [ "${shortname}" == "rw" ]; then
fn_info_config_risingworld
-# Serious Sam
-elif [ "${shortname}" == "ss3" ]; then
- fn_info_config_seriousengine35
-# Soldat
elif [ "${shortname}" == "sol" ]; then
fn_info_config_soldat
-# Soldier Of Fortune 2: Gold Edition
elif [ "${shortname}" == "sof2" ]; then
fn_info_config_sof2
-# Source Engine Games
elif [ "${engine}" == "source" ]||[ "${engine}" == "goldsrc" ]; then
fn_info_config_source
-# Starbound
elif [ "${shortname}" == "sb" ]; then
fn_info_config_starbound
-# Teamspeak 3
elif [ "${shortname}" == "ts3" ]; then
fn_info_config_teamspeak3
-# Mumble
elif [ "${shortname}" == "mumble" ]; then
fn_info_config_mumble
-# San Andreas Multiplayer
elif [ "${shortname}" == "samp" ]; then
fn_info_config_samp
-# StickyBots
elif [ "${shortname}" == "pstbs" ]; then
fn_info_config_sbots
-# Teeworlds
elif [ "${shortname}" == "tw" ]; then
fn_info_config_teeworlds
-# Terraria
elif [ "${shortname}" == "terraria" ]; then
fn_info_config_terraria
-# Tower Unite
elif [ "${shortname}" == "tu" ]; then
fn_info_config_towerunite
-# Unreal engine
elif [ "${engine}" == "unreal" ]; then
fn_info_config_unreal
-# Unreal 2 engine
elif [ "${engine}" == "unreal2" ]; then
fn_info_config_unreal2
-# Unreal 3 engine
elif [ "${engine}" == "unreal3" ]; then
fn_info_config_unreal3
elif [ "${shortname}" == "ut" ]; then
fn_info_config_ut
-# 7 Day To Die (unity3d)
+elif [ "${shortname}" == "scpsl" ]||[ "${shortname}" == "scpslsm" ]; then
+ fn_info_config_scpsl
elif [ "${shortname}" == "sdtd" ]; then
fn_info_config_sdtd
elif [ "${shortname}" == "wet" ]; then
@@ -1659,9 +1683,12 @@ elif [ "${shortname}" == "mta" ]; then
fn_info_config_mta
elif [ "${shortname}" == "squad" ]; then
fn_info_config_squad
-# Stationeers
elif [ "${shortname}" == "st" ]; then
fn_info_config_stationeers
elif [ "${shortname}" == "mh" ]; then
fn_info_config_mordhau
+elif [ "${shortname}" == "pvr" ];then
+ fn_info_config_pavlovvr
+elif [ "${shortname}" == "vints" ]; then
+ fn_info_config_vintagestory
fi
diff --git a/lgsm/functions/info_distro.sh b/lgsm/functions/info_distro.sh
old mode 100644
new mode 100755
index c50953cdc..11da3cc63
--- a/lgsm/functions/info_distro.sh
+++ b/lgsm/functions/info_distro.sh
@@ -9,7 +9,7 @@ functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
### Game Server pid
if [ "${status}" == "1" ]; then
- gameserverpid=$(tmux list-sessions -F "#{session_name} #{pane_pid}" | grep "^${sessionname} " | awk '{print $2}')
+ gameserverpid=$(tmux list-sessions -F "#{session_name} #{pane_pid}" | grep "^${sessionname} " | awk '{print $NF}')
fi
### Distro information
@@ -25,8 +25,7 @@ kernel=$(uname -r)
# Gathers distro info from various sources filling in missing gaps.
distro_info_array=( os-release lsb_release hostnamectl debian_version redhat-release )
-for distro_info in "${distro_info_array[@]}"
-do
+for distro_info in "${distro_info_array[@]}"; do
if [ -f "/etc/os-release" ]&&[ "${distro_info}" == "os-release" ]; then
distroname=$(grep PRETTY_NAME /etc/os-release | sed 's/PRETTY_NAME=//g' | tr -d '="' | sed 's/\"//g')
distroversion=$(grep VERSION_ID /etc/os-release | sed 's/VERSION_ID=//g' | sed 's/\"//g')
@@ -98,7 +97,7 @@ cpumodel=$(awk -F: '/model name/ {name=$2} END {print name}' /proc/cpuinfo | sed
cpucores=$(awk -F: '/model name/ {core++} END {print core}' /proc/cpuinfo)
cpufreqency=$(awk -F: '/cpu MHz/ {freq=$2} END {print freq}' /proc/cpuinfo | sed 's/^[ \t]*//;s/[ \t]*$//')
# CPU usage of the game server pid
-if [ "${gameserverpid}" ]; then
+if [ -n "${gameserverpid}" ]; then
cpuused=$(ps --forest -o pcpu -g "${gameserverpid}"|awk '{s+=$1} END {print s}')
cpuusedmhz=$(echo "${cpufreqency} * ${cpuused} / 100" | bc )
fi
@@ -228,7 +227,7 @@ netlink=$(ethtool "${netint}" 2>/dev/null| grep Speed | awk '{print $2}')
# External IP address
if [ -z "${extip}" ]; then
- extip=$(curl -s https://api.ipify.org 2>/dev/null)
+ extip=$(curl --connect-timeout 10 -s https://api.ipify.org 2>/dev/null)
exitcode=$?
# Should ifconfig.co return an error will use last known IP.
if [ ${exitcode} -eq 0 ]; then
@@ -263,9 +262,13 @@ fi
if [ "$(command -v jq 2>/dev/null)" ]; then
if [ "${ip}" ]&&[ "${port}" ]; then
if [ "${steammaster}" == "true" ]; then
- masterserver=$(curl -m 3 -s 'https://api.steampowered.com/ISteamApps/GetServersAtAddress/v0001?addr='${ip}':'${port}'&format=json' | jq '.response.servers[]|.addr' | wc -l 2>/dev/null)
+ # Will query server IP addresses first.
+ for queryip in "${queryips[@]}"; do
+ masterserver="$(curl --connect-timeout 10 -m 3 -s 'https://api.steampowered.com/ISteamApps/GetServersAtAddress/v0001?addr='${queryip}':'${port}'&format=json' | jq '.response.servers[]|.addr' | wc -l 2>/dev/null)"
+ done
+ # Should that not work it will try the external IP.
if [ "${masterserver}" == "0" ]; then
- masterserver=$(curl -m 3 -s 'https://api.steampowered.com/ISteamApps/GetServersAtAddress/v0001?addr='${extip}':'${port}'&format=json' | jq '.response.servers[]|.addr' | wc -l 2>/dev/null)
+ masterserver="$(curl --connect-timeout 10 -m 3 -s 'https://api.steampowered.com/ISteamApps/GetServersAtAddress/v0001?addr='${extip}':'${port}'&format=json' | jq '.response.servers[]|.addr' | wc -l 2>/dev/null)"
fi
if [ "${masterserver}" == "0" ]; then
displaymasterserver="false"
diff --git a/lgsm/functions/info_messages.sh b/lgsm/functions/info_messages.sh
old mode 100644
new mode 100755
index 843dc26a1..3f5601a68
--- a/lgsm/functions/info_messages.sh
+++ b/lgsm/functions/info_messages.sh
@@ -135,7 +135,7 @@ fn_info_message_gameserver_resource(){
echo -e "${lightyellow}Game Server Resource Usage${default}"
fn_messages_separator
{
- if [ "${status}" == "1" ]; then
+ if [ "${status}" != "0" ]; then
echo -e "${lightblue}CPU Used:\t${default}${cpuused}%${default}"
echo -e "${lightblue}Mem Used:\t${default}${pmemused}%\t${memused}MB${default}"
else
@@ -167,7 +167,7 @@ fn_info_message_gameserver(){
# Game type: 0
# Game mode: 0
# Tick rate: 64
- # Master Server: true
+ # Master Server: listed
# Status: ONLINE
echo -e ""
@@ -187,11 +187,21 @@ fn_info_message_gameserver(){
echo -e "${lightblue}Server Description:\t${default}${serverdescription}"
fi
+ # Appid
+ if [ -n "${appid}" ]; then
+ echo -e "${lightblue}App ID:\t${default}${appid}"
+ fi
+
# Branch
if [ -n "${branch}" ]; then
echo -e "${lightblue}Branch:\t${default}${branch}"
fi
+ # Beta Password
+ if [ -n "${betapassword}" ]; then
+ echo -e "${lightblue}Beta Password:\t${default}${betapassword}"
+ fi
+
# Server ip
if [ "${multiple_ip}" == "1" ]; then
echo -e "${lightblue}Server IP:\t${default}NOT SET"
@@ -367,12 +377,32 @@ fn_info_message_gameserver(){
echo -e "${lightblue}Map rotation:\t${default}${randommap}"
fi
+ # Server Version (Jedi Knight II: Jedi Outcast)
+ if [ -n "${serverversion}" ]; then
+ echo -e "${lightblue}Server Version:\t${default}${serverversion}"
+ fi
+
+ # authentication token (Factorio)
+ if [ -n "${authtoken}" ]; then
+ echo -e "${lightblue}Auth Token:\t${default}${authtoken}"
+ fi
+
+ # savegameinterval (Factorio)
+ if [ -n "${savegameinterval}" ]; then
+ echo -e "${lightblue}Savegame Interval:\t${default}${savegameinterval}"
+ fi
+
+ # versioncount (Factorio)
+ if [ -n "${versioncount}" ]; then
+ echo -e "${lightblue}Version Count:\t${default}${versioncount}"
+ fi
+
# Listed on Master server
if [ -n "${displaymasterserver}" ]; then
if [ "${displaymasterserver}" == "true" ]; then
- echo -e "${lightblue}Master server:\t${green}${displaymasterserver}${default}"
+ echo -e "${lightblue}Master server:\t${green}listed${default}"
else
- echo -e "${lightblue}Master server:\t${red}${displaymasterserver}${default}"
+ echo -e "${lightblue}Master server:\t${red}not listed${default}"
fi
fi
@@ -394,19 +424,19 @@ fn_info_message_script(){
# LinuxGSM version: v19.9.0
# glibc required: 2.15
# Discord alert: off
- # Slack alert: off
# Email alert: off
- # Pushbullet alert: off
# IFTTT alert: off
# Mailgun (email) alert: off
+ # Pushbullet alert: off
# Pushover alert: off
+ # Rocketchat alert: off
+ # Slack alert: off
# Telegram alert: off
# Update on start: off
# User: lgsm
# Location: /home/lgsm/csgoserver
# Config file: /home/lgsm/csgoserver/serverfiles/csgo/cfg/csgoserver.cfg
-
echo -e "${lightgreen}${selfname} Script Details${default}"
fn_messages_separator
{
@@ -434,20 +464,23 @@ fn_info_message_script(){
# Discord alert
echo -e "${lightblue}Discord alert:\t${default}${discordalert}"
- # Slack alert
- echo -e "${lightblue}Slack alert:\t${default}${slackalert}"
# Email alert
echo -e "${lightblue}Email alert:\t${default}${emailalert}"
- # Pushbullet alert
- echo -e "${lightblue}Pushbullet alert:\t${default}${pushbulletalert}"
# IFTTT alert
echo -e "${lightblue}IFTTT alert:\t${default}${iftttalert}"
# Mailgun alert
echo -e "${lightblue}Mailgun (email) alert:\t${default}${mailgunalert}"
+ # Pushbullet alert
+ echo -e "${lightblue}Pushbullet alert:\t${default}${pushbulletalert}"
# Pushover alert
echo -e "${lightblue}Pushover alert:\t${default}${pushoveralert}"
+ # Rocketchat alert
+ echo -e "${lightblue}Rocketchat alert:\t${default}${rocketchatalert}"
+ # Slack alert
+ echo -e "${lightblue}Slack alert:\t${default}${slackalert}"
# Telegram alert
echo -e "${lightblue}Telegram alert:\t${default}${telegramalert}"
+
# Update on start
if [ -n "${updateonstart}" ]; then
echo -e "${lightblue}Update on start:\t${default}${updateonstart}"
@@ -523,7 +556,7 @@ fn_info_message_commandlineparms(){
unset serverpassword
fi
fn_parms
- echo -e "${executable} ${parms}"
+ echo -e "${preexecutable} ${executable} ${parms}"
}
fn_info_message_ports(){
@@ -539,9 +572,8 @@ fn_info_message_ports(){
parmslocation="${red}UNKNOWN${default}"
# engines/games that require editing in the config file.
- local ports_edit_array=( "avalanche2.0" "avalanche3.0" "Ballistic Overkill" "dontstarve" "Eco" "idtech2" "idtech3" "idtech3_ql" "lwjgl2" "Minecraft Bedrock" "Project Cars" "projectzomboid" "quake" "refractor" "realvirtuality" "renderware" "seriousengine35" "Stationeers" "teeworlds" "terraria" "unreal" "unreal2" "unreal3" "TeamSpeak 3" "Mumble" "7 Days To Die" "wurm")
- for port_edit in "${ports_edit_array[@]}"
- do
+ local ports_edit_array=( "avalanche2.0" "avalanche3.0" "Ballistic Overkill" "Barotrauma" "dontstarve" "Eco" "idtech2" "idtech3" "idtech3_ql" "lwjgl2" "Minecraft Bedrock" "Project Cars" "projectzomboid" "quake" "refractor" "realvirtuality" "renderware" "Stationeers" "teeworlds" "terraria" "unreal" "unreal2" "unreal3" "TeamSpeak 3" "Mumble" "7 Days To Die" "Vintage Story" "wurm")
+ for port_edit in "${ports_edit_array[@]}"; do
if [ "${shortname}" == "ut3" ]; then
parmslocation="${servercfgdir}/UTWeb.ini"
elif [ "${shortname}" == "kf2" ]; then
@@ -551,9 +583,8 @@ fn_info_message_ports(){
fi
done
# engines/games that require editing the parms.
- local ports_edit_array=( "Avorion" "goldsrc" "Factorio" "Hurtworld" "iw3.0" "ioquake3" "qfusion" "Rust" "Soldat" "spark" "source" "starbound" "unreal4" "realvirtuality" "Unturned" )
- for port_edit in "${ports_edit_array[@]}"
- do
+ local ports_edit_array=( "Avorion" "col" "goldsrc" "Factorio" "Hurtworld" "iw3.0" "ioquake3" "qfusion" "Rust" "scpsl" "scpslsm" "Soldat" "spark" "source" "starbound" "unreal4" "realvirtuality" "Unturned" )
+ for port_edit in "${ports_edit_array[@]}"; do
if [ "${engine}" == "${port_edit}" ]||[ "${gamename}" == "${port_edit}" ]||[ "${shortname}" == "${port_edit}" ]; then
parmslocation="${configdirserver}"
fi
@@ -750,12 +781,12 @@ fn_info_message_dst(){
}
fn_info_message_eco(){
- echo -e "netstat -atunp | grep mono"
+ echo -e "netstat -atunp | grep EcoServer"
echo -e ""
{
echo -e "${lightblue}DESCRIPTION\tDIRECTION\tPORT\tPROTOCOL${default}"
echo -e "> Game\tINBOUND\t${port}\tudp"
- echo -e "> WebAdmin\tINBOUND\t${webadminport}\ttcp"
+ echo -e "> Web Admin\tINBOUND\t${webadminport}\ttcp"
} | column -s $'\t' -t
}
@@ -806,10 +837,21 @@ fn_info_message_inss(){
echo -e "${lightblue}DESCRIPTION\tDIRECTION\tPORT\tPROTOCOL${default}"
echo -e "> Game\tINBOUND\t${port}\tudp"
echo -e "> Query\tINBOUND\t${queryport}\tudp"
- echo -e "> RCON\tINBOUND\t${rconport}\ttcp"
+ if [ -n "${rconport}" ]; then
+ echo -e "> RCON\tINBOUND\t${rconport}\ttcp"
+ fi
} | column -s $'\t' -t
}
+ fn_info_message_jk2(){
+ echo -e "netstat -atunp | grep jk2mvded"
+ echo -e ""
+ {
+ echo -e "DESCRIPTION\tDIRECTION\tPORT\tPROTOCOL"
+ echo -e "> Game\tINBOUND\t${port}\tudp"
+ } | column -s $'\t' -t
+ }
+
fn_info_message_justcause2(){
echo -e "netstat -atunp | grep Jcmp-Server"
echo -e ""
@@ -1041,17 +1083,6 @@ fn_info_message_samp(){
} | column -s $'\t' -t
}
-
-fn_info_message_ss3(){
- echo -e "netstat -atunp | grep Sam3_Ded"
- echo -e ""
- {
- echo -e "${lightblue}DESCRIPTION\tDIRECTION\tPORT\tPROTOCOL${default}"
- echo -e "> Game/RCON\tINBOUND\t${port}\ttcp"
- echo -e "> Query\tINBOUND\t${queryport}\tudp"
- } | column -s $'\t' -t
-}
-
fn_info_message_sbots(){
echo -e "netstat -atunp | grep blank1"
echo -e ""
@@ -1070,23 +1101,23 @@ fn_info_message_sdtd(){
echo -e "${lightblue}DESCRIPTION\tDIRECTION\tPORT\tPROTOCOL${default}"
echo -e "> Game/RCON\tINBOUND\t${port}\tudp"
echo -e "> Query\tINBOUND\t${queryport}\tudp"
- echo -e "> WebAdmin\tINBOUND\t${webadminport}\ttcp"
+ echo -e "> Web Admin\tINBOUND\t${webadminport}\ttcp"
echo -e "> Telnet\tINBOUND\t${telnetport}\ttcp"
} | column -s $'\t' -t
echo -e ""
- echo -e "${lightgreen}${servername} WebAdmin${default}"
+ echo -e "${lightgreen}${gamename} Web Admin${default}"
fn_messages_separator
{
- echo -e "${lightblue}WebAdmin enabled:\t${default}${webadminenabled}"
- echo -e "${lightblue}WebAdmin url:\t${default}http://${ip}:${webadminport}"
- echo -e "${lightblue}WebAdmin password:\t${default}${webadminpass}"
+ echo -e "${lightblue}Web Admin enabled:\t${default}${webadminenabled}"
+ echo -e "${lightblue}Web Admin url:\t${default}http://${webadminip}:${webadminport}"
+ echo -e "${lightblue}Web Admin password:\t${default}${webadminpass}"
} | column -s $'\t' -t
echo -e ""
- echo -e "${lightgreen}${servername} Telnet${default}"
+ echo -e "${lightgreen}${gamename} Telnet${default}"
fn_messages_separator
{
echo -e "${lightblue}Telnet enabled:\t${default}${telnetenabled}"
- echo -e "${lightblue}Telnet address:\t${default}${ip} ${telnetport}"
+ echo -e "${lightblue}Telnet address:\t${default}${telnetip} ${telnetport}"
echo -e "${lightblue}Telnet password:\t${default}${telnetpass}"
} | column -s $'\t' -t
}
@@ -1119,15 +1150,15 @@ fn_info_message_spark(){
echo -e "${lightblue}DESCRIPTION\tDIRECTION\tPORT\tPROTOCOL${default}"
echo -e "> Game/RCON\tINBOUND\t${port}\tudp"
echo -e "> Query\tINBOUND\t${queryport}\tudp"
- echo -e "> WebAdmin\tINBOUND\t${webadminport}\ttcp"
+ echo -e "> Web Admin\tINBOUND\t${webadminport}\ttcp"
} | column -s $'\t' -t
echo -e ""
- echo -e "${lightgreen}${servername} WebAdmin${default}"
+ echo -e "${lightgreen}${servername} Web Admin${default}"
fn_messages_separator
{
- echo -e "${lightblue}WebAdmin url:\t${default}http://${ip}:${webadminport}/index.html"
- echo -e "${lightblue}WebAdmin username:\t${default}${webadminuser}"
- echo -e "${lightblue}WebAdmin password:\t${default}${webadminpass}"
+ echo -e "${lightblue}Web Admin url:\t${default}http://${webadminip}:${webadminport}/index.html"
+ echo -e "${lightblue}Web Admin username:\t${default}${webadminuser}"
+ echo -e "${lightblue}Web Admin password:\t${default}${webadminpass}"
} | column -s $'\t' -t
}
@@ -1232,16 +1263,16 @@ fn_info_message_unreal(){
echo -e "< Steam\tINBOUND\t20660\tudp"
fi
fi
- echo -e "> WebAdmin\tINBOUND\t${webadminport}\ttcp\tListenPort=${webadminport}"
+ echo -e "> Web Admin\tINBOUND\t${webadminport}\ttcp\tListenPort=${webadminport}"
} | column -s $'\t' -t
echo -e ""
- echo -e "${lightgreen}${servername} WebAdmin${default}"
+ echo -e "${lightgreen}${servername} Web Admin${default}"
fn_messages_separator
{
- echo -e "${lightblue}WebAdmin enabled:\t${default}${webadminenabled}"
- echo -e "${lightblue}WebAdmin url:\t${default}http://${ip}:${webadminport}"
- echo -e "${lightblue}WebAdmin username:\t${default}${webadminuser}"
- echo -e "${lightblue}WebAdmin password:\t${default}${webadminpass}"
+ echo -e "${lightblue}Web Admin enabled:\t${default}${webadminenabled}"
+ echo -e "${lightblue}Web Admin url:\t${default}http://${webadminip}:${webadminport}"
+ echo -e "${lightblue}Web Admin username:\t${default}${webadminuser}"
+ echo -e "${lightblue}Web Admin password:\t${default}${webadminpass}"
} | column -s $'\t' -t
}
@@ -1256,16 +1287,16 @@ fn_info_message_unreal2(){
if [ "${appid}" != "223250" ]; then
echo -e "> Query (GameSpy)\tINBOUND\t${queryportgs}\tudp\tOldQueryPortNumber=${queryportgs}"
fi
- echo -e "> WebAdmin\tINBOUND\t${webadminport}\ttcp\tListenPort=${webadminport}"
+ echo -e "> Web Admin\tINBOUND\t${webadminport}\ttcp\tListenPort=${webadminport}"
} | column -s $'\t' -t
echo -e ""
- echo -e "${lightgreen}${servername} WebAdmin${default}"
+ echo -e "${lightgreen}${servername} Web Admin${default}"
fn_messages_separator
{
- echo -e "${lightblue}WebAdmin enabled:\t${default}${webadminenabled}"
- echo -e "${lightblue}WebAdmin url:\t${default}http://${ip}:${webadminport}"
- echo -e "${lightblue}WebAdmin username:\t${default}${webadminuser}"
- echo -e "${lightblue}WebAdmin password:\t${default}${webadminpass}"
+ echo -e "${lightblue}Web Admin enabled:\t${default}${webadminenabled}"
+ echo -e "${lightblue}Web Admin url:\t${default}http://${webadminip}:${webadminport}"
+ echo -e "${lightblue}Web Admin username:\t${default}${webadminuser}"
+ echo -e "${lightblue}Web Admin password:\t${default}${webadminpass}"
} | column -s $'\t' -t
}
@@ -1277,16 +1308,16 @@ fn_info_message_unreal3(){
echo -e "${lightblue}DESCRIPTION\tDIRECTION\tPORT\tPROTOCOL${default}"
echo -e "> Game\tINBOUND\t${port}\tudp"
echo -e "> Query\tINBOUND\t${queryport}\tudp"
- echo -e "> WebAdmin\tINBOUND\t${webadminport}\ttcp\tListenPort=${webadminport}"
+ echo -e "> Web Admin\tINBOUND\t${webadminport}\ttcp\tListenPort=${webadminport}"
} | column -s $'\t' -t
echo -e ""
- echo -e "${lightgreen}${servername} WebAdmin${default}"
+ echo -e "${lightgreen}${servername} Web Admin${default}"
fn_messages_separator
{
- echo -e "${lightblue}WebAdmin enabled:\t${default}${webadminenabled}"
- echo -e "${lightblue}WebAdmin url:\t${default}http://${ip}:${webadminport}"
- echo -e "${lightblue}WebAdmin username:\t${default}${webadminuser}"
- echo -e "${lightblue}WebAdmin password:\t${default}${webadminpass}"
+ echo -e "${lightblue}Web Admin enabled:\t${default}${webadminenabled}"
+ echo -e "${lightblue}Web Admin url:\t${default}http://${webadminip}:${webadminport}"
+ echo -e "${lightblue}Web Admin username:\t${default}${webadminuser}"
+ echo -e "${lightblue}Web Admin password:\t${default}${webadminpass}"
} | column -s $'\t' -t
}
@@ -1318,16 +1349,16 @@ fn_info_message_kf2(){
echo -e "> Game\tINBOUND\t${port}\ttcp\tPort=${port}"
echo -e "> Query\tINBOUND\t${queryport}\tudp"
echo -e "> Steam\tINBOUND\t20560\tudp"
- echo -e "> WebAdmin\tINBOUND\t${webadminport}\ttcp\tListenPort=${webadminport}"
+ echo -e "> Web Admin\tINBOUND\t${webadminport}\ttcp\tListenPort=${webadminport}"
} | column -s $'\t' -t
echo -e ""
- echo -e "${lightgreen}${servername} WebAdmin${default}"
+ echo -e "${lightgreen}${servername} Web Admin${default}"
fn_messages_separator
{
- echo -e "${lightblue}WebAdmin enabled:\t${default}${webadminenabled}"
- echo -e "${lightblue}WebAdmin url:\t${default}http://${ip}:${webadminport}"
- echo -e "${lightblue}WebAdmin username:\t${default}${webadminuser}"
- echo -e "${lightblue}WebAdmin password:\t${default}${webadminpass}"
+ echo -e "${lightblue}Web Admin enabled:\t${default}${webadminenabled}"
+ echo -e "${lightblue}Web Admin url:\t${default}http://${webadminip}:${webadminport}"
+ echo -e "${lightblue}Web Admin username:\t${default}${webadminuser}"
+ echo -e "${lightblue}Web Admin password:\t${default}${webadminpass}"
} | column -s $'\t' -t
}
@@ -1406,6 +1437,44 @@ fn_info_message_warfork(){
} | column -s $'\t' -t
}
+fn_info_message_pavlovvr(){
+ echo "netstat -atunp | grep Pavlov"
+ echo -e ""
+ {
+ echo -e "DESCRIPTION\tDIRECTION\tPORT\tPROTOCOL"
+ echo -e "> Game\tINBOUND\t${port}\tudp"
+ echo -e "> Game\tINBOUND\t$((port+400))\tudp"
+ } | column -s $'\t' -t
+}
+
+fn_info_message_colony(){
+ echo -e "netstat -atunp | grep colonyserv"
+ echo -e ""
+ {
+ echo -e "${lightblue}DESCRIPTION\tDIRECTION\tPORT\tPROTOCOL${default}"
+ echo -e "> Game\tINBOUND\t${port}\tudp"
+ echo -e "> Steam\tINBOUND\t${steamport}\tudp"
+ } | column -s $'\t' -t
+}
+
+fn_info_message_vintagestory(){
+ echo "netstat -atunp | grep cli"
+ echo -e ""
+ {
+ echo -e "DESCRIPTION\tDIRECTION\tPORT\tPROTOCOL"
+ echo -e "> Game\tINBOUND\t${port}\tTCP"
+ } | column -s $'\t' -t
+}
+
+fn_info_message_scpsl(){
+ echo -e "netstat -atunp | grep SCPSL"
+ echo -e ""
+ {
+ echo -e "${lightblue}DESCRIPTION\tDIRECTION\tPORT\tPROTOCOL${default}"
+ echo -e "> Game\tINBOUND\t${port}\tudp"
+ } | column -s $'\t' -t
+}
+
fn_info_message_select_engine(){
# Display details depending on game or engine.
if [ "${shortname}" == "ac" ]; then
@@ -1434,6 +1503,8 @@ fn_info_message_select_engine(){
fn_info_message_cod4
elif [ "${shortname}" == "codwaw" ]; then
fn_info_message_codwaw
+ elif [ "${shortname}" == "col" ]; then
+ fn_info_message_colony
elif [ "${shortname}" == "dst" ]; then
fn_info_message_dst
elif [ "${shortname}" == "eco" ]; then
@@ -1446,6 +1517,8 @@ fn_info_message_select_engine(){
fn_info_message_hurtworld
elif [ "${shortname}" == "inss" ]; then
fn_info_message_inss
+ elif [ "${shortname}" == "jk2" ]; then
+ fn_info_message_jk2
elif [ "${shortname}" == "jc2" ]; then
fn_info_message_justcause2
elif [ "${shortname}" == "jc3" ]; then
@@ -1474,6 +1547,8 @@ fn_info_message_select_engine(){
fn_info_message_quakelive
elif [ "${shortname}" == "samp" ]; then
fn_info_message_samp
+ elif [ "${shortname}" == "scpsl" ]||[ "${shortname}" == "scpslsm" ]; then
+ fn_info_message_scpsl
elif [ "${shortname}" == "sdtd" ]; then
fn_info_message_sdtd
elif [ "${shortname}" == "squad" ]; then
@@ -1488,8 +1563,6 @@ fn_info_message_select_engine(){
fn_info_message_starbound
elif [ "${shortname}" == "sbots" ]; then
fn_info_message_sbots
- elif [ "${shortname}" == "ss3" ]; then
- fn_info_message_ss3
elif [ "${shortname}" == "terraria" ]; then
fn_info_message_terraria
elif [ "${shortname}" == "ts3" ]; then
@@ -1515,11 +1588,15 @@ fn_info_message_select_engine(){
elif [ "${shortname}" == "bf1942" ]; then
fn_info_message_bf1942
elif [ "${shortname}" == "bfv" ]; then
- fn_info_message_bfv
+ fn_info_message_bfv
elif [ "${shortname}" == "rtcw" ]; then
fn_info_message_rtcw
+ elif [ "${shortname}" == "pvr" ]; then
+ fn_info_message_pavlovvr
elif [ "${shortname}" == "rust" ]; then
fn_info_message_rust
+ elif [ "${shortname}" == "vints" ]; then
+ fn_info_message_vintagestory
elif [ "${shortname}" == "wf" ]; then
fn_info_message_warfork
elif [ "${shortname}" == "wurm" ]; then
diff --git a/lgsm/functions/info_parms.sh b/lgsm/functions/info_parms.sh
old mode 100644
new mode 100755
index f30d90020..4a81d73ce
--- a/lgsm/functions/info_parms.sh
+++ b/lgsm/functions/info_parms.sh
@@ -67,12 +67,15 @@ fn_info_parms_inss(){
maxplayers=${maxplayers:-"0"}
}
+fn_info_parms_jk2(){
+ queryport=${port}
+}
+
fn_info_parms_kf2(){
queryport=${queryport:-"0"}
defaultmap=${defaultmap:-"NOT SET"}
}
-
fn_info_parms_mordhau(){
port=${port:-"0"}
queryport=${queryport:-"0"}
@@ -137,6 +140,13 @@ fn_info_parms_rust(){
maxplayers=${maxplayers:-"0"}
saveinterval=${saveinterval:-"0"}
tickrate=${tickrate:-"0"}
+ # Part of random seed feature.
+ if [ -z "${seed}" ]; then
+ if [ ! -f "${datadir}/${selfname}-seed.txt" ]; then
+ shuf -i 1-2147483647 -n 1 > "${datadir}/${selfname}-seed.txt"
+ fi
+ seed=$(cat "${datadir}/${selfname}-seed.txt")
+ fi
}
fn_info_parms_samp(){
@@ -184,11 +194,6 @@ fn_info_parms_sof2(){
defaultmap=${defaultmap:-"NOT SET"}
}
-fn_info_parms_ss3(){
- port=${port:-"0"}
- queryport=$((port + 1))
-}
-
fn_info_parms_towerunite(){
port=${port:-"0"}
queryport=${queryport:-"0"}
@@ -198,6 +203,11 @@ fn_info_parms_teeworlds(){
queryport=${port:-"0"}
}
+fn_info_parms_pavlovvr(){
+ port=${port:-"0"}
+ queryport=${queryport:-"0"}
+}
+
fn_info_parms_unreal(){
defaultmap=${defaultmap:-"NOT SET"}
queryport=$((port + 1))
@@ -217,6 +227,7 @@ fn_info_parms_unreal3(){
fn_info_parms_unturned(){
servername=${selfname:-"NOT SET"}
port=${port:-"0"}
+ queryport=$((port + 1))
}
fn_info_parms_ut(){
@@ -229,59 +240,52 @@ fn_info_parms_wf(){
webadminport=${webadminport:-"0"}
}
-# ARK: Survival Evolved
+fn_info_parms_queryport(){
+ queryport="${port:-"0"}"
+}
+
if [ "${shortname}" == "ark" ]; then
fn_info_parms_ark
-# ARMA 3
elif [ "${shortname}" == "arma3" ]; then
fn_info_parms_realvirtuality
-# Barotrauma
elif [ "${shortname}" == "bt" ]; then
fn_info_parms_barotrauma
-# Call of Duty
elif [ "${shortname}" == "cod" ]||[ "${shortname}" == "coduo" ]||[ "${engine}" == "iw2.0" ]||[ "${engine}" == "iw3.0" ]; then
fn_info_parms_cod
-# Factorio
elif [ "${shortname}" == "fctr" ]; then
fn_info_parms_factorio
elif [ "${shortname}" == "inss" ]; then
fn_info_parms_inss
+elif [ "${shortname}" == "jk2" ]; then
+ fn_info_parms_jk2
elif [ "${shortname}" == "kf2" ]; then
fn_info_parms_kf2
elif [ "${shortname}" == "mohaa" ]; then
fn_info_parms_mohaa
-#Memories of Mars
elif [ "${shortname}" == "mom" ]; then
fn_info_parms_mom
-# Project Zomboid
elif [ "${shortname}" == "pz" ]; then
fn_info_parms_projectzomboid
+elif [ "${shortname}" == "pvr" ]; then
+ fn_info_parms_pavlovvr
elif [ "${shortname}" == "qw" ]; then
fn_info_parms_quakeworld
elif [ "${shortname}" == "q2" ]||[ "${shortname}" == "q3" ]; then
fn_info_parms_quake2
elif [ "${shortname}" == "rtcw" ]; then
fn_info_parms_rtcw
-# Rust
elif [ "${shortname}" == "rust" ]; then
fn_info_parms_rust
elif [ "${shortname}" == "samp" ]; then
fn_info_parms_samp
-# Rising World
elif [ "${shortname}" == "rw" ]; then
fn_info_parms_risingworld
-# Soldier Of Fortune 2: Gold Edition
elif [ "${shortname}" == "sof2" ]; then
fn_info_parms_sof2
-# Sticky Bots
elif [ "${shortname}" == "sbots" ]; then
fn_info_parms_stickybots
-# Serious Sam
-elif [ "${shortname}" == "ss3" ]; then
- fn_info_parms_ss3
elif [ "${engine}" == "source" ]||[ "${engine}" == "goldsrc" ]; then
fn_info_parms_source
-# Spark
elif [ "${engine}" == "spark" ]; then
fn_info_parms_spark
elif [ "${shortname}" == "tu" ]; then
@@ -292,17 +296,17 @@ elif [ "${shortname}" == "mh" ]; then
fn_info_parms_mordhau
elif [ "${shortname}" == "mta" ]; then
fn_info_parms_mta
-# Unreal/Unreal 2 engine
elif [ "${engine}" == "unreal" ]||[ "${engine}" == "unreal2" ]; then
fn_info_parms_unreal
-# Unreal 3 engine
elif [ "${engine}" == "unreal3" ]; then
fn_info_parms_unreal3
elif [ "${shortname}" == "unt" ]; then
fn_info_parms_unturned
elif [ "${shortname}" == "ut" ]; then
fn_info_parms_ut
-# Warfork
elif [ "${shortname}" == "wf" ]; then
fn_info_parms_wf
+# for servers that have a missing queryport from the config
+elif [ "${shortname}" == "scpsl" ]||[ "${shortname}" == "scpslsm" ]; then
+ fn_info_parms_queryport
fi
diff --git a/lgsm/functions/info_stats.sh b/lgsm/functions/info_stats.sh
old mode 100644
new mode 100755
diff --git a/lgsm/functions/install_complete.sh b/lgsm/functions/install_complete.sh
old mode 100644
new mode 100755
diff --git a/lgsm/functions/install_config.sh b/lgsm/functions/install_config.sh
old mode 100644
new mode 100755
index e57b2daac..dbcb27e14
--- a/lgsm/functions/install_config.sh
+++ b/lgsm/functions/install_config.sh
@@ -316,6 +316,13 @@ elif [ "${shortname}" == "cc" ]; then
fn_default_config_remote
fn_set_config_vars
fn_list_config_locations
+elif [ "${shortname}" == "col" ]; then
+ gamedirname="ColonySurvival"
+ array_configs+=( colserver.json )
+ fn_fetch_default_config
+ fn_default_config_remote
+ fn_set_config_vars
+ fn_list_config_locations
elif [ "${shortname}" == "cs" ]; then
gamedirname="CounterStrike"
array_configs+=( server.cfg )
@@ -429,13 +436,6 @@ elif [ "${shortname}" == "gmod" ]; then
fn_default_config_remote
fn_set_config_vars
fn_list_config_locations
-elif [ "${shortname}" == "ges" ]; then
- gamedirname="GoldenEyeSource"
- array_configs+=( server.cfg )
- fn_fetch_default_config
- fn_default_config_remote
- fn_set_config_vars
- fn_list_config_locations
elif [ "${shortname}" == "hldm" ]; then
gamedirname="HalfLifeDeathmatch"
array_configs+=( server.cfg )
@@ -583,6 +583,13 @@ elif [ "${shortname}" == "mumble" ]; then
fn_fetch_default_config
fn_default_config_remote
fn_list_config_locations
+elif [ "${shortname}" == "pvr" ]; then
+ gamedirname="PavlovVR"
+ fn_check_cfgdir
+ array_configs+=( Game.ini )
+ fn_fetch_default_config
+ fn_default_config_remote
+ fn_set_config_vars
elif [ "${shortname}" == "pvkii" ]; then
gamedirname="PiratesVikingandKnightsII"
array_configs+=( server.cfg )
@@ -626,6 +633,12 @@ elif [ "${shortname}" == "ql" ]; then
fn_default_config_remote
fn_set_config_vars
fn_list_config_locations
+elif [ "${shortname}" == "jk2" ]; then
+ gamedirname="JediKnightIIJediOutcast"
+ array_configs+=( server.cfg )
+ fn_fetch_default_config
+ fn_default_config_remote
+ fn_set_config_vars
elif [ "${shortname}" == "qw" ]; then
gamedirname="QuakeWorld"
array_configs+=( server.cfg )
@@ -654,16 +667,9 @@ elif [ "${shortname}" == "rust" ]; then
fn_fetch_default_config
fn_default_config_remote
fn_list_config_locations
-elif [ "${shortname}" == "samp" ]; then
- gamedirname="SanAndreasMultiplayer"
- array_configs+=( server.cfg )
- fn_fetch_default_config
- fn_default_config_remote
- fn_set_config_vars
- fn_list_config_locations
-elif [ "${shortname}" == "ss3" ]; then
- gamedirname="SeriousSam3BFE"
- array_configs+=( server.ini )
+elif [ "${shortname}" == "scpsl" ]||[ "${shortname}" == "scpslsm" ]; then
+ gamedirname="SCPSecretLaboratory"
+ array_configs+=( config_gameplay.txt config_localadmin.txt )
fn_fetch_default_config
fn_default_config_remote
fn_set_config_vars
@@ -794,6 +800,13 @@ elif [ "${shortname}" == "unt" ]; then
fn_default_config_remote
fn_set_config_vars
fn_list_config_locations
+elif [ "${shortname}" == "vints" ]; then
+ gamedirname="VintageStory"
+ array_configs+=( serverconfig.json )
+ fn_fetch_default_config
+ fn_default_config_remote
+ fn_set_config_vars
+ fn_list_config_locations
elif [ "${shortname}" == "vs" ]; then
gamedirname="VampireSlayer"
array_configs+=( server.cfg )
diff --git a/lgsm/functions/install_dst_token.sh b/lgsm/functions/install_dst_token.sh
old mode 100644
new mode 100755
diff --git a/lgsm/functions/install_eula.sh b/lgsm/functions/install_eula.sh
old mode 100644
new mode 100755
index cd51954d0..1f50007f2
--- a/lgsm/functions/install_eula.sh
+++ b/lgsm/functions/install_eula.sh
@@ -25,6 +25,7 @@ if [ -z "${autoinstall}" ]; then
echo -e "By continuing you are indicating your agreement to the EULA."
echo -e ""
if ! fn_prompt_yn "Continue?" Y; then
+ exitcode=0
core_exit.sh
fi
elif [ "${commandname}" == "START" ]; then
diff --git a/lgsm/functions/install_factorio_save.sh b/lgsm/functions/install_factorio_save.sh
old mode 100644
new mode 100755
diff --git a/lgsm/functions/install_gslt.sh b/lgsm/functions/install_gslt.sh
old mode 100644
new mode 100755
diff --git a/lgsm/functions/install_header.sh b/lgsm/functions/install_header.sh
old mode 100644
new mode 100755
index f67860dd4..420b827f8
--- a/lgsm/functions/install_header.sh
+++ b/lgsm/functions/install_header.sh
@@ -12,9 +12,10 @@ fn_sleep_time
echo -e "================================="
echo -e "${lightyellow}Linux${default}GSM_"
echo -e "by Daniel Gibbs"
+echo -e "${lightblue}Version:${default} ${version}"
echo -e "${lightblue}Game:${default} ${gamename}"
echo -e "${lightblue}Website:${default} https://linuxgsm.com"
echo -e "${lightblue}Contributors:${default} https://linuxgsm.com/contrib"
-echo -e "${lightblue}Donate:${default} https://linuxgsm.com/donate"
+echo -e "${lightblue}Sponsor:${default} https://linuxgsm.com/sponsor"
echo -e "================================="
fn_sleep_time
diff --git a/lgsm/functions/install_logs.sh b/lgsm/functions/install_logs.sh
old mode 100644
new mode 100755
index 21c63ccbb..6a272f2ef
--- a/lgsm/functions/install_logs.sh
+++ b/lgsm/functions/install_logs.sh
@@ -15,7 +15,7 @@ fn_sleep_time
# Create LinuxGSM logs.
echo -en "installing log dir: ${logdir}..."
mkdir -p "${logdir}"
-if [ $? -ne 0 ]; then
+if [ $? != 0 ]; then
fn_print_fail_eol_nl
core_exit.sh
else
@@ -24,7 +24,7 @@ fi
echo -en "installing LinuxGSM log dir: ${lgsmlogdir}..."
mkdir -p "${lgsmlogdir}"
-if [ $? -ne 0 ]; then
+if [ $? != 0 ]; then
fn_print_fail_eol_nl
core_exit.sh
else
@@ -32,7 +32,7 @@ else
fi
echo -en "creating LinuxGSM log: ${lgsmlog}..."
touch "${lgsmlog}"
-if [ $? -ne 0 ]; then
+if [ $? != 0 ]; then
fn_print_fail_eol_nl
core_exit.sh
else
@@ -42,7 +42,7 @@ fi
if [ "${consolelogdir}" ]; then
echo -en "installing console log dir: ${consolelogdir}..."
mkdir -p "${consolelogdir}"
- if [ $? -ne 0 ]; then
+ if [ $? != 0 ]; then
fn_print_fail_eol_nl
core_exit.sh
else
diff --git a/lgsm/functions/install_modules.sh b/lgsm/functions/install_modules.sh
old mode 100644
new mode 100755
index c512b69a3..cc516bea0
--- a/lgsm/functions/install_modules.sh
+++ b/lgsm/functions/install_modules.sh
@@ -14,3 +14,4 @@ cp "${tmpdir}/LinuxGSM-master/lgsm/functions"/*.sh "${functionsdir}"
cp "${tmpdir}/LinuxGSM-master/lgsm/functions"/*.py "${functionsdir}"
chmod +x "${functionsdir}"/*
command_update_linuxgsm.sh
+fn_firstcommand_reset
diff --git a/lgsm/functions/install_mta_resources.sh b/lgsm/functions/install_mta_resources.sh
old mode 100644
new mode 100755
diff --git a/lgsm/functions/install_retry.sh b/lgsm/functions/install_retry.sh
old mode 100644
new mode 100755
index 2d6e3df7b..070a4a816
--- a/lgsm/functions/install_retry.sh
+++ b/lgsm/functions/install_retry.sh
@@ -9,5 +9,6 @@ functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
if fn_prompt_yn "Retry install?" Y; then
command_install.sh; core_exit.sh
else
+ exitcode=0
core_exit.sh
fi
diff --git a/lgsm/functions/install_server_dir.sh b/lgsm/functions/install_server_dir.sh
old mode 100644
new mode 100755
index cfd586dc4..77c5ab138
--- a/lgsm/functions/install_server_dir.sh
+++ b/lgsm/functions/install_server_dir.sh
@@ -17,7 +17,8 @@ pwd
echo -e ""
if [ -z "${autoinstall}" ]; then
if ! fn_prompt_yn "Continue?" Y; then
- exit
+ exitcode=0
+ core_exit.sh
fi
fi
if [ ! -d "${serverfiles}" ]; then
diff --git a/lgsm/functions/install_server_files.sh b/lgsm/functions/install_server_files.sh
old mode 100644
new mode 100755
index ec5c60989..a3c40da37
--- a/lgsm/functions/install_server_files.sh
+++ b/lgsm/functions/install_server_files.sh
@@ -27,8 +27,6 @@ fn_install_server_files(){
remote_fileurl="http://linuxgsm.download/CallOfDutyWorldAtWar/codwaw-lnxded-1.7-full.tar.xz"; local_filedir="${tmpdir}"; local_filename="codwaw-lnxded-1.7-full.tar.xz"; chmodx="nochmodx" run="norun"; force="noforce"; md5="2c6be1bb66ea631b9b2e7ae6216c6680"
elif [ "${shortname}" == "etl" ]; then
remote_fileurl="http://linuxgsm.download/WolfensteinEnemyTerritory/etlegacy-v2.76-i386-et-260b.tar.xz"; local_filedir="${tmpdir}"; local_filename="etlegacy-v2.75-i386-et-260b.tar.bz2"; chmodx="nochmodx" run="norun"; force="noforce"; md5="178a00233cec1e25b69d130107ce1a79"
- elif [ "${shortname}" == "ges" ]; then
- remote_fileurl="http://linuxgsm.download/GoldenEyeSource/GoldenEye_Source_v5.0.6_full_server.tar.xz"; local_filedir="${tmpdir}"; local_filename="GoldenEye_Source_v5.0.6_full_server.tar.xz"; chmodx="nochmodx" run="norun"; force="noforce"; md5="e31481f280eed40c9145816bd4f6dc45"
elif [ "${shortname}" == "mohaa" ]; then
remote_fileurl="http://linuxgsm.download/MedalofHonorAlliedAssault/moh_revival_v1.12_RC3.5.1.tar.xz"; local_filedir="${tmpdir}"; local_filename="moh_revival_v1.12_RC3.5.1.tar.xz"; chmodx="nochmodx" run="norun"; force="noforce"; md5="7c664538999252eeaf2b6d9949416480"
elif [ "${shortname}" == "ns" ]; then
@@ -50,7 +48,7 @@ fn_install_server_files(){
elif [ "${shortname}" == "ut2k4" ]; then
remote_fileurl="http://linuxgsm.download/UnrealTournament2004/ut2004-server-3369-3-ultimate-linux.tar.xz"; local_filedir="${tmpdir}"; local_filename="ut2004-server-3369-3-ultimate-linux.tar.xz"; chmodx="nochmodx" run="norun"; force="noforce"; md5="9fceaab68554749f4b45be66613b9a15"
elif [ "${shortname}" == "ut99" ]; then
- remote_fileurl="http://linuxgsm.download/UnrealTournament99/ut99-server-451-ultimate-linux.tar.xz"; local_filedir="${tmpdir}"; local_filename="ut99-server-451-ultimate-linux.tar.xz"; chmodx="nochmodx" run="norun"; force="noforce"; md5="42c6839f8cb95907eeef71a1838aa1f7"
+ remote_fileurl="http://linuxgsm.download/UnrealTournament99/ut99-server-469a-ultimate-linux.tar.xz"; local_filedir="${tmpdir}"; local_filename="ut99-server-469a-ultimate-linux.tar.xz"; chmodx="nochmodx" run="norun"; force="noforce"; md5="e3f2ffaab8e23b98d9e825d0244e8b9d"
elif [ "${shortname}" == "ut" ]; then
remote_fileurl="http://linuxgsm.download/UnrealTournament/UnrealTournament-Server-XAN-3525360-Linux.tar.xz"; local_filedir="${tmpdir}"; local_filename="UnrealTournament-Server-XAN-3525360-Linux.tar.xz"; chmodx="noexecute" run="norun"; force="noforce"; md5="41dd92015713a78211eaccf503b72393"
elif [ "${shortname}" == "ut3" ]; then
@@ -68,114 +66,13 @@ fn_install_server_files(){
fn_dl_extract "${local_filedir}" "${local_filename}" "${serverfiles}"
}
-fn_install_server_files_steamcmd(){
- counter="0"
- while [ "${counter}" == "0" ]||[ "${exitcode}" != "0" ]; do
- counter=$((counter+1))
- if [ -d "${steamcmddir}" ]; then
- cd "${steamcmddir}" || exit
- fi
- if [ "${counter}" -le "10" ]; then
- # Attempt 1-4: Standard attempt.
- # Attempt 5-6: Validate attempt.
- # Attempt 7-8: Validate, delete long name dir.
- # Attempt 9-10: Validate, delete long name dir, re-download SteamCMD.
- # Attempt 11: Failure.
-
- if [ "${counter}" -ge "2" ]; then
- fn_print_warning_nl "SteamCMD did not complete the download, retrying: Attempt ${counter}"
- fn_script_log "SteamCMD did not complete the download, retrying: Attempt ${counter}"
- fi
-
- if [ "${counter}" -ge "7" ]; then
- echo -e "Removing $(find "${serverfiles}" -type d -print0 | grep -Ez '[^/]{30}$')"
- find "${serverfiles}" -type d -print0 | grep -Ez '[^/]{30}$' | xargs -0 rm -rf
- fi
- if [ "${counter}" -ge "9" ]; then
- rm -rf "${steamcmddir:?}"
- check_steamcmd.sh
- fi
-
- # Detects if unbuffer command is available for 32 bit distributions only.
- info_distro.sh
- if [ "$(command -v stdbuf 2>/dev/null)" ]&&[ "${arch}" != "x86_64" ]; then
- unbuffer="stdbuf -i0 -o0 -e0"
- fi
-
- if [ "${counter}" -le "4" ]; then
- # If GoldSrc (appid 90) servers. GoldSrc (appid 90) require extra commands.
- if [ "${appid}" == "90" ]; then
- # If using a specific branch.
- if [ -n "${branch}" ]; then
- ${unbuffer} ${steamcmdcommand} +login "${steamuser}" "${steampass}" +force_install_dir "${serverfiles}" +app_set_config 90 mod "${appidmod}" +app_update "${appid}" -beta "${branch}" +quit
- else
- ${unbuffer} ${steamcmdcommand} +login "${steamuser}" "${steampass}" +force_install_dir "${serverfiles}" +app_set_config 90 mod "${appidmod}" +app_update "${appid}" +quit
- fi
- elif [ "${shortname}" == "ac" ]; then
- ${unbuffer} ${steamcmdcommand} +@sSteamCmdForcePlatformType windows +login "${steamuser}" "${steampass}" +force_install_dir "${serverfiles}" +app_update "${appid}" +quit
- # All other servers.
- else
- if [ -n "${branch}" ]; then
- ${unbuffer} ${steamcmdcommand} +login "${steamuser}" "${steampass}" +force_install_dir "${serverfiles}" +app_update -beta "${branch}" +quit
- else
- ${unbuffer} ${steamcmdcommand} +login "${steamuser}" "${steampass}" +force_install_dir "${serverfiles}" +app_update "${appid}" +quit
- fi
- fi
- local exitcode=$?
- elif [ "${counter}" -ge "5" ]; then
- # If GoldSrc (appid 90) servers. GoldSrc (appid 90) require extra commands.
- if [ "${appid}" == "90" ]; then
- # If using a specific branch.
- if [ -n "${branch}" ]; then
- ${unbuffer} ${steamcmdcommand} +login "${steamuser}" "${steampass}" +force_install_dir "${serverfiles}" +app_set_config 90 mod "${appidmod}" +app_update "${appid}" -beta "${branch}" validate +quit
- else
- ${unbuffer} ${steamcmdcommand} +login "${steamuser}" "${steampass}" +force_install_dir "${serverfiles}" +app_set_config 90 mod "${appidmod}" +app_update "${appid}" validate +quit
- fi
- local exitcode=$?
- elif [ "${shortname}" == "ac" ]; then
- ${unbuffer} ${steamcmdcommand} +@sSteamCmdForcePlatformType windows +login "${steamuser}" "${steampass}" +force_install_dir "${serverfiles}" +app_update "${appid}" +quit
- local exitcode=$?
- # All other servers.
- else
- if [ -n "${branch}" ]; then
- ${unbuffer} ${steamcmdcommand} +login "${steamuser}" "${steampass}" +force_install_dir "${serverfiles}" +app_update "${appid}" -beta "${branch}" validate +quit
- else
- ${unbuffer} ${steamcmdcommand} +login "${steamuser}" "${steampass}" +force_install_dir "${serverfiles}" +app_update "${appid}" validate +quit
- fi
- local exitcode=$?
- fi
- fi
- elif [ "${counter}" -ge "11" ]; then
- fn_print_failure_nl "SteamCMD did not complete the download, too many retrys"
- fn_script_log "SteamCMD did not complete the download, too many retrys"
- break
- fi
- done
-
- # GoldSrc (appid 90) servers commonly fail to download all the server files required.
- # Validating a few of times may reduce the chance of this issue.
- if [ "${appid}" == "90" ]; then
- fn_print_information_nl "GoldSrc servers commonly fail to download all the server files required. Validating a few of times may reduce the chance of this issue."
- counter="0"
- while [ "${counter}" -le "4" ]; do
- counter=$((counter+1))
- if [ -n "${branch}" ]; then
- ${unbuffer} ${steamcmdcommand} +login "${steamuser}" "${steampass}" +force_install_dir "${serverfiles}" +app_set_config 90 mod "${appidmod}" +app_update "${appid}" "${branch}" validate +quit
- else
- ${unbuffer} ${steamcmdcommand} +login "${steamuser}" "${steampass}" +force_install_dir "${serverfiles}" +app_set_config 90 mod "${appidmod}" +app_update "${appid}" validate +quit
- fi
- local exitcode=$?
- done
- fi
-}
-
echo -e ""
echo -e "${lightyellow}Installing ${gamename} Server${default}"
echo -e "================================="
fn_sleep_time
if [ "${appid}" ]; then
- fn_install_server_files_steamcmd
+ fn_dl_steamcmd
fi
if [ "${shortname}" == "ts3" ]; then
@@ -192,7 +89,11 @@ elif [ "${shortname}" == "mta" ]; then
elif [ "${shortname}" == "fctr" ]; then
update_factorio.sh
install_factorio_save.sh
-elif [ -z "${appid}" ]||[ "${shortname}" == "ahl" ]||[ "${shortname}" == "bd" ]||[ "${shortname}" == "bb" ]||[ "${shortname}" == "ges" ]||[ "${shortname}" == "ns" ]||[ "${shortname}" == "sfc" ]||[ "${shortname}" == "sol" ]||[ "${shortname}" == "ts" ]||[ "${shortname}" == "vs" ]||[ "${shortname}" == "zmr" ]; then
+elif [ "${shortname}" == "jk2" ]; then
+ update_jediknight2.sh
+elif [ "${shortname}" == "vints" ]; then
+ update_vintagestory.sh
+elif [ -z "${appid}" ]||[ "${shortname}" == "ahl" ]||[ "${shortname}" == "bd" ]||[ "${shortname}" == "bb" ]||[ "${shortname}" == "ns" ]||[ "${shortname}" == "sfc" ]||[ "${shortname}" == "ts" ]||[ "${shortname}" == "vs" ]||[ "${shortname}" == "zmr" ]; then
if [ "${shortname}" == "ut" ]; then
install_eula.sh
fi
diff --git a/lgsm/functions/install_squad_license.sh b/lgsm/functions/install_squad_license.sh
old mode 100644
new mode 100755
diff --git a/lgsm/functions/install_stats.sh b/lgsm/functions/install_stats.sh
old mode 100644
new mode 100755
diff --git a/lgsm/functions/install_steamcmd.sh b/lgsm/functions/install_steamcmd.sh
old mode 100644
new mode 100755
diff --git a/lgsm/functions/install_ts3db.sh b/lgsm/functions/install_ts3db.sh
old mode 100644
new mode 100755
diff --git a/lgsm/functions/install_ut2k4_key.sh b/lgsm/functions/install_ut2k4_key.sh
old mode 100644
new mode 100755
diff --git a/lgsm/functions/mods_core.sh b/lgsm/functions/mods_core.sh
old mode 100644
new mode 100755
index da2576207..010ff109e
--- a/lgsm/functions/mods_core.sh
+++ b/lgsm/functions/mods_core.sh
@@ -53,7 +53,7 @@ fn_mod_lowercase(){
done < <(find "${extractdir}" -depth)
echo -en "${renamedwc} / ${totalfileswc} / ${fileswc} converting ${modprettyname} files to lowercase..."
- if [ ${exitcode} -ne 0 ]; then
+ if [ "${exitcode}" != 0 ]; then
fn_print_fail_eol_nl
core_exit.sh
else
@@ -69,7 +69,7 @@ fn_mod_create_filelist(){
# ${modsdir}/${modcommand}-files.txt.
find "${extractdir}" -mindepth 1 -printf '%P\n' > "${modsdir}/${modcommand}-files.txt"
local exitcode=$?
- if [ ${exitcode} -ne 0 ]; then
+ if [ "${exitcode}" != 0 ]; then
fn_print_fail_eol_nl
fn_script_log_fatal "Building ${modsdir}/${modcommand}-files.txt"
core_exit.sh
@@ -89,7 +89,7 @@ fn_mod_copy_destination(){
fn_sleep_time
cp -Rf "${extractdir}/." "${modinstalldir}/"
local exitcode=$?
- if [ ${exitcode} -ne 0 ]; then
+ if [ "${exitcode}" != 0 ]; then
fn_print_fail_eol_nl
fn_script_log_fatal "Copying ${modprettyname} to ${modinstalldir}"
else
@@ -127,7 +127,7 @@ fn_mod_tidy_files_list(){
sed -i "/^${removefilevar}$/d" "${modsdir}/${modcommand}-files.txt"
# Exit on error.
local exitcode=$?
- if [ ${exitcode} -ne 0 ]; then
+ if [ "${exitcode}" != 0 ]; then
fn_print_fail_eol_nl
fn_script_log_fatal "Error while tidying line: ${removefilevar} from: ${modsdir}/${modcommand}-files.txt"
core_exit.sh
@@ -382,7 +382,7 @@ fn_create_mods_dir(){
echo -en "creating LinuxGSM mods data directory ${modsdir}..."
mkdir -p "${modsdir}"
exitcode=$?
- if [ ${exitcode} -ne 0 ]; then
+ if [ "${exitcode}" != 0 ]; then
fn_print_fail_eol_nl
fn_script_log_fatal "Creating mod download dir ${modsdir}"
core_exit.sh
@@ -396,7 +396,7 @@ fn_create_mods_dir(){
echo -en "creating mods install directory ${modinstalldir}..."
mkdir -p "${modinstalldir}"
exitcode=$?
- if [ ${exitcode} -ne 0 ]; then
+ if [ "${exitcode}" != 0 ]; then
fn_print_fail_eol_nl
fn_script_log_fatal "Creating mod install directory ${modinstalldir}"
core_exit.sh
@@ -419,7 +419,7 @@ fn_mods_create_tmp_dir(){
mkdir -p "${modstmpdir}"
exitcode=$?
echo -en "creating mod download directory ${modstmpdir}..."
- if [ ${exitcode} -ne 0 ]; then
+ if [ "${exitcode}" != 0 ]; then
fn_print_fail_eol_nl
fn_script_log_fatal "Creating mod download directory ${modstmpdir}"
core_exit.sh
@@ -436,7 +436,7 @@ fn_mods_clear_tmp_dir(){
echo -en "clearing mod download directory ${modstmpdir}..."
rm -fr "${modstmpdir:?}"
exitcode=$?
- if [ ${exitcode} -ne 0 ]; then
+ if [ "${exitcode}" != 0 ]; then
fn_print_fail_eol_nl
fn_script_log_fatal "Clearing mod download directory ${modstmpdir}"
core_exit.sh
@@ -495,6 +495,254 @@ fn_check_mod_files_list(){
fi
}
+fn_mod_exist(){
+ modreq=$1
+ # requires one parameter, the mod
+ if [ -f "${modsdir}/${modreq}-files.txt" ]; then
+ # how many lines is the file list
+ modsfilelistsize=$(wc -l < "${modsdir}/${modreq}-files.txt")
+ # if file list is empty
+ if [ "${modsfilelistsize}" -eq 0 ]; then
+ fn_mod_required_fail_exist "${modreq}"
+ fi
+ else
+ fn_mod_required_fail_exist "${modreq}"
+ fi
+}
+
+fn_mod_required_fail_exist(){
+ modreq=$1
+ # requires one parameter, the mod
+ fn_script_log_fatal "${modreq}-files.txt is empty: unable to find ${modreq} installed"
+ echo -en "* Unable to find '${modreq}' which is required prior to installing this mod..."
+ fn_print_fail_eol_nl
+ core_exit.sh
+}
+
+fn_mod_liblist_gam_filenames(){
+ # clear variables just in case
+ moddll=""
+ modso=""
+ moddylib=""
+
+ # default libraries
+ case ${gamename} in
+ "Counter-Strike 1.6")
+ moddll="mp.dll"
+ modso="cs.so"
+ moddylib="cs.dylib"
+ ;;
+ "Day of Defeat")
+ moddll="dod.dll"
+ modso="dod.so"
+ moddylib="dod.dylib"
+ ;;
+ "Team Fortress Classic")
+ moddll="tfc.dll"
+ modso="tfc.so"
+ moddylib="tfc.dylib"
+ ;;
+ "Natural Selection")
+ moddll="ns.dll"
+ modso="ns_i386.so"
+ moddylib=""
+ ;;
+ "The Specialists")
+ moddll="mp.dll"
+ modso="ts_i386.so"
+ moddylib=""
+ ;;
+ "Half-Life: Deathmatch")
+ moddll="hl.dll"
+ modso="hl.so"
+ moddylib="hl.dylib"
+ ;;
+ esac
+}
+
+# modifers for liblist.gam to add/remote metamod binaries
+fn_mod_install_liblist_gam_file(){
+
+ fn_mod_liblist_gam_filenames
+
+ if [ -f "${modinstalldir}/liblist.gam" ]; then
+ # modify the liblist.gam file to initialize Metamod
+ logentry="sed replace (dlls\\${moddll}) ${modinstalldir}/liblist.gam"
+ echo -en "modifying gamedll in liblist.gam..."
+ rpldll="s/dlls\\\\${moddll}/addons\/metamod\/dlls\/metamod.dll/g"
+ sed -i $rpldll "${modinstalldir}/liblist.gam"
+ grep -q "addons/metamod/dlls/metamod.dll" "${modinstalldir}/liblist.gam"
+ exitcode=$?
+ # if replacement back didn't happen, error out.
+ if [ "${exitcode}" != 0 ]; then
+ fn_script_log_fatal "${logentry}"
+ fn_print_fail_eol_nl
+ else
+ fn_script_log_pass "${logentry}"
+ fn_print_ok_eol_nl
+ fi
+
+ # modify the liblist.gam file to initialize metamod
+ logentry="sed replace (dlls\\${modso}) ${modinstalldir}/liblist.gam"
+ echo -en "modifying gamedll_linux in liblist.gam..."
+ rplso="s/dlls\/${modso}/addons\/metamod\/dlls\/metamod.so/g"
+ sed -i $rplso "${modinstalldir}/liblist.gam"
+ grep -q "addons/metamod/dlls/metamod.so" "${modinstalldir}/liblist.gam"
+ exitcode=$?
+ # if replacement back didn't happen, error out
+ if [ "${exitcode}" != 0 ]; then
+ fn_script_log_fatal "${logentry}"
+ fn_print_fail_eol_nl
+ else
+ fn_script_log_pass "${logentry}"
+ fn_print_ok_eol_nl
+ fi
+
+ # mac os needs to be checked not all mods support mac os
+ if [ -n "${moddylib}" ]; then
+ # modify the liblist.gam file to initialize metamod
+ logentry="sed replace (dlls\\${moddylib}) ${modinstalldir}/liblist.gam"
+ echo -en "modifying gamedll_osx in liblist.gam..."
+ rpldylib="s/dlls\/${moddylib}/addons\/metamod\/dlls\/metamod.dylib/g"
+ sed -i $rpldylib "${modinstalldir}/liblist.gam"
+ grep -q "addons/metamod/dlls/metamod.dylib" "${modinstalldir}/liblist.gam"
+ exitcode=$?
+ # if replacement back didn't happen, error out.
+ if [ "${exitcode}" != 0 ]; then
+ fn_script_log_fatal "${logentry}"
+ fn_print_fail_eol_nl
+ else
+ fn_script_log_pass ${logentry}
+ fn_print_ok_eol_nl
+ fi
+ fi
+ fi
+}
+
+fn_mod_remove_liblist_gam_file(){
+
+ fn_mod_liblist_gam_filenames
+
+ if [ -f "${modinstalldir}/liblist.gam" ]; then
+ # modify the liblist.gam file back to defaults
+ logentry="sed replace (addons/metamod/dlls/metamod.dll) ${modinstalldir}/liblist.gam"
+ echo -en "modifying gamedll in liblist.gam..."
+ rpldll="s/addons\/metamod\/dlls\/metamod.dll/dlls\\\\${moddll}/g"
+ sed -i $rpldll "${modinstalldir}/liblist.gam"
+ grep -q "${moddll}" "${modinstalldir}/liblist.gam"
+ exitcode=$?
+ # if replacement back didn't happen, error out.
+ if [ "${exitcode}" != 0 ]; then
+ fn_script_log_fatal "${logentry}"
+ fn_print_fail_eol_nl
+ else
+ fn_script_log_pass ${logentry}
+ fn_print_ok_eol_nl
+ fi
+
+ # modify the liblist.gam file back to defaults
+ logentry="sed replace (addons/metamod/dlls/metamod.so) ${modinstalldir}/liblist.gam"
+ echo -en "modifying gamedll_linux in liblist.gam..."
+ rplso="s/addons\/metamod\/dlls\/metamod.so/dlls\/${modso}/g"
+ sed -i $rplso "${modinstalldir}/liblist.gam"
+ grep -q "${modso}" "${modinstalldir}/liblist.gam"
+ exitcode=$?
+ # if replacement back didn't happen, error out
+ if [ "${exitcode}" != 0 ]; then
+ fn_script_log_fatal "${logentry}"
+ fn_print_fail_eol_nl
+ else
+ fn_script_log_pass ${logentry}
+ fn_print_ok_eol_nl
+ fi
+
+ # mac os needs to be checked not all mods support mac os
+ if [ -n "${moddylib}" ]; then
+ # modify the liblist.gam file back to defaults
+ logentry="sed replace (addons/metamod/dlls/metamod.dylib) ${modinstalldir}/liblist.gam"
+ echo -en "modifying gamedll_osx in liblist.gam..."
+ rpldylib="s/addons\/metamod\/dlls\/metamod.dylib/dlls\/${moddylib}/g"
+ sed -i $rpldylib "${modinstalldir}/liblist.gam"
+ grep -q "${moddylib}" "${modinstalldir}/liblist.gam"
+ # if replacement back didn't happen, error out.
+ exitcode=$?
+ if [ "${exitcode}" != 0 ]; then
+ fn_script_log_fatal "${logentry}"
+ fn_print_fail_eol_nl
+ else
+ fn_script_log_pass ${logentry}
+ fn_print_ok_eol_nl
+ fi
+ fi
+ fi
+}
+
+fn_mod_install_amxmodx_file(){
+ # does plugins.ini exist?
+ if [ -f "${modinstalldir}/addons/metamod/plugins.ini" ]; then
+ # since it does exist, is the entry already in plugins.ini
+ logentry="line (linux addons/amxmodx/dlls/amxmodx_mm_i386.so) inserted into ${modinstalldir}/addons/metamod/plugins.ini"
+ echo -en "adding amxmodx_mm_i386.so in plugins.ini..."
+ grep -q "amxmodx_mm_i386.so" "${modinstalldir}/addons/metamod/plugins.ini"
+ exitcode=$?
+ if [ "${exitcode}" != 0 ]; then
+ # file exists but the entry does not, let's add it
+ echo "linux addons/amxmodx/dlls/amxmodx_mm_i386.so" >> "${modinstalldir}/addons/metamod/plugins.ini"
+ exitcode=$?
+ if [ "${exitcode}" != 0 ]; then
+ fn_script_log_fatal "${logentry}"
+ fn_print_fail_eol_nl
+ else
+ fn_script_log_pass ${logentry}
+ fn_print_ok_eol_nl
+ fi
+ fi
+ else
+ # create new file and add the mod to it
+ echo "linux addons/amxmodx/dlls/amxmodx_mm_i386.so" > "${modinstalldir}/addons/metamod/plugins.ini"
+ exitcode=$?
+ if [ "${exitcode}" != 0 ]; then
+ fn_script_log_fatal "${logentry}"
+ fn_print_fail_eol_nl
+ core_exit.sh
+ else
+ fn_script_log_pass ${logentry}
+ fn_print_ok_eol_nl
+ fi
+ fi
+}
+
+fn_mod_remove_amxmodx_file(){
+ if [ -f "${modinstalldir}/addons/metamod/plugins.ini" ]; then
+ # since it does exist, is the entry already in plugins.ini
+ logentry="line (linux addons/amxmodx/dlls/amxmodx_mm_i386.so) removed from ${modinstalldir}/addons/metamod/plugins.ini"
+ echo -en "removing amxmodx_mm_i386.so in plugins.ini..."
+ grep -q "linux addons/amxmodx/dlls/amxmodx_mm_i386.so" "${modinstalldir}/addons/metamod/plugins.ini"
+ # iIs it found? If so remove it and clean up
+ exitcode=$?
+ if [ "${exitcode}" == 0 ]; then
+ # delete the line we inserted
+ sed -i '/linux addons\/amxmodx\/dlls\/amxmodx_mm_i386.so/d' "${modinstalldir}/addons/metamod/plugins.ini"
+ # remove empty lines
+ sed -i '/^$/d' "${modinstalldir}/addons/metamod/plugins.ini"
+ exitcode=$?
+ if [ "${exitcode}" != 0 ]; then
+ fn_script_log_fatal "${logentry}"
+ fn_print_fail_eol_nl
+ else
+ fn_script_log_pass ${logentry}
+ fn_print_ok_eol_nl
+ fi
+
+ # if file is empty, remove it.
+ if [ -f "${modinstalldir}/addons/metamod/plugins.ini" ]; then
+ rm "${modinstalldir}/addons/metamod/plugins.ini"
+ fn_script_log_pass "file removed ${modinstalldir}/addons/metamod/plugins.ini because it was empty"
+ fi
+ fi
+ fi
+}
+
## Database initialisation.
mods_list.sh
diff --git a/lgsm/functions/mods_list.sh b/lgsm/functions/mods_list.sh
old mode 100644
new mode 100755
index 6485faa45..f60d9b30f
--- a/lgsm/functions/mods_list.sh
+++ b/lgsm/functions/mods_list.sh
@@ -12,32 +12,77 @@ functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
# Get a proper URL for mods that don't provide a good one (optional)
fn_script_log_info "Retrieving latest mods URLs"
-# Metamod
-metamodmversion="1.10"
-metamodscrapeurl="https://mms.alliedmods.net/mmsdrop/${metamodmversion}/mmsource-latest-linux"
-metamodlatestfile=$(wget "${metamodscrapeurl}" -q -O -)
-metamoddownloadurl="https://www.metamodsource.net/latest.php?os=linux&version=${metamodmversion}"
+
+# Metamod (Half-life 1 Classic Engine)
+metamodversion="1.21.1-am"
+metamodlatestfile="metamod-${metamodversion}.zip"
+metamoddownloadurl="https://www.amxmodx.org/release/${metamodlatestfile}"
metamodurl="${metamoddownloadurl}"
+# AMX Mod X: Base
+amxxbaseversion="1.8.2"
+amxxbasemod="base"
+amxxbaselatestfile="amxmodx-${amxxbaseversion}-${amxxbasemod}-linux.tar.gz"
+amxxbasedownloadurl="https://www.amxmodx.org/release/${amxxbaselatestfile}"
+amxxbaseurl="${amxxbasedownloadurl}"
+# AMX Mod X: Counter-Strike
+amxxcsversion="1.8.2"
+amxxcsmod="cstrike"
+amxxcslatestfile="amxmodx-${amxxbaseversion}-${amxxcsmod}-linux.tar.gz"
+amxxcsdownloadurl="https://www.amxmodx.org/release/${amxxcslatestfile}"
+amxxcsurl="${amxxcsdownloadurl}"
+# AMX Mod X: Day of Defeat
+amxxdodversion="1.8.2"
+amxxdodmod="dod"
+amxxdodlatestfile="amxmodx-${amxxdodversion}-${amxxdodmod}-linux.tar.gz"
+amxxdoddownloadurl="https://www.amxmodx.org/release/${amxxdodlatestfile}"
+amxxdodurl="${amxxdoddownloadurl}"
+# AMX Mod X: Team Fortress Classic
+amxxtfcversion="1.8.2"
+amxxtfcmod="tfc"
+amxxtfclatestfile="amxmodx-${amxxtfcversion}-${amxxtfcmod}-linux.tar.gz"
+amxxtfcdownloadurl="https://www.amxmodx.org/release/${amxxtfclatestfile}"
+amxxtfcurl="${amxxtfcdownloadurl}"
+# AMX Mod X: Natural Selection
+amxxnsversion="1.8.2"
+amxxnsmod="ns"
+amxxnslatestfile="amxmodx-${amxxnsversion}-${amxxnsmod}-linux.tar.gz"
+amxxnsdownloadurl="https://www.amxmodx.org/release/${amxxnslatestfile}"
+amxxnsurl="${amxxnsdownloadurl}"
+# AMX Mod X: The Specialists
+amxxtsversion="1.8.2"
+amxxtsmod="ts"
+amxxtslatestfile="amxmodx-${amxxtsversion}-${amxxtsmod}-linux.tar.gz"
+amxxtsdownloadurl="https://www.amxmodx.org/release/${amxxtslatestfile}"
+amxxtsurl="${amxxtsdownloadurl}"
+# Metamod:Source
+metamodsourceversion="1.10"
+metamodsourcescrapeurl="https://mms.alliedmods.net/mmsdrop/${metamodsourceversion}/mmsource-latest-linux"
+metamodsourcelatestfile=$(wget "${metamodsourcescrapeurl}" -q -O -)
+metamodsourcedownloadurl="https://www.metamodsource.net/latest.php?os=linux&version=${metamodsourceversion}"
+metamodsourceurl="${metamodsourcedownloadurl}"
# Sourcemod
-sourcemodmversion="1.10"
-sourcemodscrapeurl="https://sm.alliedmods.net/smdrop/${sourcemodmversion}/sourcemod-latest-linux"
+sourcemodversion="1.10"
+sourcemodscrapeurl="https://sm.alliedmods.net/smdrop/${sourcemodversion}/sourcemod-latest-linux"
sourcemodlatestfile=$(wget "${sourcemodscrapeurl}" -q -O -)
-sourcemoddownloadurl="https://www.sourcemod.net/latest.php?os=linux&version=${sourcemodmversion}"
+sourcemoddownloadurl="https://www.sourcemod.net/latest.php?os=linux&version=${sourcemodversion}"
sourcemodurl="${sourcemoddownloadurl}"
# Steamworks
steamworksscrapeurl="https://users.alliedmods.net/~kyles/builds/SteamWorks"
-steamworkslatestfile=$(curl -sL ${steamworksscrapeurl} | grep -m 1 linux | cut -d '"' -f 4)
+steamworkslatestfile=$(curl --connect-timeout 10 -sL ${steamworksscrapeurl} | grep -m 1 linux | cut -d '"' -f 4)
steamworksdownloadurl="${steamworksscrapeurl}/${steamworkslatestfile}"
steamworksurl="${steamworksdownloadurl}"
# CS:GO Mods
-get5scrapepath=$(curl -sL https://ci.splewis.net/job/get5/lastSuccessfulBuild/api/xml | grep -oP "\K(.+)(?=)")
-get5latestfile=$(echo -e "${get5scrapepath}" | xargs -n 1 -I @ sh -c "echo -e "basename "@""")
-get5downloadurl="https://ci.splewis.net/job/get5/lastSuccessfulBuild/artifact/${get5scrapepath}"
-get5url="${get5downloadurl}"
+get5lastbuild=$(curl --connect-timeout 10 -sL https://ci.splewis.net/job/get5/lastSuccessfulBuild/api/json | jq -r '.artifacts[]')
+get5latestfile=$(echo -e "${get5lastbuild}" | jq -r '.fileName')
+get5latestfilepath=$(echo -e "${get5lastbuild}" | jq -r '.relativePath')
+get5url="https://ci.splewis.net/job/get5/lastSuccessfulBuild/artifact/${get5latestfilepath}"
+csgopuglatest=$(curl --connect-timeout 10 -sL https://api.github.com/repos/splewis/csgo-pug-setup/releases/latest | jq '.assets[]')
+csgopuglatestfile=$(echo -e "${csgopuglatest}" | jq -r '.name')
+csgopuglatestlink=$(echo -e "${csgopuglatest}" | jq -r '.browser_download_url')
# Oxide
-oxiderustlatestlink="https://umod.org/games/rust/download/develop" # fix for linux build 06.09.2019
-oxidehurtworldlatestlink=$(curl -sL https://api.github.com/repos/OxideMod/Oxide.Hurtworld/releases/latest | grep browser_download_url | cut -d '"' -f 4 | grep "Oxide.Hurtworld.zip")
-oxidesdtdlatestlink=$(curl -sL https://api.github.com/repos/OxideMod/Oxide.SevenDaysToDie/releases/latest | jq -r '.assets[]|select(.browser_download_url | contains("linux")) | .browser_download_url' )
+oxiderustlatestlink=$(curl --connect-timeout 10 -sL https://api.github.com/repos/OxideMod/Oxide.Rust/releases/latest | jq -r '.assets[]|select(.browser_download_url | contains("linux")) | .browser_download_url')
+oxidehurtworldlatestlink=$(curl --connect-timeout 10 -sL https://api.github.com/repos/OxideMod/Oxide.Hurtworld/releases/latest | jq -r '.assets[].browser_download_url')
+oxidesdtdlatestlink=$(curl --connect-timeout 10 -sL https://api.github.com/repos/OxideMod/Oxide.SevenDaysToDie/releases/latest | jq -r '.assets[]|select(.browser_download_url | contains("linux")) | .browser_download_url' )
# Define mods information (required)
@@ -64,15 +109,36 @@ modseparator="MOD"
# [12] | "AUTHOR_URL" is the author's website, displayed to the user when chosing mods to install
# [13] | "Short Description" a description showed to the user upon installation/removal
+# Half-life 1 Engine Mods
+mod_info_metamod=( MOD "metamod" "Metamod" "${metamodurl}" "${metamodlatestfile}" "0" "LowercaseOff" "${systemdir}" "addons/metamod/plugins.ini;" "ENGINES" "Counter-Strike 1.6;Day of Defeat;Team Fortress Classic;Natural Selection;The Specialists;Half-Life: Deathmatch;" "NOTGAMES" "https://github.com/alliedmodders/metamod-hl1" "Plugins Framework" )
+mod_info_base_amxx=( MOD "amxmodx" "AMX Mod X: Base" "${amxxbaseurl}" "${amxxbaselatestfile}" "0" "LowercaseOff" "${systemdir}" "addons/amxmodx/configs;" "ENGINES" "Counter-Strike 1.6;Day of Defeat;Team Fortress Classic;Natural Selection;The Specialists;Half-Life: Deathmatch;" "NOTGAMES" "https://www.amxmodx.org" "Admin Features (requires Metamod)" )
+
+# CS 1.6 (HL1) Engine Mods
+mod_info_cs_amxx=( MOD "amxmodxcs" "AMX Mod X: Counter-Strike" "${amxxcsurl}" "${amxxcslatestfile}" "0" "LowercaseOff" "${systemdir}" "addons/amxmodx/configs;" "ENGINES" "Counter-Strike 1.6;" "NOTGAMES" "https://www.amxmodx.org" "Admin Features (requires Metamod & AMX Mod X: Base)" )
+
+# DOD (HL1) Engine Mods
+mod_info_dod_amxx=( MOD "amxmodxdod" "AMX Mod X: Day of Defeat" "${amxxdodurl}" "${amxxdodlatestfile}" "0" "LowercaseOff" "${systemdir}" "addons/amxmodx/configs;" "ENGINES" "Day of Defeat;" "NOTGAMES" "https://www.amxmodx.org" "Admin Features (requires Metamod & AMX Mod X: Base)" )
+
+# TFC (HL1) Engine Mods
+mod_info_tfc_amxx=( MOD "amxmodxtfc" "AMX Mod X: Team Fortress Classic" "${amxxtfcurl}" "${amxxtfclatestfile}" "0" "LowercaseOff" "${systemdir}" "addons/amxmodx/configs;" "ENGINES" "Team Fortress Classic;" "NOTGAMES" "https://www.amxmodx.org" "Admin Features (requires Metamod & AMX Mod X: Base)" )
+
+# NS (Natural Selection) (HL1) Engine Mods
+mod_info_ns_amxx=( MOD "amxmodxns" "AMX Mod X: Natural Selection" "${amxxnsurl}" "${amxxnslatestfile}" "0" "LowercaseOff" "${systemdir}" "addons/amxmodx/configs;" "ENGINES" "Natural Selection;" "NOTGAMES" "https://www.amxmodx.org" "Admin Features (requires Metamod & AMX Mod X: Base)" )
+
+# TS (The Specialists) (HL1) Engine Mods
+mod_info_ts_amxx=( MOD "amxmodxts" "AMX Mod X: The Specialists" "${amxxtsurl}" "${amxxtslatestfile}" "0" "LowercaseOff" "${systemdir}" "addons/amxmodx/configs;" "ENGINES" "The Specialists;" "NOTGAMES" "https://www.amxmodx.org" "Admin Features (requires Metamod & AMX Mod X: Base)" )
+
# Source mods
-mod_info_metamod=( MOD "metamod" "MetaMod" "${metamodurl}" "${metamodlatestfile}" "0" "LowercaseOff" "${systemdir}" "addons/metamod/metaplugins.ini;" "source;" "GAMES" "NOTGAMES" "https://www.sourcemm.net" "Plugins Framework" )
-mod_info_sourcemod=( MOD "sourcemod" "SourceMod" "${sourcemodurl}" "${sourcemodlatestfile}" "0" "LowercaseOff" "${systemdir}" "cfg;addons/sourcemod/configs;" "source;" "GAMES" "NOTGAMES" "http://www.sourcemod.net" "Admin Features (requires MetaMod)" )
+mod_info_metamodsource=( MOD "metamodsource" "Metamod: Source" "${metamodsourceurl}" "${metamodsourcelatestfile}" "0" "LowercaseOff" "${systemdir}" "addons/metamod/metaplugins.ini;" "source;" "GAMES" "NOTGAMES" "https://www.sourcemm.net" "Plugins Framework" )
+mod_info_sourcemod=( MOD "sourcemod" "SourceMod" "${sourcemodurl}" "${sourcemodlatestfile}" "0" "LowercaseOff" "${systemdir}" "cfg;addons/sourcemod/configs;" "source;" "GAMES" "NOTGAMES" "http://www.sourcemod.net" "Admin Features (requires Metamod: Source)" )
mod_info_steamworks=( MOD "steamworks" "SteamWorks" "${steamworksurl}" "${steamworkslatestfile}" "0" "LowercaseOff" "${systemdir}" "OVERWRITE" "ENGINES" "Counter-Strike: Global Offensive;" "NOTGAMES" "https://github.com/KyleSanderson/SteamWorks" "Exposing SteamWorks functions to SourcePawn" )
+mod_info_stripper=( MOD "stripper" "Stripper Source" "http://www.bailopan.net/stripper/snapshots/1.2/stripper-1.2.2-git129-linux.tar.gz" "stripper-1.2.2-git129-linux.tar.gz" "0" "LowercaseOff" "${systemdir}" "addons/stripper/maps;" "ENGINES" "Counter-Strike: Global Offensive;Counter-Strike: Source;Day of Defeat: Source;Half Life: Deathmatch;Half Life 2: Deathmatch;Insurgency;Left 4 Dead;Left 4 Dead 2;Nuclear Dawn;Team Fortress 2;" "NOTGAMES" "http://www.bailopan.net/stripper/" "Add or remove objects from map (requires MetaMod)")
# CS:GO Mods
mod_info_gokz=( MOD "gokz" "GOKZ" "https://bitbucket.org/kztimerglobalteam/gokz/downloads/GOKZ-latest.zip" "gokz-latest.zip" "0" "LowercaseOff" "${systemdir}" "cfg;addons/sourcemod/configs;" "ENGINES" "Counter-Strike: Global Offensive;" "NOTGAMES" "https://bitbucket.org/kztimerglobalteam/gokz/src/master/" "Implements the KZ game mode (requires SourceMod and MetaMod)" )
-mod_info_ttt=( MOD "ttt" "Trouble in Terrorist Town" "https://csgottt.com/downloads/ttt-latest-dev-${sourcemodmversion}.zip" "ttt-latest.zip" "0" "LowercaseOff" "${systemdir}" "cfg;addons/sourcemod/configs;" "ENGINES" "Counter-Strike: Global Offensive;" "NOTGAMES" "https://github.com/Bara/TroubleinTerroristTown" "Implements the TTT game mode (requires SourceMod and MetaMod)" )
+mod_info_ttt=( MOD "ttt" "Trouble in Terrorist Town" "https://csgottt.com/downloads/ttt-latest-dev-${sourcemodversion}.zip" "ttt-latest.zip" "0" "LowercaseOff" "${systemdir}" "cfg;addons/sourcemod/configs;" "ENGINES" "Counter-Strike: Global Offensive;" "NOTGAMES" "https://github.com/Bara/TroubleinTerroristTown" "Implements the TTT game mode (requires SourceMod and MetaMod)" )
mod_info_get5=( MOD "get5" "Get 5" "${get5url}" "${get5latestfile}" "0" "LowercaseOff" "${systemdir}" "cfg;addons/sourcemod/configs;" "ENGINES" "Counter-Strike: Global Offensive;" "NOTGAMES" "https://github.com/splewis/get5" "Plugin for competitive matches/scrims (requires SourceMod and MetaMod)" )
+mod_info_pug=( MOD "pug" "PUG" "${csgopuglatestlink}" "${csgopuglatestfile}" "0" "LowercaseOff" "${systemdir}" "cfg;addons/sourcemod/configs;" "ENGINES" "Counter-Strike: Global Offensive;" "NOTGAMES" "https://github.com/splewis/csgo-pug-setup" "plugin for setting up private pug/10man games" )
# Garry's Mod Addons
mod_info_ulib=( MOD "ulib" "ULib" "https://codeload.github.com/TeamUlysses/ulib/zip/master" "ulib-master.zip" "0" "LowercaseOff" "${systemdir}/addons" "OVERWRITE" "ENGINES" "Garry's Mod;" "NOTGAMES" "http://ulyssesmod.net" "Complete Framework" )
@@ -88,11 +154,10 @@ mod_info_wiremodextras=( MOD "wiremod-extras" "Wiremod Extras" "https://github.c
mod_info_darkrp=( MOD "darkrp" "DarkRP" "https://github.com/FPtje/DarkRP/archive/master.zip" "darkrp-master.zip" "0" "LowercaseOn" "${systemdir}/gamemodes" "OVERWRITE" "ENGINES" "Garry's Mod;" "NOTGAMES" "http://darkrp.com" "Most popular gamemode" )
mod_info_darkrpmodification=( MOD "darkrpmodification" "DarkRP Modification" "https://github.com/FPtje/darkrpmodification/archive/master.zip" "darkrpmodification-master.zip" "0" "LowercaseOff" "${systemdir}/addons" "NOUPDATE" "ENGINES" "Garry's Mod;" "NOTGAMES" "http://darkrp.com" "Customize DarkRP settings" )
-
# Oxidemod
-mod_info_rustoxide=( MOD "rustoxide" "Oxide for Rust" "${oxiderustlatestlink}" "Oxide.Rust-linux.zip" "0" "LowercaseOff" "${systemdir}" "OVERWRITE" "ENGINES" "Rust;" "NOTGAMES" "http://oxidemod.org/downloads/oxide-for-rust.1659/" "Allows for the use of plugins" )
-mod_info_hwoxide=( MOD "hwoxide" "Oxide for Hurtworld" "${oxidehurtworldlatestlink}" "Oxide.Hurtworld.zip" "0" "LowercaseOff" "${systemdir}" "OVERWRITE" "ENGINES" "Hurtworld;" "NOTGAMES" "http://oxidemod.org/downloads/oxide-for-hurtworld.1332/" "Allows for the use of plugins" )
-mod_info_sdtdoxide=( MOD "sdtdoxide" "Oxide for 7 Days To Die" "${oxidesdtdlatestlink}" "Oxide.SevenDaysToDie.zip" "0" "LowercaseOff" "${systemdir}" "OVERWRITE" "ENGINES" "7 Days To Die;" "NOTGAMES" "http://oxidemod.org/downloads/oxide-for-7-days-to-die.813/" "Allows for the use of plugins" )
+mod_info_rustoxide=( MOD "rustoxide" "Oxide for Rust" "${oxiderustlatestlink}" "Oxide.Rust-linux.zip" "0" "LowercaseOff" "${systemdir}" "OVERWRITE" "ENGINES" "Rust;" "NOTGAMES" "https://umod.org/games/rust" "Allows for the use of plugins" )
+mod_info_hwoxide=( MOD "hwoxide" "Oxide for Hurtworld" "${oxidehurtworldlatestlink}" "Oxide.Hurtworld.zip" "0" "LowercaseOff" "${systemdir}" "OVERWRITE" "ENGINES" "Hurtworld;" "NOTGAMES" "https://umod.org/games/hurtworld" "Allows for the use of plugins" )
+mod_info_sdtdoxide=( MOD "sdtdoxide" "Oxide for 7 Days To Die" "${oxidesdtdlatestlink}" "Oxide.SevenDaysToDie.zip" "0" "LowercaseOff" "${systemdir}" "OVERWRITE" "ENGINES" "7 Days To Die;" "NOTGAMES" "https://umod.org/games/7-days-to-die" "Allows for the use of plugins" )
# REQUIRED: Set all mods info into the global array
-mods_global_array=( "${mod_info_metamod[@]}" "${mod_info_sourcemod[@]}" "${mod_info_steamworks[@]}" "${mod_info_gokz[@]}" "${mod_info_ttt[@]}" "${mod_info_get5[@]}" "${mod_info_ulib[@]}" "${mod_info_ulx[@]}" "${mod_info_utime[@]}" "${mod_info_uclip[@]}" "${mod_info_acf[@]}" "${mod_info_acf_missiles[@]}" "${mod_info_acf_sweps[@]}" "${mod_info_advdupe2[@]}" "${mod_info_pac3[@]}" "${mod_info_wiremod[@]}" "${mod_info_wiremodextras[@]}" "${mod_info_darkrp[@]}" "${mod_info_darkrpmodification[@]}" "${mod_info_rustoxide[@]}" "${mod_info_hwoxide[@]}" "${mod_info_sdtdoxide[@]}" )
+mods_global_array=( "${mod_info_metamod[@]}" "${mod_info_base_amxx[@]}" "${mod_info_cs_amxx[@]}" "${mod_info_dod_amxx[@]}" "${mod_info_tfc_amxx[@]}" "${mod_info_ns_amxx[@]}" "${mod_info_ts_amxx[@]}" "${mod_info_metamodsource[@]}" "${mod_info_sourcemod[@]}" "${mod_info_steamworks[@]}" "${mod_info_gokz[@]}" "${mod_info_ttt[@]}" "${mod_info_get5[@]}" "${mod_info_pug[@]}" "${mod_info_ulib[@]}" "${mod_info_ulx[@]}" "${mod_info_utime[@]}" "${mod_info_uclip[@]}" "${mod_info_acf[@]}" "${mod_info_acf_missiles[@]}" "${mod_info_acf_sweps[@]}" "${mod_info_advdupe2[@]}" "${mod_info_pac3[@]}" "${mod_info_wiremod[@]}" "${mod_info_wiremodextras[@]}" "${mod_info_darkrp[@]}" "${mod_info_darkrpmodification[@]}" "${mod_info_rustoxide[@]}" "${mod_info_hwoxide[@]}" "${mod_info_sdtdoxide[@]}" )
diff --git a/lgsm/functions/query_gamedig.sh b/lgsm/functions/query_gamedig.sh
old mode 100644
new mode 100755
index 071645b49..2443c6e99
--- a/lgsm/functions/query_gamedig.sh
+++ b/lgsm/functions/query_gamedig.sh
@@ -14,13 +14,13 @@ if [ "$(command -v gamedig 2>/dev/null)" ]&&[ "$(command -v jq 2>/dev/null)" ];
check_status.sh
if [ "${status}" != "0" ]; then
# checks if query is working null = pass.
- gamedigcmd=$(echo -e "gamedig --type \"${querytype}\" --host \"${ip}\" --query_port \"${queryport}\"|jq")
- gamedigraw=$(gamedig --type "${querytype}" --host "${ip}" --query_port "${queryport}")
+ gamedigcmd=$(echo -e "gamedig --type \"${querytype}\" --host \"${queryip}\" --query_port \"${queryport}\"|jq")
+ gamedigraw=$(gamedig --type "${querytype}" --host "${queryip}" --query_port "${queryport}")
querystatus=$(echo "${gamedigraw}" | jq '.error|length')
if [ "${querystatus}" != "null" ]; then
- gamedigcmd=$(echo -e "gamedig --type \"${querytype}\" --host \"${ip}\" --port \"${queryport}\"|jq")
- gamedigraw=$(gamedig --type "${querytype}" --host "${ip}" --port "${queryport}")
+ gamedigcmd=$(echo -e "gamedig --type \"${querytype}\" --host \"${queryip}\" --port \"${queryport}\"|jq")
+ gamedigraw=$(gamedig --type "${querytype}" --host "${queryip}" --port "${queryport}")
querystatus=$(echo "${gamedigraw}" | jq '.error|length')
fi
@@ -38,7 +38,7 @@ if [ "$(command -v gamedig 2>/dev/null)" ]&&[ "$(command -v jq 2>/dev/null)" ];
fi
if [ "${gdplayers}" == "null" ]; then
unset gdplayers
- elif [ "${gdplayers}" == "[]" ] || [ "${gdplayers}" == "-1" ]; then
+ elif [ "${gdplayers}" == "[]" ]||[ "${gdplayers}" == "-1" ]; then
gdplayers=0
fi
diff --git a/lgsm/functions/query_gsquery.py b/lgsm/functions/query_gsquery.py
old mode 100644
new mode 100755
diff --git a/lgsm/functions/update_factorio.sh b/lgsm/functions/update_factorio.sh
old mode 100644
new mode 100755
index 5ff67c448..3e01e4203
--- a/lgsm/functions/update_factorio.sh
+++ b/lgsm/functions/update_factorio.sh
@@ -43,7 +43,7 @@ fn_update_factorio_localbuild(){
fn_update_factorio_remotebuild(){
# Gets remote build info.
remotebuild=$(curl -s "https://factorio.com/get-download/${downloadbranch}/headless/${factorioarch}" | grep -o '[0-9]\.[0-9]\{1,\}\.[0-9]\{1,\}' | head -1)
- if [ "${installer}" != "1" ]; then
+ if [ "${firstcommandname}" != "INSTALL" ]; then
fn_print_dots "Checking remote build: ${remotelocation}"
# Checks if remotebuild variable has been set.
if [ -z "${remotebuild}" ]||[ "${remotebuild}" == "null" ]; then
@@ -94,20 +94,27 @@ fn_update_factorio_compare(){
if [ "${status}" == "0" ]; then
exitbypass=1
fn_update_factorio_dl
- exitbypass=1
- command_start.sh
- exitbypass=1
- command_stop.sh
+ if [ "${requirerestart}" == "1" ]; then
+ exitbypass=1
+ command_start.sh
+ fn_firstcommand_reset
+ exitbypass=1
+ command_stop.sh
+ fn_firstcommand_reset
+ fi
# If server started.
else
- fn_stop_warning
+ fn_print_restart_warning
exitbypass=1
command_stop.sh
+ fn_firstcommand_reset
exitbypass=1
fn_update_factorio_dl
exitbypass=1
command_start.sh
+ fn_firstcommand_reset
fi
+ unset exitbypass
date +%s > "${lockdir}/lastupdate.lock"
alert="update"
alert.sh
@@ -130,21 +137,6 @@ fn_update_factorio_compare(){
fi
}
-fn_stop_warning(){
- fn_print_warn "Updating server: SteamCMD: ${selfname} will be stopped during update"
- fn_script_log_warn "Updating server: SteamCMD: ${selfname} will be stopped during update"
- totalseconds=3
- for seconds in {3..1}; do
- fn_print_warn "Updating server: SteamCMD: ${selfname} will be stopped during update: ${totalseconds}"
- totalseconds=$((totalseconds - 1))
- sleep 1
- if [ "${seconds}" == "0" ]; then
- break
- fi
- done
- fn_print_warn_nl "Updating server: SteamCMD: ${selfname} will be stopped during update"
-}
-
# The location where the builds are checked and downloaded.
remotelocation="factorio.com"
@@ -159,7 +151,7 @@ else
downloadbranch="${branch}"
fi
-if [ "${installer}" == "1" ]; then
+if [ "${firstcommandname}" == "INSTALL" ]; then
fn_update_factorio_remotebuild
fn_update_factorio_dl
else
diff --git a/lgsm/functions/update_jediknight2.sh b/lgsm/functions/update_jediknight2.sh
new file mode 100644
index 000000000..bddb7ec93
--- /dev/null
+++ b/lgsm/functions/update_jediknight2.sh
@@ -0,0 +1,173 @@
+#!/bin/bash
+# LinuxGSM update_jk2.sh function
+# Author: Daniel Gibbs
+# Website: https://linuxgsm.com
+# Description: Handles updating of jk2 servers.
+
+functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
+
+fn_update_jk2_dl(){
+ fn_fetch_file "https://github.com/mvdevs/jk2mv/releases/download/${remotebuild}/jk2mv-v${remotebuild}-dedicated.zip" "" "" "" "${tmpdir}" "jk2mv-${remotebuild}-dedicated.zip" "" "norun" "noforce" "nomd5"
+ fn_dl_extract "${tmpdir}" "jk2mv-${remotebuild}-dedicated.zip" "${tmpdir}/jk2mv-v${remotebuild}-dedicated"
+ echo -e "copying to ${serverfiles}...\c"
+ cp -R "${tmpdir}/jk2mv-v${remotebuild}-dedicated/linux-amd64/jk2mvded"* "${serverfiles}/GameData"
+ local exitcode=$?
+ if [ "${exitcode}" == "0" ]; then
+ fn_print_ok_eol_nl
+ fn_script_log_pass "Copying to ${serverfiles}"
+ fn_clear_tmp
+ else
+ fn_print_fail_eol_nl
+ fn_script_log_fatal "Copying to ${serverfiles}"
+ core_exit.sh
+ fi
+}
+
+fn_update_jk2_localbuild(){
+ # Gets local build info.
+ fn_print_dots "Checking local build: ${remotelocation}"
+ # Uses log file to gather info.
+ # Log is generated and cleared on startup but filled on shutdown.
+ requirerestart=1
+ localbuild=$(grep "\"version\"" "${consolelogdir}"/* 2>/dev/null | sed 's/.*://' | awk '{print $1}' | head -n 1)
+ if [ -z "${localbuild}" ]; then
+ fn_print_error "Checking local build: ${remotelocation}"
+ fn_print_error_nl "Checking local build: ${remotelocation}: no log files containing version info"
+ fn_print_info_nl "Checking local build: ${remotelocation}: forcing server restart"
+ fn_script_log_error "No log files containing version info"
+ fn_script_log_info "Forcing server restart"
+
+ check_status.sh
+ # If server stopped.
+ if [ "${status}" == "0" ]; then
+ exitbypass=1
+ command_start.sh
+ fn_firstcommand_reset
+ sleep 3
+ exitbypass=1
+ command_stop.sh
+ fn_firstcommand_reset
+ # If server started.
+ else
+ exitbypass=1
+ command_stop.sh
+ fn_firstcommand_reset
+ fi
+ fi
+
+ if [ -z "${localbuild}" ]; then
+ localbuild=$(grep Version "$(ls -tr "${consolelogdir}"/* 2>/dev/null)" | tail -1 | sed 's/.*Version //')
+ fi
+
+ if [ -z "${localbuild}" ]; then
+ localbuild="0"
+ fn_print_error "Checking local build: ${remotelocation}: waiting for local build: missing local build info"
+ fn_script_log_error "Missing local build info"
+ fn_script_log_error "Set localbuild to 0"
+ else
+ fn_print_ok "Checking local build: ${remotelocation}"
+ fn_script_log_pass "Checking local build"
+ fi
+}
+
+fn_update_jk2_remotebuild(){
+ # Gets remote build info.
+ remotebuild=$(curl -s "https://api.github.com/repos/mvdevs/jk2mv/releases/latest" | grep dedicated.zip | tail -1 | awk -F"/" '{ print $8 }')
+ if [ "${firstcommandname}" != "INSTALL" ]; then
+ fn_print_dots "Checking remote build: ${remotelocation}"
+ # Checks if remotebuild variable has been set.
+ if [ -z "${remotebuild}" ]||[ "${remotebuild}" == "null" ]; then
+ fn_print_fail "Checking remote build: ${remotelocation}"
+ fn_script_log_fatal "Checking remote build"
+ core_exit.sh
+ else
+ fn_print_ok "Checking remote build: ${remotelocation}"
+ fn_script_log_pass "Checking remote build"
+ fi
+ else
+ # Checks if remotebuild variable has been set.
+ if [ -z "${remotebuild}" ]||[ "${remotebuild}" == "null" ]; then
+ fn_print_failure "Unable to get remote build"
+ fn_script_log_fatal "Unable to get remote build"
+ core_exit.sh
+ fi
+ fi
+}
+
+fn_update_jk2_compare(){
+ # Removes dots so if statement can compare version numbers.
+ fn_print_dots "Checking for update: ${remotelocation}"
+ localbuilddigit=$(echo -e "${localbuild}" | tr -cd '[:digit:]')
+ remotebuilddigit=$(echo -e "${remotebuild}" | tr -cd '[:digit:]')
+ if [ "${localbuilddigit}" -ne "${remotebuilddigit}" ]||[ "${forceupdate}" == "1" ]; then
+ fn_print_ok_nl "Checking for update: ${remotelocation}"
+ echo -en "\n"
+ echo -e "Update available"
+ echo -e "* Local build: ${red}${localbuild} ${jk2arch}${default}"
+ echo -e "* Remote build: ${green}${remotebuild} ${jk2arch}${default}"
+ echo -en "\n"
+ fn_script_log_info "Update available"
+ fn_script_log_info "Local build: ${localbuild} ${jk2arch}"
+ fn_script_log_info "Remote build: ${remotebuild} ${jk2arch}"
+ fn_script_log_info "${localbuild} > ${remotebuild}"
+
+ unset updateonstart
+ check_status.sh
+ # If server stopped.
+ if [ "${status}" == "0" ]; then
+ exitbypass=1
+ fn_update_jk2_dl
+ if [ "${requirerestart}" == "1" ]; then
+ exitbypass=1
+ command_start.sh
+ fn_firstcommand_reset
+ exitbypass=1
+ command_stop.sh
+ fn_firstcommand_reset
+ fi
+ # If server started.
+ else
+ fn_print_restart_warning
+ exitbypass=1
+ command_stop.sh
+ fn_firstcommand_reset
+ exitbypass=1
+ fn_update_jk2_dl
+ exitbypass=1
+ command_start.sh
+ fn_firstcommand_reset
+ fi
+ date +%s > "${lockdir}/lastupdate.lock"
+ alert="update"
+ alert.sh
+ else
+ fn_print_ok_nl "Checking for update: ${remotelocation}"
+ echo -en "\n"
+ echo -e "No update available"
+ echo -e "* Local build: ${green}${localbuild} ${jk2arch}${default}"
+ echo -e "* Remote build: ${green}${remotebuild} ${jk2arch}${default}"
+ echo -en "\n"
+ fn_script_log_info "No update available"
+ fn_script_log_info "Local build: ${localbuild} ${jk2arch}"
+ fn_script_log_info "Remote build: ${remotebuild} ${jk2arch}"
+ fi
+}
+
+# The location where the builds are checked and downloaded.
+remotelocation="jk2mv.org"
+
+# Game server architecture.
+jk2arch="x64"
+
+if [ "${firstcommandname}" == "INSTALL" ]; then
+ fn_update_jk2_remotebuild
+ fn_update_jk2_dl
+else
+ update_steamcmd.sh
+ fn_print_dots "Checking for update"
+ fn_print_dots "Checking for update: ${remotelocation}"
+ fn_script_log_info "Checking for update: ${remotelocation}"
+ fn_update_jk2_localbuild
+ fn_update_jk2_remotebuild
+ fn_update_jk2_compare
+fi
diff --git a/lgsm/functions/update_minecraft.sh b/lgsm/functions/update_minecraft.sh
index dfa57aa48..bd8bd3d33 100644
--- a/lgsm/functions/update_minecraft.sh
+++ b/lgsm/functions/update_minecraft.sh
@@ -7,14 +7,12 @@
functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
fn_update_minecraft_dl(){
- if [ "${branch}" == "release" ]; then
- latestmcreleaselink=$(curl -s "https://launchermeta.${remotelocation}/mc/game/version_manifest.json" | jq -r '.latest.release as $latest | .versions[] | select(.id == $latest) | .url')
- else
- latestmcreleaselink=$(curl -s "https://launchermeta.${remotelocation}/mc/game/version_manifest.json" | jq -r '.versions[0].url')
- fi
+ # Generate link to version manifest json.
+ remotebuildlink=$(curl -s "https://launchermeta.${remotelocation}/mc/game/version_manifest.json" | jq -r --arg branch ${branch} --arg mcversion ${remotebuild} '.versions | .[] | select(.type==$branch and .id==$mcversion) | .url')
+ # Generate link to server.jar
+ remotebuildurl=$(curl -s "${remotebuildlink}" | jq -r '.downloads.server.url')
- latestmcbuildurl=$(curl -s "${latestmcreleaselink}" | jq -r '.downloads.server.url')
- fn_fetch_file "${latestmcbuildurl}" "" "" "" "${tmpdir}" "minecraft_server.${remotebuild}.jar" "" "norun" "noforce" "nomd5"
+ fn_fetch_file "${remotebuildurl}" "" "" "" "${tmpdir}" "minecraft_server.${remotebuild}.jar" "" "norun" "noforce" "nomd5"
echo -e "copying to ${serverfiles}...\c"
cp "${tmpdir}/minecraft_server.${remotebuild}.jar" "${serverfiles}/minecraft_server.jar"
local exitcode=$?
@@ -34,87 +32,33 @@ fn_update_minecraft_dl(){
fn_update_minecraft_localbuild(){
# Gets local build info.
fn_print_dots "Checking local build: ${remotelocation}"
- # Uses log file to gather info.
- localbuild=$(grep version "${serverfiles}/logs/latest.log" 2>/dev/null | grep -Eo '((\.)?[0-9]{1,3}){1,3}\.[0-9]{1,3}(-pre[0-9]+)?|([0-9]+w[0-9]+[a-z])')
- if [ -z "${localbuild}" ]; then
- fn_print_error "Checking local build: ${remotelocation}"
- fn_print_error_nl "Checking local build: ${remotelocation}: no log files containing version info"
- fn_print_info_nl "Checking local build: ${remotelocation}: forcing server restart"
- fn_script_log_error "No log files containing version info"
- fn_script_log_info "Forcing serv./m er restart"
-
- # start the server to allow logs to be generated.
- check_status.sh
- # If server stopped.
- if [ "${status}" == "0" ]; then
- updatestatus="stopped"
- exitbypass=1
- command_start.sh
- # If server started.
- else
- exitbypass=1
- command_stop.sh
- exitbypass=1
- command_start.sh
- fi
-
- #check if game server started but crashed.
- sleep 5
- check_status.sh
- if [ "${status}" == "0" ]; then
- fn_print_fail_nl "Checking local build: ${remotelocation}: server has crashed on start"
- fn_script_log_fatal "server has crashed on start"
- core_exit.sh
- fi
-
- # check for localbuild until it is generated.
- totalseconds=0
- localbuild=$(grep version "${serverfiles}/logs/latest.log" 2>/dev/null | grep -Eo '((\.)?[0-9]{1,3}){1,3}\.[0-9]{1,3}(-pre[0-9]+)?|([0-9]+w[0-9]+[a-z])')
- while [ -z "${localbuild}" ]; do
- sleep 1
- fn_print_info "Checking local build: ${remotelocation}: waiting for log file: ${totalseconds}"
- if [ -v "${loopignore}" ]; then
- loopignore=1
- fn_script_log_info "Waiting for log file to generate"
- fi
-
- localbuild=$(grep version "${serverfiles}/logs/latest.log" 2>/dev/null | grep -Eo '((\.)?[0-9]{1,3}){1,3}\.[0-9]{1,3}(-pre[0-9]+)?|([0-9]+w[0-9]+[a-z])')
- if [ "${localbuild}" ]; then
- break
- # Stop the server if it was stopped when update started.
- if [ "${updatestatus}" == "stopped" ]; then
- exitbypass=1
- command_stop.sh
- fi
- fi
-
- if [ "${totalseconds}" -gt "120" ]; then
- localbuild="0"
- fn_print_error "Checking local build: ${remotelocation}: waiting for log file"
- fn_script_log_error "Local build did not generate"
- fn_script_log_error "Required log file may be missing"
- fn_script_log_error "Local build set to 0"
- fi
- totalseconds=$((totalseconds + 1))
- done
- fi
- if [ "${localbuild}" != "0" ]; then
+ # Uses executable to find local build.
+ cd "${executabledir}" || exit
+ if [ -f "minecraft_server.jar" ]; then
+ localbuild=$(unzip -p "minecraft_server.jar" version.json | jq -r '.id')
fn_print_ok "Checking local build: ${remotelocation}"
fn_script_log_pass "Checking local build"
+ else
+ localbuild="0"
+ fn_print_error "Checking local build: ${remotelocation}"
+ fn_script_log_error "Checking local build"
fi
-
-
}
fn_update_minecraft_remotebuild(){
# Gets remote build info.
- if [ "${branch}" == "release" ]; then
+ # Latest release.
+ if [ "${branch}" == "release" ] && [ "${mcversion}" == "latest" ]; then
remotebuild=$(curl -s "https://launchermeta.${remotelocation}/mc/game/version_manifest.json" | jq -r '.latest.release')
+ # Latest snapshot.
+ elif [ "${branch}" == "snapshot" ] && [ "${mcversion}" == "latest" ]; then
+ remotebuild=$(curl -s "https://launchermeta.${remotelocation}/mc/game/version_manifest.json" | jq -r '.latest.snapshot')
+ # Specific release/snapshot.
else
- remotebuild=$(curl -s "https://launchermeta.${remotelocation}/mc/game/version_manifest.json" | jq -r '.versions[0].id')
+ remotebuild=$(curl -s "https://launchermeta.${remotelocation}/mc/game/version_manifest.json" | jq -r --arg branch ${branch} --arg mcversion ${mcversion} '.versions | .[] | select(.type==$branch and .id==$mcversion) | .id')
fi
- if [ "${installer}" != "1" ]; then
+ if [ "${firstcommandname}" != "INSTALL" ]; then
fn_print_dots "Checking remote build: ${remotelocation}"
# Checks if remotebuild variable has been set.
if [ -z "${remotebuild}" ]||[ "${remotebuild}" == "null" ]; then
@@ -144,10 +88,10 @@ fn_update_minecraft_compare(){
echo -e "Update available"
echo -e "* Local build: ${red}${localbuild}${default}"
echo -e "* Remote build: ${green}${remotebuild}${default}"
- echo -en "\n"
if [ -n "${branch}" ]; then
echo -e "* Branch: ${branch}"
fi
+ echo -en "\n"
fn_script_log_info "Update available"
fn_script_log_info "Local build: ${localbuild}"
fn_script_log_info "Remote build: ${remotebuild}"
@@ -159,20 +103,27 @@ fn_update_minecraft_compare(){
if [ "${status}" == "0" ]; then
exitbypass=1
fn_update_minecraft_dl
- exitbypass=1
- command_start.sh
- exitbypass=1
- command_stop.sh
+ if [ "${requirerestart}" == "1" ]; then
+ exitbypass=1
+ command_start.sh
+ fn_firstcommand_reset
+ exitbypass=1
+ command_stop.sh
+ fn_firstcommand_reset
+ fi
# If server started.
else
- fn_stop_warning
+ fn_print_restart_warning
exitbypass=1
command_stop.sh
+ fn_firstcommand_reset
exitbypass=1
fn_update_minecraft_dl
exitbypass=1
command_start.sh
+ fn_firstcommand_reset
fi
+ unset exitbypass
date +%s > "${lockdir}/lastupdate.lock"
alert="update"
alert.sh
@@ -195,25 +146,10 @@ fn_update_minecraft_compare(){
fi
}
-fn_stop_warning(){
- fn_print_warn "Updating server: SteamCMD: ${selfname} will be stopped during update"
- fn_script_log_warn "Updating server: SteamCMD: ${selfname} will be stopped during update"
- totalseconds=3
- for seconds in {3..1}; do
- fn_print_warn "Updating server: SteamCMD: ${selfname} will be stopped during update: ${totalseconds}"
- totalseconds=$((totalseconds - 1))
- sleep 1
- if [ "${seconds}" == "0" ]; then
- break
- fi
- done
- fn_print_warn_nl "Updating server: SteamCMD: ${selfname} will be stopped during update"
-}
-
# The location where the builds are checked and downloaded.
remotelocation="mojang.com"
-if [ "${installer}" == "1" ]; then
+if [ "${firstcommandname}" == "INSTALL" ]; then
fn_update_minecraft_remotebuild
fn_update_minecraft_dl
else
diff --git a/lgsm/functions/update_minecraft_bedrock.sh b/lgsm/functions/update_minecraft_bedrock.sh
old mode 100644
new mode 100755
index 61cad6854..e12a3cc8e
--- a/lgsm/functions/update_minecraft_bedrock.sh
+++ b/lgsm/functions/update_minecraft_bedrock.sh
@@ -7,10 +7,10 @@
functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
fn_update_minecraft_dl(){
- latestmcbuildurl=$(curl -s "https://www.minecraft.net/en-us/download/server/bedrock/" | grep -o 'https://minecraft.azureedge.net/bin-linux/[^"]*zip')
+ latestmcbuildurl=$(curl -Ls "https://www.minecraft.net/en-us/download/server/bedrock/" | grep -o 'https://minecraft.azureedge.net/bin-linux/[^"]*zip')
fn_fetch_file "${latestmcbuildurl}" "" "" "" "${tmpdir}" "bedrock_server.${remotebuild}.zip"
echo -e "Extracting to ${serverfiles}...\c"
- if [ "${installer}" == "1" ]; then
+ if [ "${firstcommandname}" == "INSTALL" ]; then
unzip -oq "${tmpdir}/bedrock_server.${remotebuild}.zip" -x "server.properties" -d "${serverfiles}"
else
unzip -oq "${tmpdir}/bedrock_server.${remotebuild}.zip" -x "permissions.json" "server.properties" "whitelist.json" -d "${serverfiles}"
@@ -34,6 +34,7 @@ fn_update_minecraft_localbuild(){
fn_print_dots "Checking local build: ${remotelocation}"
# Uses log file to gather info.
# Log is generated and cleared on startup but filled on shutdown.
+ requirerestart=1
localbuild=$(grep Version "${consolelogdir}"/* 2>/dev/null | tail -1 | sed 's/.*Version //')
if [ -z "${localbuild}" ]; then
fn_print_error "Checking local build: ${remotelocation}"
@@ -47,13 +48,16 @@ fn_update_minecraft_localbuild(){
if [ "${status}" == "0" ]; then
exitbypass=1
command_start.sh
+ fn_firstcommand_reset
sleep 3
exitbypass=1
command_stop.sh
+ fn_firstcommand_reset
# If server started.
else
exitbypass=1
command_stop.sh
+ fn_firstcommand_reset
fi
fi
@@ -74,8 +78,8 @@ fn_update_minecraft_localbuild(){
fn_update_minecraft_remotebuild(){
# Gets remote build info.
- remotebuild=$(curl -s "https://www.minecraft.net/en-us/download/server/bedrock/" | grep -o 'https://minecraft.azureedge.net/bin-linux/[^"]*' | sed 's/.*\///' | grep -Eo "[.0-9]+[0-9]")
- if [ "${installer}" != "1" ]; then
+ remotebuild=$(curl -Ls "https://www.minecraft.net/en-us/download/server/bedrock/" | grep -o 'https://minecraft.azureedge.net/bin-linux/[^"]*' | sed 's/.*\///' | grep -Eo "[.0-9]+[0-9]")
+ if [ "${firstcommandname}" != "INSTALL" ]; then
fn_print_dots "Checking remote build: ${remotelocation}"
# Checks if remotebuild variable has been set.
if [ -z "${remotebuild}" ]||[ "${remotebuild}" == "null" ]; then
@@ -119,20 +123,27 @@ fn_update_minecraft_compare(){
if [ "${status}" == "0" ]; then
exitbypass=1
fn_update_minecraft_dl
- exitbypass=1
- command_start.sh
- exitbypass=1
- command_stop.sh
+ if [ "${requirerestart}" == "1" ]; then
+ exitbypass=1
+ command_start.sh
+ fn_firstcommand_reset
+ exitbypass=1
+ command_stop.sh
+ fn_firstcommand_reset
+ fi
# If server started.
else
- fn_stop_warning
+ fn_print_restart_warning
exitbypass=1
command_stop.sh
+ fn_firstcommand_reset
exitbypass=1
fn_update_minecraft_dl
exitbypass=1
command_start.sh
+ fn_firstcommand_reset
fi
+ unset exitbypass
date +%s > "${lockdir}/lastupdate.lock"
alert="update"
alert.sh
@@ -149,25 +160,10 @@ fn_update_minecraft_compare(){
fi
}
-fn_stop_warning(){
- fn_print_warn "Updating server: SteamCMD: ${selfname} will be stopped during update"
- fn_script_log_warn "Updating server: SteamCMD: ${selfname} will be stopped during update"
- totalseconds=3
- for seconds in {3..1}; do
- fn_print_warn "Updating server: SteamCMD: ${selfname} will be stopped during update: ${totalseconds}"
- totalseconds=$((totalseconds - 1))
- sleep 1
- if [ "${seconds}" == "0" ]; then
- break
- fi
- done
- fn_print_warn_nl "Updating server: SteamCMD: ${selfname} will be stopped during update"
-}
-
# The location where the builds are checked and downloaded.
remotelocation="minecraft.net"
-if [ "${installer}" == "1" ]; then
+if [ "${firstcommandname}" == "INSTALL" ]; then
fn_update_minecraft_remotebuild
fn_update_minecraft_dl
else
diff --git a/lgsm/functions/update_mta.sh b/lgsm/functions/update_mta.sh
old mode 100644
new mode 100755
index 5aaecc122..e4e803d68
--- a/lgsm/functions/update_mta.sh
+++ b/lgsm/functions/update_mta.sh
@@ -30,6 +30,7 @@ fn_update_mta_localbuild(){
fn_print_dots "Checking local build: ${remotelocation}"
# Uses log file to gather info.
# Gives time for log file to generate.
+ requirerestart=1
if [ ! -f "${serverfiles}/mods/deathmatch/logs/server.log" ]; then
fn_print_error "Checking local build: ${remotelocation}"
fn_print_error_nl "Checking local build: ${remotelocation}: no log files containing version info"
@@ -40,6 +41,7 @@ fn_update_mta_localbuild(){
command_stop.sh
exitbypass=1
command_start.sh
+ fn_firstcommand_reset
totalseconds=0
# Check again, allow time to generate logs.
while [ ! -f "${serverfiles}/mods/deathmatch/logs/server.log" ]; do
@@ -100,7 +102,7 @@ fn_update_mta_remotebuild(){
minorversion=$(curl -s https://raw.githubusercontent.com/multitheftauto/mtasa-blue/master/Server/version.h | grep "#define MTASA_VERSION_MINOR" | awk '{ print $3 }' | sed 's/\r//g')
maintenanceversion=$(curl -s https://raw.githubusercontent.com/multitheftauto/mtasa-blue/master/Server/version.h | grep "#define MTASA_VERSION_MAINTENANCE" | awk '{ print $3 }' | sed 's/\r//g')
remotebuild="${majorversion}.${minorversion}.${maintenanceversion}"
- if [ "${installer}" != "1" ]; then
+ if [ "${firstcommandname}" != "INSTALL" ]; then
fn_print_dots "Checking remote build: ${remotelocation}"
# Checks if remotebuild variable has been set.
if [ -z "${remotebuild}" ]||[ "${remotebuild}" == "null" ]; then
@@ -150,20 +152,27 @@ fn_update_mta_compare(){
if [ "${status}" == "0" ]; then
exitbypass=1
fn_update_mta_dl
- exitbypass=1
- command_start.sh
- exitbypass=1
- command_stop.sh
+ if [ "${requirerestart}" == "1" ]; then
+ exitbypass=1
+ command_start.sh
+ fn_firstcommand_reset
+ exitbypass=1
+ command_stop.sh
+ fn_firstcommand_reset
+ fi
# If server started.
else
- fn_stop_warning
+ fn_print_restart_warning
exitbypass=1
command_stop.sh
+ fn_firstcommand_reset
exitbypass=1
fn_update_mta_dl
exitbypass=1
command_start.sh
+ fn_firstcommand_reset
fi
+ unset exitbypass
date +%s > "${lockdir}/lastupdate.lock"
alert="update"
alert.sh
@@ -180,25 +189,10 @@ fn_update_mta_compare(){
fi
}
-fn_stop_warning(){
- fn_print_warn "Updating server: SteamCMD: ${selfname} will be stopped during update"
- fn_script_log_warn "Updating server: SteamCMD: ${selfname} will be stopped during update"
- totalseconds=3
- for seconds in {3..1}; do
- fn_print_warn "Updating server: SteamCMD: ${selfname} will be stopped during update: ${totalseconds}"
- totalseconds=$((totalseconds - 1))
- sleep 1
- if [ "${seconds}" == "0" ]; then
- break
- fi
- done
- fn_print_warn_nl "Updating server: SteamCMD: ${selfname} will be stopped during update"
-}
-
# The location where the builds are checked and downloaded.
remotelocation="linux.mtasa.com"
-if [ "${installer}" == "1" ]; then
+if [ "${firstcommandname}" == "INSTALL" ]; then
fn_update_mta_remotebuild
fn_update_mta_dl
else
diff --git a/lgsm/functions/update_mumble.sh b/lgsm/functions/update_mumble.sh
old mode 100644
new mode 100755
index ee6a2b0ad..5221f0503
--- a/lgsm/functions/update_mumble.sh
+++ b/lgsm/functions/update_mumble.sh
@@ -43,7 +43,7 @@ fn_update_mumble_localbuild(){
fn_update_mumble_remotebuild(){
# Gets remote build info.
remotebuild=$(curl -s "https://api.github.com/repos/mumble-voip/mumble/releases/latest" | grep 'murmur-static_x86.*\.bz2"' | tail -1 | awk -F"/" '{ print $8 }')
- if [ "${installer}" != "1" ]; then
+ if [ "${firstcommandname}" != "INSTALL" ]; then
fn_print_dots "Checking remote build: ${remotelocation}"
# Checks if remotebuild variable has been set.
if [ -z "${remotebuild}" ]||[ "${remotebuild}" == "null" ]; then
@@ -87,20 +87,27 @@ fn_update_mumble_compare(){
if [ "${status}" == "0" ]; then
exitbypass=1
fn_update_mumble_dl
- exitbypass=1
- command_start.sh
- exitbypass=1
- command_stop.sh
+ if [ "${requirerestart}" == "1" ]; then
+ exitbypass=1
+ command_start.sh
+ fn_firstcommand_reset
+ exitbypass=1
+ command_stop.sh
+ fn_firstcommand_reset
+ fi
# If server started.
else
- fn_stop_warning
+ fn_print_restart_warning
exitbypass=1
command_stop.sh
+ fn_firstcommand_reset
exitbypass=1
fn_update_mumble_dl
exitbypass=1
command_start.sh
+ fn_firstcommand_reset
fi
+ unset exitbypass
date +%s > "${lockdir}/lastupdate.lock"
alert="update"
alert.sh
@@ -117,28 +124,13 @@ fn_update_mumble_compare(){
fi
}
-fn_stop_warning(){
- fn_print_warn "Updating server: SteamCMD: ${selfname} will be stopped during update"
- fn_script_log_warn "Updating server: SteamCMD: ${selfname} will be stopped during update"
- totalseconds=3
- for seconds in {3..1}; do
- fn_print_warn "Updating server: SteamCMD: ${selfname} will be stopped during update: ${totalseconds}"
- totalseconds=$((totalseconds - 1))
- sleep 1
- if [ "${seconds}" == "0" ]; then
- break
- fi
- done
- fn_print_warn_nl "Updating server: SteamCMD: ${selfname} will be stopped during update"
-}
-
# The location where the builds are checked and downloaded.
remotelocation="mumble.info"
# Game server architecture.
mumblearch="x86"
-if [ "${installer}" == "1" ]; then
+if [ "${firstcommandname}" == "INSTALL" ]; then
fn_update_mumble_remotebuild
fn_update_mumble_dl
else
diff --git a/lgsm/functions/update_steamcmd.sh b/lgsm/functions/update_steamcmd.sh
index 8a089c7f7..0733a57d2 100644
--- a/lgsm/functions/update_steamcmd.sh
+++ b/lgsm/functions/update_steamcmd.sh
@@ -6,242 +6,32 @@
functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
-fn_update_steamcmd_dl(){
- info_config.sh
- # Detects if unbuffer command is available for 32 bit distributions only.
- info_distro.sh
- if [ "$(command -v stdbuf)" ]&&[ "${arch}" != "x86_64" ]; then
- unbuffer="stdbuf -i0 -o0 -e0"
- fi
- if [ -d "${steamcmddir}" ]; then
- cd "${steamcmddir}" || exit
- fi
-
- # If GoldSrc (appid 90) servers. GoldSrc (appid 90) require extra commands.
- if [ "${appid}" == "90" ]; then
- # If using a specific branch.
- if [ -n "${branch}" ]; then
- ${unbuffer} ${steamcmdcommand} +login "${steamuser}" "${steampass}" +force_install_dir "${serverfiles}" +app_set_config 90 mod "${appidmod}" +app_update "${appid}" -beta "${branch}" +quit | tee -a "${lgsmlog}"
- else
- ${unbuffer} ${steamcmdcommand} +login "${steamuser}" "${steampass}" +force_install_dir "${serverfiles}" +app_set_config 90 mod "${appidmod}" +app_update "${appid}" +quit | tee -a "${lgsmlog}"
- fi
- elif [ "${shortname}" == "ac" ]; then
- ${unbuffer} ${steamcmdcommand} +@sSteamCmdForcePlatformType windows +login "${steamuser}" "${steampass}" +force_install_dir "${serverfiles}" +app_update "${appid}" +quit
- # All other servers.
- else
- if [ -n "${branch}" ]; then
- ${unbuffer} ${steamcmdcommand} +login "${steamuser}" "${steampass}" +force_install_dir "${serverfiles}" +app_update "${appid}" -beta "${branch}" +quit | tee -a "${lgsmlog}"
- else
- ${unbuffer} ${steamcmdcommand} +login "${steamuser}" "${steampass}" +force_install_dir "${serverfiles}" +app_update "${appid}" +quit | tee -a "${lgsmlog}"
- fi
- fi
- fix.sh
-}
-
-fn_update_steamcmd_localbuild(){
- # Gets local build info.
- fn_print_dots "Checking local build: ${remotelocation}"
- fn_appmanifest_check
- # Uses appmanifest to find local build.
- localbuild=$(grep buildid "${appmanifestfile}" | tr '[:blank:]"' ' ' | tr -s ' ' | cut -d\ -f3)
-
- # Set branch for updateinfo.
- IFS=' ' read -ra branchsplits <<< "${branch}"
- if [ "${#branchsplits[@]}" -gt 1 ]; then
- branchname="${branchsplits[1]}"
- else
- branchname="public"
- fi
-
- # Checks if localbuild variable has been set.
- if [ -z "${localbuild}" ]||[ "${localbuild}" == "null" ]; then
- fn_print_fail "Checking local build: ${remotelocation}"
- fn_script_log_fatal "Checking local build"
- core_exit.sh
- else
- fn_print_ok "Checking local build: ${remotelocation}"
- fn_script_log_pass "Checking local build"
- fi
-}
-
-fn_update_steamcmd_remotebuild(){
- # Gets remote build info.
- if [ -d "${steamcmddir}" ]; then
- cd "${steamcmddir}" || exit
- fi
-
- # Removes appinfo.vdf as a fix for not always getting up to date version info from SteamCMD.
- if [ "$(find "${HOME}" -type f -name "appinfo.vdf" | wc -l)" -ne "0" ]; then
- find "${HOME}" -type f -name "appinfo.vdf" -exec rm -f {} \;
- fi
-
- remotebuild=$(${steamcmdcommand} +login "${steamuser}" "${steampass}" +app_info_update 1 +app_info_print "${appid}" +quit | sed '1,/branches/d' | sed "1,/${branchname}/d" | grep -m 1 buildid | tr -cd '[:digit:]')
- if [ "${installer}" != "1" ]; then
- fn_print_dots "Checking remote build: ${remotelocation}"
- # Checks if remotebuild variable has been set.
- if [ -z "${remotebuild}" ]||[ "${remotebuild}" == "null" ]; then
- fn_print_fail "Checking remote build: ${remotelocation}"
- fn_script_log_fatal "Checking remote build"
- core_exit.sh
- else
- fn_print_ok "Checking remote build: ${remotelocation}"
- fn_script_log_pass "Checking remote build"
- fi
- else
- # Checks if remotebuild variable has been set.
- if [ -z "${remotebuild}" ]||[ "${remotebuild}" == "null" ]; then
- fn_print_failure "Unable to get remote build"
- fn_script_log_fatal "Unable to get remote build"
- core_exit.sh
- fi
- fi
-}
-
-fn_update_steamcmd_compare(){
- fn_print_dots "Checking for update: ${remotelocation}"
- if [ "${localbuild}" != "${remotebuild}" ]; then
- fn_print_ok_nl "Checking for update: ${remotelocation}"
- echo -en "\n"
- echo -e "Update available"
- echo -e "* Local build: ${red}${localbuild}${default}"
- echo -e "* Remote build: ${green}${remotebuild}${default}"
- if [ -v "${branch}" ]; then
- echo -e "* Branch: ${branch}"
- fi
- echo -e "https://steamdb.info/app/${appid}/"
- echo -en "\n"
- fn_script_log_info "Update available"
- fn_script_log_info "Local build: ${localbuild}"
- fn_script_log_info "Remote build: ${remotebuild}"
- if [ -v "${branch}" ]; then
- fn_script_log_info "Branch: ${branch}"
- fi
- fn_script_log_info "${localbuild} > ${remotebuild}"
-
- unset updateonstart
- check_status.sh
- # If server stopped.
- if [ "${status}" == "0" ]; then
- fn_update_steamcmd_dl
- # If server started.
- else
- fn_stop_warning
- exitbypass=1
- command_stop.sh
- exitbypass=1
- fn_update_steamcmd_dl
- exitbypass=1
- command_start.sh
- fi
- date +%s > "${lockdir}/lastupdate.lock"
- alert="update"
- alert.sh
- else
- fn_print_ok_nl "Checking for update: ${remotelocation}"
- echo -en "\n"
- echo -e "No update available"
- echo -e "* Local build: ${green}${localbuild}${default}"
- echo -e "* Remote build: ${green}${remotebuild}${default}"
- if [ -v "${branch}" ]; then
- echo -e "* Branch: ${branch}"
- fi
- echo -e "https://steamdb.info/app/${appid}/"
- echo -en "\n"
- fn_script_log_info "No update available"
- fn_script_log_info "Local build: ${localbuild}"
- fn_script_log_info "Remote build: ${remotebuild}"
- if [ -v "${branch}" ]; then
- fn_script_log_info "Branch: ${branch}"
- fi
- fi
-}
-
-fn_appmanifest_info(){
- appmanifestfile=$(find "${serverfiles}" -type f -name "appmanifest_${appid}.acf")
- appmanifestfilewc=$(find "${serverfiles}" -type f -name "appmanifest_${appid}.acf" | wc -l)
-}
-
-fn_appmanifest_check(){
- fn_appmanifest_info
- # Multiple or no matching appmanifest files may sometimes be present.
- # This error is corrected if required.
- if [ "${appmanifestfilewc}" -ge "2" ]; then
- fn_print_error "Multiple appmanifest_${appid}.acf files found"
- fn_script_log_error "Multiple appmanifest_${appid}.acf files found"
- fn_print_dots "Removing x${appmanifestfilewc} appmanifest_${appid}.acf files"
- for appfile in ${appmanifestfile}; do
- rm -f "${appfile:?}"
- done
- appmanifestfilewc1="${appmanifestfilewc}"
- fn_appmanifest_info
- # if error can not be resolved.
- if [ "${appmanifestfilewc}" -ge "2" ]; then
- fn_print_fail "Unable to remove x${appmanifestfilewc} appmanifest_${appid}.acf files"
- fn_script_log_fatal "Unable to remove x${appmanifestfilewc} appmanifest_${appid}.acf files"
- echo -e "* Check user permissions"
- for appfile in ${appmanifestfile}; do
- echo -e " ${appfile}"
- done
- core_exit.sh
- else
- fn_print_ok "Removed x${appmanifestfilewc1} appmanifest_${appid}.acf files"
- fn_script_log_pass "Removed x${appmanifestfilewc1} appmanifest_${appid}.acf files"
- fn_print_info_nl "Forcing update to correct issue"
- fn_script_log_info "Forcing update to correct issue"
- fn_update_steamcmd_dl
- fi
- elif [ "${appmanifestfilewc}" -eq "0" ]; then
- fn_print_error_nl "No appmanifest_${appid}.acf found"
- fn_script_log_error "No appmanifest_${appid}.acf found"
- fn_print_info_nl "Forcing update to correct issue"
- fn_script_log_info "Forcing update to correct issue"
- fn_update_steamcmd_dl
- fn_appmanifest_info
- if [ "${appmanifestfilewc}" -eq "0" ]; then
- fn_print_fail_nl "Still no appmanifest_${appid}.acf found"
- fn_script_log_fatal "Still no appmanifest_${appid}.acf found"
- core_exit.sh
- fi
- fi
-}
-
-fn_stop_warning(){
- fn_print_warn "Updating server: SteamCMD: ${selfname} will be stopped during update"
- fn_script_log_warn "Updating server: SteamCMD: ${selfname} will be stopped during update"
- totalseconds=3
- for seconds in {3..1}; do
- fn_print_warn "Updating server: SteamCMD: ${selfname} will be stopped during update: ${totalseconds}"
- totalseconds=$((totalseconds - 1))
- sleep 1
- if [ "${seconds}" == "0" ]; then
- break
- fi
- done
- fn_print_warn_nl "Updating server: SteamCMD: ${selfname} will be stopped during update"
-}
+# init steamcmd functions
+core_steamcmd.sh
# The location where the builds are checked and downloaded.
remotelocation="SteamCMD"
-check_steamcmd.sh
+check.sh
+
+fn_print_dots "${remotelocation}"
if [ "${forceupdate}" == "1" ]; then
# forceupdate bypasses update checks.
- check_status.sh
if [ "${status}" != "0" ]; then
- fn_stop_warning
+ fn_print_restart_warning
exitbypass=1
command_stop.sh
- fn_update_steamcmd_dl
+ fn_firstcommand_reset
+ fn_dl_steamcmd
date +%s > "${lockdir}/lastupdate.lock"
exitbypass=1
command_start.sh
+ fn_firstcommand_reset
else
- fn_update_steamcmd_dl
+ fn_dl_steamcmd
date +%s > "${lockdir}/lastupdate.lock"
fi
else
- fn_print_dots "Checking for update"
- fn_print_dots "Checking for update: ${remotelocation}"
fn_update_steamcmd_localbuild
fn_update_steamcmd_remotebuild
fn_update_steamcmd_compare
diff --git a/lgsm/functions/update_ts3.sh b/lgsm/functions/update_ts3.sh
old mode 100644
new mode 100755
index a5cc0dd60..bea143ff5
--- a/lgsm/functions/update_ts3.sh
+++ b/lgsm/functions/update_ts3.sh
@@ -34,6 +34,7 @@ fn_update_ts3_localbuild(){
fn_print_dots "Checking local build: ${remotelocation}"
# Uses log file to gather info.
# Gives time for log file to generate.
+ requirerestart=1
if [ ! -d "${serverfiles}/logs" ]||[ -z "$(find "${serverfiles}/logs/"* -name 'ts3server*_0.log' 2> /dev/null)" ]; then
fn_print_error "Checking local build: ${remotelocation}"
fn_print_error_nl "Checking local build: ${remotelocation}: no log files containing version info"
@@ -44,6 +45,7 @@ fn_update_ts3_localbuild(){
command_stop.sh
exitbypass=1
command_start.sh
+ fn_firstcommand_reset
totalseconds=0
# Check again, allow time to generate logs.
while [ ! -d "${serverfiles}/logs" ]||[ -z "$(find "${serverfiles}/logs/"* -name 'ts3server*_0.log' 2> /dev/null)" ]; do
@@ -105,7 +107,7 @@ fn_update_ts3_remotebuild(){
elif [ "${arch}" == "x86" ]; then
remotebuild=$(curl -s "https://www.teamspeak.com/versions/server.json" | jq -r '.linux.x86.version')
fi
- if [ "${installer}" != "1" ]; then
+ if [ "${firstcommandname}" != "INSTALL" ]; then
fn_print_dots "Checking remote build: ${remotelocation}"
# Checks if remotebuild variable has been set.
if [ -z "${remotebuild}" ]||[ "${remotebuild}" == "null" ]; then
@@ -148,20 +150,27 @@ fn_update_ts3_compare(){
if [ "${status}" == "0" ]; then
exitbypass=1
fn_update_ts3_dl
- exitbypass=1
- command_start.sh
- exitbypass=1
- command_stop.sh
+ if [ "${requirerestart}" == "1" ]; then
+ exitbypass=1
+ command_start.sh
+ fn_firstcommand_reset
+ exitbypass=1
+ command_stop.sh
+ fn_firstcommand_reset
+ fi
# If server started.
else
- fn_stop_warning
+ fn_print_restart_warning
exitbypass=1
command_stop.sh
+ fn_firstcommand_reset
exitbypass=1
fn_update_ts3_dl
exitbypass=1
command_start.sh
+ fn_firstcommand_reset
fi
+ unset exitbypass
date +%s > "${lockdir}/lastupdate.lock"
alert="update"
alert.sh
@@ -190,25 +199,10 @@ else
core_exit.sh
fi
-fn_stop_warning(){
- fn_print_warn "Updating server: SteamCMD: ${selfname} will be stopped during update"
- fn_script_log_warn "Updating server: SteamCMD: ${selfname} will be stopped during update"
- totalseconds=3
- for seconds in {3..1}; do
- fn_print_warn "Updating server: SteamCMD: ${selfname} will be stopped during update: ${totalseconds}"
- totalseconds=$((totalseconds - 1))
- sleep 1
- if [ "${seconds}" == "0" ]; then
- break
- fi
- done
- fn_print_warn_nl "Updating server: SteamCMD: ${selfname} will be stopped during update"
-}
-
# The location where the builds are checked and downloaded.
remotelocation="teamspeak.com"
-if [ "${installer}" == "1" ]; then
+if [ "${firstcommandname}" == "INSTALL" ]; then
fn_update_ts3_remotebuild
fn_update_ts3_dl
else
diff --git a/lgsm/functions/update_vintagestory.sh b/lgsm/functions/update_vintagestory.sh
new file mode 100755
index 000000000..093f27c8d
--- /dev/null
+++ b/lgsm/functions/update_vintagestory.sh
@@ -0,0 +1,147 @@
+#!/bin/bash
+# LinuxGSM update_vintagestory.sh function
+# Author: Christian Birk
+# Website: https://linuxgsm.com
+# Description: Handles updating of Vintage Story servers.
+
+functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
+
+fn_update_vs_dl(){
+ # get version info for download
+ remotebuildresponse=$(curl -s "${apiurl}" | jq --arg version "${remotebuild}" '.[$version].server')
+ remotebuildfile=$(echo -e "${remotebuildresponse}" | jq -r '.filename')
+ remotebuildlink=$(echo -e "${remotebuildresponse}" | jq -r '.urls.cdn')
+ remotebuildmd5=$(echo -e "${remotebuildresponse}" | jq -r '.md5')
+
+ # Download and extract files to serverfiles
+ fn_fetch_file "${remotebuildlink}" "" "" "" "${tmpdir}" "${remotebuildfile}" "nochmodx" "norun" "force" "${remotebuildmd5}"
+ fn_dl_extract "${tmpdir}" "${remotebuildfile}" "${serverfiles}"
+ fn_clear_tmp
+}
+
+fn_update_vs_localbuild(){
+ # Gets local build info.
+ fn_print_dots "Checking local build: ${remotelocation}"
+ # Uses executable to find local build.
+ cd "${executabledir}" || exit
+ if [ -f "${executable}" ]; then
+ localbuild="$(${preexecutable} ${executable} --version | sed '/^[[:space:]]*$/d')"
+ fn_print_ok "Checking local build: ${remotelocation}"
+ fn_script_log_pass "Checking local build"
+ else
+ localbuild="0"
+ fn_print_error "Checking local build: ${remotelocation}"
+ fn_script_log_error "Checking local build"
+ fi
+}
+
+fn_update_vs_remotebuild(){
+ if [ "${branch}" == "stable" ]; then
+ remotebuild=$(curl -s "${apiurl}" | jq -r '[ to_entries[] ] | .[].key' | grep -Ev "\-rc|\-pre" | sort -r -V | head -1)
+ else
+ remotebuild=$(curl -s "${apiurl}" | jq -r '[ to_entries[] ] | .[].key' | grep -E "\-rc|\-pre" | sort -r -V | head -1)
+ fi
+
+ if [ "${firstcommandname}" != "INSTALL" ]; then
+ fn_print_dots "Checking remote build: ${remotelocation}"
+ # Checks if remotebuild variable has been set.
+ if [ -z "${remotebuild}" ]||[ "${remotebuild}" == "null" ]; then
+ fn_print_fail "Checking remote build: ${remotelocation}"
+ fn_script_log_fatal "Checking remote build"
+ core_exit.sh
+ else
+ fn_print_ok "Checking remote build: ${remotelocation}"
+ fn_script_log_pass "Checking remote build"
+ fi
+ else
+ # Checks if remotebuild variable has been set.
+ if [ -z "${remotebuild}" ]||[ "${remotebuild}" == "null" ]; then
+ fn_print_failure "Unable to get remote build"
+ fn_script_log_fatal "Unable to get remote build"
+ core_exit.sh
+ fi
+ fi
+}
+
+fn_update_vs_compare(){
+ # Removes dots so if statement can compare version numbers.
+ fn_print_dots "Checking for update: ${remotelocation}"
+ if [ "${localbuild}" != "${remotebuild}" ]||[ "${forceupdate}" == "1" ]; then
+ fn_print_ok_nl "Checking for update: ${remotelocation}"
+ echo -en "\n"
+ echo -e "Update available"
+ echo -e "* Local build: ${red}${localbuild}${default}"
+ echo -e "* Remote build: ${green}${remotebuild}${default}"
+ if [ -n "${branch}" ]; then
+ echo -e "* Branch: ${branch}"
+ fi
+ echo -en "\n"
+ fn_script_log_info "Update available"
+ fn_script_log_info "Local build: ${localbuild}"
+ fn_script_log_info "Remote build: ${remotebuild}"
+ fn_script_log_info "${localbuild} > ${remotebuild}"
+
+ unset updateonstart
+ check_status.sh
+ # If server stopped.
+ if [ "${status}" == "0" ]; then
+ exitbypass=1
+ fn_update_vs_dl
+ if [ "${requirerestart}" == "1" ]; then
+ exitbypass=1
+ command_start.sh
+ fn_firstcommand_reset
+ exitbypass=1
+ command_stop.sh
+ fn_firstcommand_reset
+ fi
+ # If server started.
+ else
+ fn_print_restart_warning
+ exitbypass=1
+ command_stop.sh
+ fn_firstcommand_reset
+ exitbypass=1
+ fn_update_vs_dl
+ exitbypass=1
+ command_start.sh
+ fn_firstcommand_reset
+ fi
+ unset exitbypass
+ date +%s > "${lockdir}/lastupdate.lock"
+ alert="update"
+ alert.sh
+ else
+ fn_print_ok_nl "Checking for update: ${remotelocation}"
+ echo -en "\n"
+ echo -e "No update available"
+ echo -e "* Local build: ${green}${localbuild}${default}"
+ echo -e "* Remote build: ${green}${remotebuild}${default}"
+ if [ -n "${branch}" ]; then
+ echo -e "* Branch: ${branch}"
+ fi
+ echo -en "\n"
+ fn_script_log_info "No update available"
+ fn_script_log_info "Local build: ${localbuild}"
+ fn_script_log_info "Remote build: ${remotebuild}"
+ if [ -n "${branch}" ]; then
+ fn_script_log_info "Branch: ${branch}"
+ fi
+ fi
+}
+
+# The location where the builds are checked and downloaded.
+remotelocation="vintagestory.at"
+apiurl="http://api.${remotelocation}/stable-unstable.json"
+
+if [ "${firstcommandname}" == "INSTALL" ]; then
+ fn_update_vs_remotebuild
+ fn_update_vs_dl
+else
+ fn_print_dots "Checking for update"
+ fn_print_dots "Checking for update: ${remotelocation}"
+ fn_script_log_info "Checking for update: ${remotelocation}"
+ fn_update_vs_localbuild
+ fn_update_vs_remotebuild
+ fn_update_vs_compare
+fi
diff --git a/linuxgsm.sh b/linuxgsm.sh
old mode 100755
new mode 100644
index 108c68f83..029dd573c
--- a/linuxgsm.sh
+++ b/linuxgsm.sh
@@ -20,7 +20,7 @@ if [ -f ".dev-debug" ]; then
set -x
fi
-version="v20.3.3"
+version="v20.6.2"
shortname="core"
gameservername="core"
commandname="CORE"
@@ -82,8 +82,7 @@ fn_bootstrap_fetch_file(){
remote_fileurls_array=( remote_fileurl )
fi
- for remote_fileurl_array in "${remote_fileurls_array[@]}"
- do
+ for remote_fileurl_array in "${remote_fileurls_array[@]}"; do
if [ "${remote_fileurl_array}" == "remote_fileurl" ]; then
fileurl="${remote_fileurl}"
fileurl_name="${remote_fileurl_name}"
@@ -100,7 +99,7 @@ fn_bootstrap_fetch_file(){
# Larger files show a progress bar.
echo -en "fetching ${fileurl_name} ${local_filename}...\c"
- curlcmd=$(curl -s --fail -L -o "${local_filedir}/${local_filename}" "${fileurl}" 2>&1)
+ curlcmd=$(curl --connect-timeout 10 -s --fail -L -o "${local_filedir}/${local_filename}" "${fileurl}" 2>&1)
local exitcode=$?
@@ -113,7 +112,7 @@ fn_bootstrap_fetch_file(){
fi
# On first try will error. On second try will fail.
- if [ ${exitcode} -ne 0 ]; then
+ if [ "${exitcode}" != 0 ]; then
if [ ${counter} -ge 2 ]; then
echo -e "FAIL"
if [ -f "${lgsmlog}" ]; then
@@ -161,7 +160,8 @@ fn_bootstrap_fetch_file(){
fn_bootstrap_fetch_file_github(){
github_file_url_dir="${1}"
github_file_url_name="${2}"
- if [ "${githubbranch}" == "master" ]&&[ "${commandname}" != "UPDATE-LGSM" ]; then
+ # If master branch will currently running LinuxGSM version to prevent "version mixing". This is ignored if a fork.
+ if [ "${githubbranch}" == "master" ]&&[ "${githubuser}" == "GameServerManager" ]&&[ "${commandname}" != "UPDATE-LGSM" ]; then
remote_fileurl="https://raw.githubusercontent.com/${githubuser}/${githubrepo}/${version}/${github_file_url_dir}/${github_file_url_name}"
remote_fileurl_backup="https://bitbucket.org/${githubuser}/${githubrepo}/raw/${version}/${github_file_url_dir}/${github_file_url_name}"
else
@@ -381,7 +381,7 @@ else
mkdir -p "${configdirserver}"
echo -en "copying _default.cfg...\c"
cp -R "${configdirdefault}/config-lgsm/${gameservername}/_default.cfg" "${configdirserver}/_default.cfg"
- if [ $? -ne 0 ]; then
+ if [ $? != 0 ]; then
echo -e "FAIL"
exit 1
else
@@ -393,7 +393,7 @@ else
fn_print_warn_nl "_default.cfg has altered. reloading config."
echo -en "copying _default.cfg...\c"
cp -R "${configdirdefault}/config-lgsm/${gameservername}/_default.cfg" "${configdirserver}/_default.cfg"
- if [ $? -ne 0 ]; then
+ if [ $? != 0 ]; then
echo -e "FAIL"
exit 1
else
@@ -401,32 +401,65 @@ else
fi
fi
fi
+ fi
+ # Configs have to be loaded twice to allow start startparameters to pick up all vars
+ # shellcheck source=/dev/null
+ source "${configdirserver}/_default.cfg"
+ # Load the common.cfg config. If missing download it.
+ if [ ! -f "${configdirserver}/common.cfg" ]; then
+ fn_fetch_config "lgsm/config-default/config-lgsm" "common-template.cfg" "${configdirserver}" "common.cfg" "${chmodx}" "nochmodx" "norun" "noforcedl" "nomd5"
# shellcheck source=/dev/null
- source "${configdirserver}/_default.cfg"
- # Load the common.cfg config. If missing download it.
- if [ ! -f "${configdirserver}/common.cfg" ]; then
- fn_fetch_config "lgsm/config-default/config-lgsm" "common-template.cfg" "${configdirserver}" "common.cfg" "${chmodx}" "nochmodx" "norun" "noforcedl" "nomd5"
- # shellcheck source=/dev/null
- source "${configdirserver}/common.cfg"
- else
- # shellcheck source=/dev/null
- source "${configdirserver}/common.cfg"
- fi
- # Load the instance.cfg config. If missing download it.
- if [ ! -f "${configdirserver}/${selfname}.cfg" ]; then
- fn_fetch_config "lgsm/config-default/config-lgsm" "instance-template.cfg" "${configdirserver}" "${selfname}.cfg" "nochmodx" "norun" "noforcedl" "nomd5"
- # shellcheck source=/dev/null
- source "${configdirserver}/${selfname}.cfg"
- else
+ source "${configdirserver}/common.cfg"
+ else
+ # shellcheck source=/dev/null
+ source "${configdirserver}/common.cfg"
+ fi
+ # Load the secrets-common.cfg config. If missing download it.
+ if [ ! -f "${configdirserver}/secrets-common.cfg" ]; then
+ fn_fetch_config "lgsm/config-default/config-lgsm" "secrets-common-template.cfg" "${configdirserver}" "secrets-common.cfg" "${chmodx}" "nochmodx" "norun" "noforcedl" "nomd5"
+ # shellcheck source=/dev/null
+ source "${configdirserver}/secrets-common.cfg"
+ else
+ # shellcheck source=/dev/null
+ source "${configdirserver}/secrets-common.cfg"
+ fi
+ # Load the instance.cfg config. If missing download it.
+ if [ ! -f "${configdirserver}/${selfname}.cfg" ]; then
+ fn_fetch_config "lgsm/config-default/config-lgsm" "instance-template.cfg" "${configdirserver}" "${selfname}.cfg" "nochmodx" "norun" "noforcedl" "nomd5"
+ # shellcheck source=/dev/null
+ source "${configdirserver}/${selfname}.cfg"
+ else
+ # shellcheck source=/dev/null
+ source "${configdirserver}/${selfname}.cfg"
+ fi
+ # Load the secrets-instance.cfg config. If missing download it.
+ if [ ! -f "${configdirserver}/secrets-${selfname}.cfg" ]; then
+ fn_fetch_config "lgsm/config-default/config-lgsm" "secrets-instance-template.cfg" "${configdirserver}" "secrets-${selfname}.cfg" "nochmodx" "norun" "noforcedl" "nomd5"
+ # shellcheck source=/dev/null
+ source "${configdirserver}/secrets-${selfname}.cfg"
+ else
+ # shellcheck source=/dev/null
+ source "${configdirserver}/secrets-${selfname}.cfg"
+ fi
+ # Use eval if startparameters are only in _default.cfg to ensure all vars in startparameters are set.
+ if ! grep -qE "^[[:blank:]]*startparameters=" "${configdirserver}/common.cfg" "${configdirserver}/${selfname}.cfg" "${configdirserver}/secrets-common.cfg" "${configdirserver}/secrets-${selfname}.cfg"; then
+ if [ "${shortname}" == "wurm" ]; then
# shellcheck source=/dev/null
- source "${configdirserver}/${selfname}.cfg"
+ source "${servercfgfullpath}"
fi
- # Load the linuxgsm.sh in to tmpdir. If missing download it.
- if [ ! -f "${tmpdir}/linuxgsm.sh" ]; then
- fn_fetch_file_github "" "linuxgsm.sh" "${tmpdir}" "chmodx" "norun" "noforcedl" "nomd5"
+ if [ -n "${preexecutable}" ]; then
+ eval preexecutable="$(sed -nr 's/^ *preexecutable=(.*)$/\1/p' "${configdirserver}/_default.cfg")"
fi
+ eval startparameters="$(sed -nr 's/^ *startparameters=(.*)$/\1/p' "${configdirserver}/_default.cfg")"
+ eval executable="$(sed -nr 's/^ *executable=(.*)$/\1/p' "${configdirserver}/_default.cfg")"
fi
+
+ # Load the linuxgsm.sh in to tmpdir. If missing download it.
+ if [ ! -f "${tmpdir}/linuxgsm.sh" ]; then
+ fn_fetch_file_github "" "linuxgsm.sh" "${tmpdir}" "chmodx" "norun" "noforcedl" "nomd5"
+ fi
+
# Enables ANSI colours from core_messages.sh. Can be disabled with ansi=off.
fn_ansi_loader
# Prevents running of core_exit.sh for Travis-CI.
diff --git a/tests/tests_defaultcfg/defaultcfg_0.txt b/tests/tests_defaultcfg/defaultcfg_0.txt
index 50c1d0ee6..bcaa9f1dd 100644
--- a/tests/tests_defaultcfg/defaultcfg_0.txt
+++ b/tests/tests_defaultcfg/defaultcfg_0.txt
@@ -1,8 +1,6 @@
stats
displayip
postalert
-postdays
-posttarget
discordalert
discordwebhook
emailalert
@@ -19,10 +17,13 @@ mailgunemail
pushbulletalert
pushbullettoken
channeltag
-pushoveralert
-pushovertoken
+rocketchatalert
+rocketchatwebhook
+rocketchattoken
slackalert
slackwebhook
+pushoveralert
+pushovertoken
telegramalert
telegramtoken
telegramchatid
@@ -38,6 +39,8 @@ sleeptime
stopmode
querymode
querytype
+consoleverbose
+consoleinteract
gamename
engine
glibc
diff --git a/tests/tests_defaultcfg/defaultcfg_1.txt b/tests/tests_defaultcfg/defaultcfg_1.txt
index 505b6b1f0..aa5b8a207 100644
--- a/tests/tests_defaultcfg/defaultcfg_1.txt
+++ b/tests/tests_defaultcfg/defaultcfg_1.txt
@@ -6,7 +6,7 @@
# common.cfg - applies settings to every instance.
# [instance].cfg - applies settings to a specific instance.
#### Game Server Settings ####
-## Server Start Command | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
+## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
#### LinuxGSM Settings ####
## Notification Alerts
# (on|off)
@@ -20,9 +20,8 @@
# Pushover Alerts | https://docs.linuxgsm.com/alerts/pushover
# Slack Alerts | https://docs.linuxgsm.com/alerts/slack
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
-# You can add a custom cURL string eg proxy (useful in Russia) or else in "curlcustomstring".
-# like a "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help", if you not need
-# any custom string in curl - simple ignore this parameter.
+# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
## Backup | https://docs.linuxgsm.com/commands/backup
## Logging | https://docs.linuxgsm.com/features/logging
## Monitor | https://docs.linuxgsm.com/commands/monitor
@@ -41,6 +40,10 @@
# 8: 7 Days to Die
# 9: GoldSrc
# 10: Avorion
+# 11: end
+## Console type
+consoleverbose=""
+consoleinteract=""
## Game Server Details
# Do not edit
#### Directories ####
diff --git a/tests/tests_fctrserver.sh b/tests/tests_fctrserver.sh
index da71c2b5a..55a05f99f 100644
--- a/tests/tests_fctrserver.sh
+++ b/tests/tests_fctrserver.sh
@@ -20,7 +20,7 @@ if [ -f ".dev-debug" ]; then
set -x
fi
-version="v20.3.3"
+version="v20.6.2"
shortname="fctr"
gameservername="fctrserver"
commandname="CORE"
@@ -89,8 +89,7 @@ fn_bootstrap_fetch_file(){
remote_fileurls_array=( remote_fileurl )
fi
- for remote_fileurl_array in "${remote_fileurls_array[@]}"
- do
+ for remote_fileurl_array in "${remote_fileurls_array[@]}"; do
if [ "${remote_fileurl_array}" == "remote_fileurl" ]; then
fileurl="${remote_fileurl}"
fileurl_name="${remote_fileurl_name}"
@@ -119,7 +118,7 @@ fn_bootstrap_fetch_file(){
fi
# On first try will error. On second try will fail.
- if [ ${exitcode} -ne 0 ]; then
+ if [ "${exitcode}" != 0 ]; then
if [ ${counter} -ge 2 ]; then
echo -e "FAIL"
if [ -f "${lgsmlog}" ]; then
@@ -168,7 +167,8 @@ fn_bootstrap_fetch_file(){
fn_bootstrap_fetch_file_github(){
github_file_url_dir="${1}"
github_file_url_name="${2}"
- if [ "${githubbranch}" == "master" ]&&[ "${commandname}" != "UPDATE-LGSM" ]; then
+ # If master branch will currently running LinuxGSM version to prevent "version mixing". This is ignored if a fork.
+ if [ "${githubbranch}" == "master" ]&&[ "${githubuser}" == "GameServerManager" ]&&[ "${commandname}" != "UPDATE-LGSM" ]; then
remote_fileurl="https://raw.githubusercontent.com/${githubuser}/${githubrepo}/${version}/${github_file_url_dir}/${github_file_url_name}"
remote_fileurl_backup="https://bitbucket.org/${githubuser}/${githubrepo}/raw/${version}/${github_file_url_dir}/${github_file_url_name}"
else
@@ -389,7 +389,7 @@ else
echo -en "copying _default.cfg...\c"
cp -R "${configdirdefault}/config-lgsm/${gameservername}/_default.cfg" "${configdirserver}/_default.cfg"
exitcode=$?
- if [ ${exitcode} -ne 0 ]; then
+ if [ "${exitcode}" != 0 ]; then
echo -e "FAIL"
exit 1
else
@@ -402,7 +402,7 @@ else
echo -en "copying _default.cfg...\c"
cp -R "${configdirdefault}/config-lgsm/${gameservername}/_default.cfg" "${configdirserver}/_default.cfg"
exitcode=$?
- if [ ${exitcode} -ne 0 ]; then
+ if [ "${exitcode}" != 0 ]; then
echo -e "FAIL"
exit 1
else
@@ -421,6 +421,15 @@ else
# shellcheck source=/dev/null
source "${configdirserver}/common.cfg"
fi
+ # Load the secrets-common.cfg config. If missing download it.
+ if [ ! -f "${configdirserver}/secrets-common.cfg" ]; then
+ fn_fetch_config "lgsm/config-default/config-lgsm" "secrets-common-template.cfg" "${configdirserver}" "secrets-common.cfg" "${chmodx}" "nochmodx" "norun" "noforcedl" "nomd5"
+ # shellcheck source=/dev/null
+ source "${configdirserver}/secrets-common.cfg"
+ else
+ # shellcheck source=/dev/null
+ source "${configdirserver}/secrets-common.cfg"
+ fi
# Load the instance.cfg config. If missing download it.
if [ ! -f "${configdirserver}/${selfname}.cfg" ]; then
fn_fetch_config "lgsm/config-default/config-lgsm" "instance-template.cfg" "${configdirserver}" "${selfname}.cfg" "nochmodx" "norun" "noforcedl" "nomd5"
@@ -430,6 +439,15 @@ else
# shellcheck source=/dev/null
source "${configdirserver}/${selfname}.cfg"
fi
+ # Load the secrets-instance.cfg config. If missing download it.
+ if [ ! -f "${configdirserver}/secrets-${selfname}.cfg" ]; then
+ fn_fetch_config "lgsm/config-default/config-lgsm" "secrets-instance-template.cfg" "${configdirserver}" "secrets-${selfname}.cfg" "nochmodx" "norun" "noforcedl" "nomd5"
+ # shellcheck source=/dev/null
+ source "${configdirserver}/secrets-${selfname}.cfg"
+ else
+ # shellcheck source=/dev/null
+ source "${configdirserver}/secrets-${selfname}.cfg"
+ fi
# Load the linuxgsm.sh in to tmpdir. If missing download it.
if [ ! -f "${tmpdir}/linuxgsm.sh" ]; then
@@ -938,6 +956,8 @@ requiredstatus="OFFLINE"
fn_setstatus
fn_print_info_nl "creating lockfile."
date '+%s' > "${lockdir}/${selfname}.lock"
+echo "${version}" >> "${lockdir}/${selfname}.lock"
+echo "${port}" >> "${lockdir}/${selfname}.lock"
(
exec 5>"${TRAVIS_BUILD_DIR}/dev-debug.log"
BASH_XTRACEFD="5"
diff --git a/tests/tests_jc2server.sh b/tests/tests_jc2server.sh
index b52cf1f1b..2eb1815f3 100644
--- a/tests/tests_jc2server.sh
+++ b/tests/tests_jc2server.sh
@@ -20,7 +20,7 @@ if [ -f ".dev-debug" ]; then
set -x
fi
-version="v20.3.3"
+version="v20.6.2"
shortname="jc2"
gameservername="jc2server"
commandname="CORE"
@@ -90,8 +90,7 @@ fn_bootstrap_fetch_file(){
remote_fileurls_array=( remote_fileurl )
fi
- for remote_fileurl_array in "${remote_fileurls_array[@]}"
- do
+ for remote_fileurl_array in "${remote_fileurls_array[@]}"; do
if [ "${remote_fileurl_array}" == "remote_fileurl" ]; then
fileurl="${remote_fileurl}"
fileurl_name="${remote_fileurl_name}"
@@ -120,7 +119,7 @@ fn_bootstrap_fetch_file(){
fi
# On first try will error. On second try will fail.
- if [ ${exitcode} -ne 0 ]; then
+ if [ "${exitcode}" != 0 ]; then
if [ ${counter} -ge 2 ]; then
echo -e "FAIL"
if [ -f "${lgsmlog}" ]; then
@@ -169,7 +168,8 @@ fn_bootstrap_fetch_file(){
fn_bootstrap_fetch_file_github(){
github_file_url_dir="${1}"
github_file_url_name="${2}"
- if [ "${githubbranch}" == "master" ]&&[ "${commandname}" != "UPDATE-LGSM" ]; then
+ # If master branch will currently running LinuxGSM version to prevent "version mixing". This is ignored if a fork.
+ if [ "${githubbranch}" == "master" ]&&[ "${githubuser}" == "GameServerManager" ]&&[ "${commandname}" != "UPDATE-LGSM" ]; then
remote_fileurl="https://raw.githubusercontent.com/${githubuser}/${githubrepo}/${version}/${github_file_url_dir}/${github_file_url_name}"
remote_fileurl_backup="https://bitbucket.org/${githubuser}/${githubrepo}/raw/${version}/${github_file_url_dir}/${github_file_url_name}"
else
@@ -390,7 +390,7 @@ else
echo -en "copying _default.cfg...\c"
cp -R "${configdirdefault}/config-lgsm/${gameservername}/_default.cfg" "${configdirserver}/_default.cfg"
exitcode=$?
- if [ ${exitcode} -ne 0 ]; then
+ if [ "${exitcode}" != 0 ]; then
echo -e "FAIL"
exit 1
else
@@ -403,7 +403,7 @@ else
echo -en "copying _default.cfg...\c"
cp -R "${configdirdefault}/config-lgsm/${gameservername}/_default.cfg" "${configdirserver}/_default.cfg"
exitcode=$?
- if [ ${exitcode} -ne 0 ]; then
+ if [ "${exitcode}" != 0 ]; then
echo -e "FAIL"
exit 1
else
@@ -422,6 +422,15 @@ else
# shellcheck source=/dev/null
source "${configdirserver}/common.cfg"
fi
+ # Load the secrets-common.cfg config. If missing download it.
+ if [ ! -f "${configdirserver}/secrets-common.cfg" ]; then
+ fn_fetch_config "lgsm/config-default/config-lgsm" "secrets-common-template.cfg" "${configdirserver}" "secrets-common.cfg" "${chmodx}" "nochmodx" "norun" "noforcedl" "nomd5"
+ # shellcheck source=/dev/null
+ source "${configdirserver}/secrets-common.cfg"
+ else
+ # shellcheck source=/dev/null
+ source "${configdirserver}/secrets-common.cfg"
+ fi
# Load the instance.cfg config. If missing download it.
if [ ! -f "${configdirserver}/${selfname}.cfg" ]; then
fn_fetch_config "lgsm/config-default/config-lgsm" "instance-template.cfg" "${configdirserver}" "${selfname}.cfg" "nochmodx" "norun" "noforcedl" "nomd5"
@@ -431,6 +440,15 @@ else
# shellcheck source=/dev/null
source "${configdirserver}/${selfname}.cfg"
fi
+ # Load the secrets-instance.cfg config. If missing download it.
+ if [ ! -f "${configdirserver}/secrets-${selfname}.cfg" ]; then
+ fn_fetch_config "lgsm/config-default/config-lgsm" "secrets-instance-template.cfg" "${configdirserver}" "secrets-${selfname}.cfg" "nochmodx" "norun" "noforcedl" "nomd5"
+ # shellcheck source=/dev/null
+ source "${configdirserver}/secrets-${selfname}.cfg"
+ else
+ # shellcheck source=/dev/null
+ source "${configdirserver}/secrets-${selfname}.cfg"
+ fi
# Load the linuxgsm.sh in to tmpdir. If missing download it.
if [ ! -f "${tmpdir}/linuxgsm.sh" ]; then
@@ -1097,6 +1115,8 @@ requiredstatus="OFFLINE"
fn_setstatus
fn_print_info_nl "creating lockfile."
date '+%s' > "${lockdir}/${selfname}.lock"
+echo "${version}" >> "${lockdir}/${selfname}.lock"
+echo "${port}" >> "${lockdir}/${selfname}.lock"
(
exec 5>"${TRAVIS_BUILD_DIR}/dev-debug.log"
BASH_XTRACEFD="5"
diff --git a/tests/tests_mcserver.sh b/tests/tests_mcserver.sh
index 8d7bab6b6..8797e78e8 100644
--- a/tests/tests_mcserver.sh
+++ b/tests/tests_mcserver.sh
@@ -20,7 +20,7 @@ if [ -f ".dev-debug" ]; then
set -x
fi
-version="v20.3.3"
+version="v20.6.2"
shortname="mc"
gameservername="mcserver"
commandname="CORE"
@@ -90,8 +90,7 @@ fn_bootstrap_fetch_file(){
remote_fileurls_array=( remote_fileurl )
fi
- for remote_fileurl_array in "${remote_fileurls_array[@]}"
- do
+ for remote_fileurl_array in "${remote_fileurls_array[@]}"; do
if [ "${remote_fileurl_array}" == "remote_fileurl" ]; then
fileurl="${remote_fileurl}"
fileurl_name="${remote_fileurl_name}"
@@ -120,7 +119,7 @@ fn_bootstrap_fetch_file(){
fi
# On first try will error. On second try will fail.
- if [ ${exitcode} -ne 0 ]; then
+ if [ "${exitcode}" != 0 ]; then
if [ ${counter} -ge 2 ]; then
echo -e "FAIL"
if [ -f "${lgsmlog}" ]; then
@@ -169,7 +168,8 @@ fn_bootstrap_fetch_file(){
fn_bootstrap_fetch_file_github(){
github_file_url_dir="${1}"
github_file_url_name="${2}"
- if [ "${githubbranch}" == "master" ]&&[ "${commandname}" != "UPDATE-LGSM" ]; then
+ # If master branch will currently running LinuxGSM version to prevent "version mixing". This is ignored if a fork.
+ if [ "${githubbranch}" == "master" ]&&[ "${githubuser}" == "GameServerManager" ]&&[ "${commandname}" != "UPDATE-LGSM" ]; then
remote_fileurl="https://raw.githubusercontent.com/${githubuser}/${githubrepo}/${version}/${github_file_url_dir}/${github_file_url_name}"
remote_fileurl_backup="https://bitbucket.org/${githubuser}/${githubrepo}/raw/${version}/${github_file_url_dir}/${github_file_url_name}"
else
@@ -390,7 +390,7 @@ else
echo -en "copying _default.cfg...\c"
cp -R "${configdirdefault}/config-lgsm/${gameservername}/_default.cfg" "${configdirserver}/_default.cfg"
exitcode=$?
- if [ ${exitcode} -ne 0 ]; then
+ if [ "${exitcode}" != 0 ]; then
echo -e "FAIL"
exit 1
else
@@ -403,7 +403,7 @@ else
echo -en "copying _default.cfg...\c"
cp -R "${configdirdefault}/config-lgsm/${gameservername}/_default.cfg" "${configdirserver}/_default.cfg"
exitcode=$?
- if [ ${exitcode} -ne 0 ]; then
+ if [ "${exitcode}" != 0 ]; then
echo -e "FAIL"
exit 1
else
@@ -422,6 +422,15 @@ else
# shellcheck source=/dev/null
source "${configdirserver}/common.cfg"
fi
+ # Load the secrets-common.cfg config. If missing download it.
+ if [ ! -f "${configdirserver}/secrets-common.cfg" ]; then
+ fn_fetch_config "lgsm/config-default/config-lgsm" "secrets-common.cfg" "${configdirserver}" "secrets-common.cfg" "${chmodx}" "nochmodx" "norun" "noforcedl" "nomd5"
+ # shellcheck source=/dev/null
+ source "${configdirserver}/secrets-common.cfg"
+ else
+ # shellcheck source=/dev/null
+ source "${configdirserver}/secrets-common.cfg"
+ fi
# Load the instance.cfg config. If missing download it.
if [ ! -f "${configdirserver}/${selfname}.cfg" ]; then
fn_fetch_config "lgsm/config-default/config-lgsm" "instance-template.cfg" "${configdirserver}" "${selfname}.cfg" "nochmodx" "norun" "noforcedl" "nomd5"
@@ -431,6 +440,15 @@ else
# shellcheck source=/dev/null
source "${configdirserver}/${selfname}.cfg"
fi
+ # Load the secrets-instance.cfg config. If missing download it.
+ if [ ! -f "${configdirserver}/secrets-${selfname}.cfg" ]; then
+ fn_fetch_config "lgsm/config-default/config-lgsm" "secrets-instance-template.cfg" "${configdirserver}" "secrets-${selfname}.cfg" "nochmodx" "norun" "noforcedl" "nomd5"
+ # shellcheck source=/dev/null
+ source "${configdirserver}/secrets-${selfname}.cfg"
+ else
+ # shellcheck source=/dev/null
+ source "${configdirserver}/secrets-${selfname}.cfg"
+ fi
# Load the linuxgsm.sh in to tmpdir. If missing download it.
if [ ! -f "${tmpdir}/linuxgsm.sh" ]; then
@@ -970,6 +988,8 @@ requiredstatus="OFFLINE"
fn_setstatus
fn_print_info_nl "creating lockfile."
date '+%s' > "${lockdir}/${selfname}.lock"
+echo "${version}" >> "${lockdir}/${selfname}.lock"
+echo "${port}" >> "${lockdir}/${selfname}.lock"
(
exec 5>"${TRAVIS_BUILD_DIR}/dev-debug.log"
BASH_XTRACEFD="5"
diff --git a/tests/tests_ts3server.sh b/tests/tests_ts3server.sh
index fb4f889bf..3883d8dc2 100644
--- a/tests/tests_ts3server.sh
+++ b/tests/tests_ts3server.sh
@@ -20,7 +20,7 @@ if [ -f ".dev-debug" ]; then
set -x
fi
-version="v20.3.3"
+version="v20.6.2"
shortname="ts3"
gameservername="ts3server"
commandname="CORE"
@@ -90,8 +90,7 @@ fn_bootstrap_fetch_file(){
remote_fileurls_array=( remote_fileurl )
fi
- for remote_fileurl_array in "${remote_fileurls_array[@]}"
- do
+ for remote_fileurl_array in "${remote_fileurls_array[@]}"; do
if [ "${remote_fileurl_array}" == "remote_fileurl" ]; then
fileurl="${remote_fileurl}"
fileurl_name="${remote_fileurl_name}"
@@ -120,7 +119,7 @@ fn_bootstrap_fetch_file(){
fi
# On first try will error. On second try will fail.
- if [ ${exitcode} -ne 0 ]; then
+ if [ "${exitcode}" != 0 ]; then
if [ ${counter} -ge 2 ]; then
echo -e "FAIL"
if [ -f "${lgsmlog}" ]; then
@@ -169,7 +168,8 @@ fn_bootstrap_fetch_file(){
fn_bootstrap_fetch_file_github(){
github_file_url_dir="${1}"
github_file_url_name="${2}"
- if [ "${githubbranch}" == "master" ]&&[ "${commandname}" != "UPDATE-LGSM" ]; then
+ # If master branch will currently running LinuxGSM version to prevent "version mixing". This is ignored if a fork.
+ if [ "${githubbranch}" == "master" ]&&[ "${githubuser}" == "GameServerManager" ]&&[ "${commandname}" != "UPDATE-LGSM" ]; then
remote_fileurl="https://raw.githubusercontent.com/${githubuser}/${githubrepo}/${version}/${github_file_url_dir}/${github_file_url_name}"
remote_fileurl_backup="https://bitbucket.org/${githubuser}/${githubrepo}/raw/${version}/${github_file_url_dir}/${github_file_url_name}"
else
@@ -390,7 +390,7 @@ else
echo -en "copying _default.cfg...\c"
cp -R "${configdirdefault}/config-lgsm/${gameservername}/_default.cfg" "${configdirserver}/_default.cfg"
exitcode=$?
- if [ ${exitcode} -ne 0 ]; then
+ if [ "${exitcode}" != 0 ]; then
echo -e "FAIL"
exit 1
else
@@ -403,7 +403,7 @@ else
echo -en "copying _default.cfg...\c"
cp -R "${configdirdefault}/config-lgsm/${gameservername}/_default.cfg" "${configdirserver}/_default.cfg"
exitcode=$?
- if [ ${exitcode} -ne 0 ]; then
+ if [ "${exitcode}" != 0 ]; then
echo -e "FAIL"
exit 1
else
@@ -422,6 +422,15 @@ else
# shellcheck source=/dev/null
source "${configdirserver}/common.cfg"
fi
+ # Load the secrets-common.cfg config. If missing download it.
+ if [ ! -f "${configdirserver}/secrets-common.cfg" ]; then
+ fn_fetch_config "lgsm/config-default/config-lgsm" "secrets-common-template.cfg" "${configdirserver}" "secrets-common.cfg" "${chmodx}" "nochmodx" "norun" "noforcedl" "nomd5"
+ # shellcheck source=/dev/null
+ source "${configdirserver}/secrets-common.cfg"
+ else
+ # shellcheck source=/dev/null
+ source "${configdirserver}/secrets-common.cfg"
+ fi
# Load the instance.cfg config. If missing download it.
if [ ! -f "${configdirserver}/${selfname}.cfg" ]; then
fn_fetch_config "lgsm/config-default/config-lgsm" "instance-template.cfg" "${configdirserver}" "${selfname}.cfg" "nochmodx" "norun" "noforcedl" "nomd5"
@@ -431,6 +440,15 @@ else
# shellcheck source=/dev/null
source "${configdirserver}/${selfname}.cfg"
fi
+ # Load the secrets-instance.cfg config. If missing download it.
+ if [ ! -f "${configdirserver}/secrets-${selfname}.cfg" ]; then
+ fn_fetch_config "lgsm/config-default/config-lgsm" "secrets-instance-template.cfg" "${configdirserver}" "secrets-${selfname}.cfg" "nochmodx" "norun" "noforcedl" "nomd5"
+ # shellcheck source=/dev/null
+ source "${configdirserver}/secrets-${selfname}.cfg"
+ else
+ # shellcheck source=/dev/null
+ source "${configdirserver}/secrets-${selfname}.cfg"
+ fi
# Load the linuxgsm.sh in to tmpdir. If missing download it.
if [ ! -f "${tmpdir}/linuxgsm.sh" ]; then
@@ -937,6 +955,8 @@ requiredstatus="OFFLINE"
fn_setstatus
fn_print_info_nl "creating lockfile."
date '+%s' > "${lockdir}/${selfname}.lock"
+echo "${version}" >> "${lockdir}/${selfname}.lock"
+echo "${port}" >> "${lockdir}/${selfname}.lock"
(
exec 5>"${TRAVIS_BUILD_DIR}/dev-debug.log"
BASH_XTRACEFD="5"