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 @@


- LinuxGSM + LinuxGSM

-[![LinuxGSM](https://img.shields.io/badge/-LinuxGSM-2b2b2b.svg?logo=data%3Aimage%2Fpng%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAACsAAABACAYAAACDbo5ZAAAGD0lEQVR4AcWYa2wUVRvHz75c2vJ2disXoUBEVIioRAx%2BMIFA1IRwUS6KCCiIKBrvhEYiiGm5iBgk8QOGEgUUDYTttmVZWFr2UmwURS6iYAoCtmisElSsdHdbkT7%2BTzoNy%2BGc2dm54C%2F5Rdkz85x%2FZ86ZOXOYXYhIg3Phx%2FA4PAcv6f%2Btg5vhHJjP3EcZsgsshufJHH%2FAJbDztQ7aG35J1vgCXn%2BtgvrgEbLHYei9FmE3kDOUuh10OGwjZ7gEh7kZ9gNyllK3gnrg7%2BQs56DHjbCDyB0GuRF2ArnDeDfCziF3mO1G2FfJHRa4EXYpuUOxG2GXkzuUuBH2TXKH5W6ELSV3eM%2BNsOUk5yQcAY8p2uvgSPitor3MjbB1UOQXOFBvHwpbhPYWOExvL4SNUOQ7p4P2JTlzhOPmCu0vCu1PQpE2WOhk2MdJjk9y7HNwP1wEPUJbAcmZ6WTYrYolnifbxZBiibnFySHQCkUaLdY7C0V4%2FT5OhF1JcuIW6%2B0lOcvsBi2Ezao3j8Ov7Quwj52w60jNKIs1R5GatVaDDoEXSU4D7GSxbidYT3IuwjusFK0mNUVMwaZNNbl%2B%2F87hoVCom0HthaQmnG3QB0lNPcxlCvz%2B0GtlZTuorCxYYlA%2FDzbY%2FnrAgV3hCVLzCDMgEAi9wMMi9IIM%2FUwnNXWwi5mwRaSmmmXA798xq%2F3Khp420VeE1LyS6eQeBhttSXgzywCCToIUCOyYZvKLOWWwkdfd6ORVpGYJM0F5efDe9mEQHGty2BWTmhVGO4PNBmOoKzMBxmo%2FhD25dWvljSbD5hjMkb9gT9lJq63Mzi1bKkbjloc7xBWtwiRrDASCVRi%2FRxA8if%2BvrawMTzYI%2FACpeUv2KFFtDcUyTKilCHcis8G1Ga7wHpLzG8wVFs1K7jaeUKHZfIxmkj9%2FM4S9x9RGiMEudo0QbCVu9Xqn5PWEwLUk5%2FP0iaXac53I0kAH9Sau4m54lo%2FdTMfyekLYKQZ7ub34AbMMlmw5irC2VYTN0fuVMYMf8JHxJ7L7YYXAlSRnI2%2F8RtH4siTsDMz%2BZ5yS15OEXUxyDjGD1%2BvEq8MG16CDzY6JepKwT6geYbzxb0XjGMl7vwGSgzZIwo4nOa1M8Yr9Afb%2Fj8L21%2FsXaeaNZ2A6KTiEASph%2F0vF80cn4tokqu79fzfCUk2vfF4%2FFdFGEjGPHvg2yWrsDG%2F4%2BqpZB8jPOiXjWk0y5iXdM3XhKUvxBTA9UvHuvNPh%2Bzb%2BWj10z6nwuHWBbQFMvNCjKnn7qd1jS%2Fnx9VX3b6jC%2BbwOr5eMe3%2B83IcW4%2F3qgT%2BUTbA9srGaiHsn8AKiF6Ld%2FxF%2FOx6eeAJXabvK78MTTornNMd6XJTVR7%2Fj9bBjhFxV%2FMc1kJOAy2AeA%2FgrV4mFVDZFCqm8rEJ6qysCAWqK9iaztRJRbWXa4moFTELOav7jY%2FqAvoXp0Gc9NX7bIZl17%2FZl0rC1wRLeno0NvP%2B0CTcYNnS8wW6CtzNANaxzKqo9hRNOQ8rGo7tmSsMe2zWdt2frqVRcm5s2fofCgawDNHRNxnyfqgsYez4y4ADCjRM9H73hsNWafILTQdaFiSTj%2BQ%2FxA6yH7d%2BCmR8XbYr0a7VTF2N4siSsb5qdos3R6%2FjGxpULFfw7EfORnbrI9TAToX0sD40%2F2ylcGdh2Rdhg%2BSf2gka9jRTqK9%2BGwgHz7RTfVbHxirDhivdthYUvMRX8aYAD9lstvi%2B0aDL2DUZ0eCBUNNVG0IP65FLTWqPdiqdC0koHTVXe7iyNRG23QotBEy1RbTAzQyrmnYUT2rLsoA13JpcB4eVC2daBM1g2JGLekmwf5On7EJfngfZTNnVSce8bFjaTmQdvs%2FXmO%2FJVpoXdx3RSUe9O00Fj3nUdy0RLgRHiHXOPGW1h2uKZ07c9rG%2Bxyefp23pQeyBIEQoavYlakrG8fnrY5yHn2fbxXzAgw7m8bT5zkkSk4C7cpmOK21esB%2FXAQ5DzFfTo43%2BF%2FDzf0eZ4wZ3MDSjMcvD6nIeOahGgia%2FyU3HforTPkWkwnakdn0cI9jqfbPjD%2FuQLJr6644snlgX%2FApOMoyd1R5%2FxAAAAAElFTkSuQmCC)](https://linuxgsm.com) [![Build Status](https://travis-ci.com/GameServerManagers/LinuxGSM.svg?branch=master)](https://travis-ci.com/GameServerManagers/LinuxGSM) [![Codacy Badge](https://api.codacy.com/project/badge/Grade/3e98be27840043a090c3ab6e35db44b0)](https://app.codacy.com/app/GameServerManagers/LinuxGSM?utm_source=github.com&utm_medium=referral&utm_content=GameServerManagers/LinuxGSM&utm_campaign=Badge_Grade_Dashboard) [![Codacy Badge](https://api.codacy.com/project/badge/Coverage/9ef77095e98a43618ddd57381f86b4be)](https://www.codacy.com/manual/GameServerManagers/LinuxGSM?utm_source=github.com&utm_medium=referral&utm_content=GameServerManagers/LinuxGSM&utm_campaign=Badge_Coverage) [![Backup Repo](https://github.com/GameServerManagers/LinuxGSM/workflows/Backup%20Repo/badge.svg)](https://bitbucket.org/GameServerManagers/linuxgsm) [![Discord](https://discordapp.com/api/guilds/127498813903601664/widget.png?style=shield)](https://linuxgsm.com/discord) [![MIT Licence](https://badges.frapsoft.com/os/mit/mit.svg?v=103)](https://github.com/GameServerManagers/LinuxGSM/blob/master/LICENSE) [![made-with-bash](https://img.shields.io/badge/-Made%20with%20Bash-1f425f.svg?logo=image%2Fpng%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw%2FeHBhY2tldCBiZWdpbj0i77u%2FIiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8%2BIDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTExIDc5LjE1ODMyNSwgMjAxNS8wOS8xMC0wMToxMDoyMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTUgKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkE3MDg2QTAyQUZCMzExRTVBMkQxRDMzMkJDMUQ4RDk3IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkE3MDg2QTAzQUZCMzExRTVBMkQxRDMzMkJDMUQ4RDk3Ij4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6QTcwODZBMDBBRkIzMTFFNUEyRDFEMzMyQkMxRDhEOTciIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6QTcwODZBMDFBRkIzMTFFNUEyRDFEMzMyQkMxRDhEOTciLz4gPC9yZGY6RGVzY3JpcHRpb24%2BIDwvcmRmOlJERj4gPC94OnhtcG1ldGE%2BIDw%2FeHBhY2tldCBlbmQ9InIiPz6lm45hAAADkklEQVR42qyVa0yTVxzGn7d9Wy03MS2ii8s%2BeokYNQSVhCzOjXZOFNF4jx%2BMRmPUMEUEqVG36jo2thizLSQSMd4N8ZoQ8RKjJtooaCpK6ZoCtRXKpRempbTv5ey83bhkAUphz8fznvP8znn%2B%2F3NeEEJgNBoRRSmz0ub%2FfuxEacBg%2FDmYtiCjgo5NG2mBXq%2BH5I1ogMRk9Zbd%2BQU2e1ML6VPLOyf5tvBQ8yT1lG10imxsABm7SLs898GTpyYynEzP60hO3trHDKvMigUwdeaceacqzp7nOI4n0SSIIjl36ao4Z356OV07fSQAk6xJ3XGg%2BLCr1d1OYlVHp4eUHPnerU79ZA%2F1kuv1JQMAg%2BE4O2P23EumF3VkvHprsZKMzKwbRUXFEyTvSIEmTVbrysp%2BWr8wfQHGK6WChVa3bKUmdWou%2BjpArdGkzZ41c1zG%2Fu5uGH4swzd561F%2BuhIT4%2BLnSuPsv9%2BJKIpjNr9dXYOyk7%2FBZrcjIT4eCnoKgedJP4BEqhG77E3NKP31FO7cfQA5K0dSYuLgz2TwCWJSOBzG6crzKK%2BohNfni%2Bx6OMUMMNe%2Fgf7ocbw0v0acKg6J8Ql0q%2BT%2FAXR5PNi5dz9c71upuQqCKFAD%2BYhrZLEAmpodaHO3Qy6TI3NhBpbrshGtOWKOSMYwYGQM8nJzoFJNxP2HjyIQho4PewK6hBktoDcUwtIln4PjOWzflQ%2Be5yl0yCCYgYikTclGlxadio%2BBQCSiW1UXoVGrKYwH4RgMrjU1HAB4vR6LzWYfFUCKxfS8Ftk5qxHoCUQAUkRJaSEokkV6Y%2F%2BJUOC4hn6A39NVXVBYeNP8piH6HeA4fPbpdBQV5KOx0QaL1YppX3Jgk0TwH2Vg6S3u%2BdB91%2B%2FpuNYPYFl5uP5V7ZqvsrX7jxqMXR6ff3gCQSTzFI0a1TX3wIs8ul%2Bq4HuWAAiM39vhOuR1O1fQ2gT%2F26Z8Z5vrl2OHi9OXZn995nLV9aFfS6UC9JeJPfuK0NBohWpCHMSAAsFe74WWP%2BvT25wtP9Bpob6uGqqyDnOtaeumjRu%2ByFu36VntK%2FPA5umTJeUtPWZSU9BCgud661odVp3DZtkc7AnYR33RRC708PrVi1larW7XwZIjLnd7R6SgSqWSNjU1B3F72pz5TZbXmX5vV81Yb7Lg7XT%2FUXriu8XLVqw6c6XqWnBKiiYU%2BMt3wWF7u7i91XlSEITwSAZ%2FCzAAHsJVbwXYFFEAAAAASUVORK5CYII%3D)](https://www.gnu.org/software/bash/) +[![LinuxGSM](https://img.shields.io/badge/-LinuxGSM-2b2b2b.svg?logo=data%3Aimage%2Fpng%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAACsAAABACAYAAACDbo5ZAAAGD0lEQVR4AcWYa2wUVRvHz75c2vJ2disXoUBEVIioRAx%2BMIFA1IRwUS6KCCiIKBrvhEYiiGm5iBgk8QOGEgUUDYTttmVZWFr2UmwURS6iYAoCtmisElSsdHdbkT7%2BTzoNy%2BGc2dm54C%2F5Rdkz85x%2FZ86ZOXOYXYhIg3Phx%2FA4PAcv6f%2Btg5vhHJjP3EcZsgsshufJHH%2FAJbDztQ7aG35J1vgCXn%2BtgvrgEbLHYei9FmE3kDOUuh10OGwjZ7gEh7kZ9gNyllK3gnrg7%2BQs56DHjbCDyB0GuRF2ArnDeDfCziF3mO1G2FfJHRa4EXYpuUOxG2GXkzuUuBH2TXKH5W6ELSV3eM%2BNsOUk5yQcAY8p2uvgSPitor3MjbB1UOQXOFBvHwpbhPYWOExvL4SNUOQ7p4P2JTlzhOPmCu0vCu1PQpE2WOhk2MdJjk9y7HNwP1wEPUJbAcmZ6WTYrYolnifbxZBiibnFySHQCkUaLdY7C0V4%2FT5OhF1JcuIW6%2B0lOcvsBi2Ezao3j8Ov7Quwj52w60jNKIs1R5GatVaDDoEXSU4D7GSxbidYT3IuwjusFK0mNUVMwaZNNbl%2B%2F87hoVCom0HthaQmnG3QB0lNPcxlCvz%2B0GtlZTuorCxYYlA%2FDzbY%2FnrAgV3hCVLzCDMgEAi9wMMi9IIM%2FUwnNXWwi5mwRaSmmmXA798xq%2F3Khp420VeE1LyS6eQeBhttSXgzywCCToIUCOyYZvKLOWWwkdfd6ORVpGYJM0F5efDe9mEQHGty2BWTmhVGO4PNBmOoKzMBxmo%2FhD25dWvljSbD5hjMkb9gT9lJq63Mzi1bKkbjloc7xBWtwiRrDASCVRi%2FRxA8if%2BvrawMTzYI%2FACpeUv2KFFtDcUyTKilCHcis8G1Ga7wHpLzG8wVFs1K7jaeUKHZfIxmkj9%2FM4S9x9RGiMEudo0QbCVu9Xqn5PWEwLUk5%2FP0iaXac53I0kAH9Sau4m54lo%2FdTMfyekLYKQZ7ub34AbMMlmw5irC2VYTN0fuVMYMf8JHxJ7L7YYXAlSRnI2%2F8RtH4siTsDMz%2BZ5yS15OEXUxyDjGD1%2BvEq8MG16CDzY6JepKwT6geYbzxb0XjGMl7vwGSgzZIwo4nOa1M8Yr9Afb%2Fj8L21%2FsXaeaNZ2A6KTiEASph%2F0vF80cn4tokqu79fzfCUk2vfF4%2FFdFGEjGPHvg2yWrsDG%2F4%2BqpZB8jPOiXjWk0y5iXdM3XhKUvxBTA9UvHuvNPh%2Bzb%2BWj10z6nwuHWBbQFMvNCjKnn7qd1jS%2Fnx9VX3b6jC%2BbwOr5eMe3%2B83IcW4%2F3qgT%2BUTbA9srGaiHsn8AKiF6Ld%2FxF%2FOx6eeAJXabvK78MTTornNMd6XJTVR7%2Fj9bBjhFxV%2FMc1kJOAy2AeA%2FgrV4mFVDZFCqm8rEJ6qysCAWqK9iaztRJRbWXa4moFTELOav7jY%2FqAvoXp0Gc9NX7bIZl17%2FZl0rC1wRLeno0NvP%2B0CTcYNnS8wW6CtzNANaxzKqo9hRNOQ8rGo7tmSsMe2zWdt2frqVRcm5s2fofCgawDNHRNxnyfqgsYez4y4ADCjRM9H73hsNWafILTQdaFiSTj%2BQ%2FxA6yH7d%2BCmR8XbYr0a7VTF2N4siSsb5qdos3R6%2FjGxpULFfw7EfORnbrI9TAToX0sD40%2F2ylcGdh2Rdhg%2BSf2gka9jRTqK9%2BGwgHz7RTfVbHxirDhivdthYUvMRX8aYAD9lstvi%2B0aDL2DUZ0eCBUNNVG0IP65FLTWqPdiqdC0koHTVXe7iyNRG23QotBEy1RbTAzQyrmnYUT2rLsoA13JpcB4eVC2daBM1g2JGLekmwf5On7EJfngfZTNnVSce8bFjaTmQdvs%2FXmO%2FJVpoXdx3RSUe9O00Fj3nUdy0RLgRHiHXOPGW1h2uKZ07c9rG%2Bxyefp23pQeyBIEQoavYlakrG8fnrY5yHn2fbxXzAgw7m8bT5zkkSk4C7cpmOK21esB%2FXAQ5DzFfTo43%2BF%2FDzf0eZ4wZ3MDSjMcvD6nIeOahGgia%2FyU3HforTPkWkwnakdn0cI9jqfbPjD%2FuQLJr6644snlgX%2FApOMoyd1R5%2FxAAAAAElFTkSuQmCC)](https://linuxgsm.com) [![Build Status](https://travis-ci.com/GameServerManagers/LinuxGSM.svg?branch=master)](https://travis-ci.com/GameServerManagers/LinuxGSM) [![Codacy Badge](https://app.codacy.com/project/badge/Grade/d19c5234dc3743d8a8a14093711ca52d)](https://www.codacy.com/gh/GameServerManagers/LinuxGSM/dashboard?utm_source=github.com&utm_medium=referral&utm_content=GameServerManagers/LinuxGSM&utm_campaign=Badge_Grade) [![Backup Repo](https://github.com/GameServerManagers/LinuxGSM/workflows/Backup%20Repo/badge.svg)](https://bitbucket.org/GameServerManagers/linuxgsm) [![Discord](https://discordapp.com/api/guilds/127498813903601664/widget.png?style=shield)](https://linuxgsm.com/discord) [![MIT Licence](https://badges.frapsoft.com/os/mit/mit.svg?v=103)](https://github.com/GameServerManagers/LinuxGSM/blob/master/LICENSE) [![made-with-bash](https://img.shields.io/badge/-Made%20with%20Bash-1f425f.svg?logo=image%2Fpng%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw%2FeHBhY2tldCBiZWdpbj0i77u%2FIiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8%2BIDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTExIDc5LjE1ODMyNSwgMjAxNS8wOS8xMC0wMToxMDoyMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTUgKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkE3MDg2QTAyQUZCMzExRTVBMkQxRDMzMkJDMUQ4RDk3IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkE3MDg2QTAzQUZCMzExRTVBMkQxRDMzMkJDMUQ4RDk3Ij4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6QTcwODZBMDBBRkIzMTFFNUEyRDFEMzMyQkMxRDhEOTciIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6QTcwODZBMDFBRkIzMTFFNUEyRDFEMzMyQkMxRDhEOTciLz4gPC9yZGY6RGVzY3JpcHRpb24%2BIDwvcmRmOlJERj4gPC94OnhtcG1ldGE%2BIDw%2FeHBhY2tldCBlbmQ9InIiPz6lm45hAAADkklEQVR42qyVa0yTVxzGn7d9Wy03MS2ii8s%2BeokYNQSVhCzOjXZOFNF4jx%2BMRmPUMEUEqVG36jo2thizLSQSMd4N8ZoQ8RKjJtooaCpK6ZoCtRXKpRempbTv5ey83bhkAUphz8fznvP8znn%2B%2F3NeEEJgNBoRRSmz0ub%2FfuxEacBg%2FDmYtiCjgo5NG2mBXq%2BH5I1ogMRk9Zbd%2BQU2e1ML6VPLOyf5tvBQ8yT1lG10imxsABm7SLs898GTpyYynEzP60hO3trHDKvMigUwdeaceacqzp7nOI4n0SSIIjl36ao4Z356OV07fSQAk6xJ3XGg%2BLCr1d1OYlVHp4eUHPnerU79ZA%2F1kuv1JQMAg%2BE4O2P23EumF3VkvHprsZKMzKwbRUXFEyTvSIEmTVbrysp%2BWr8wfQHGK6WChVa3bKUmdWou%2BjpArdGkzZ41c1zG%2Fu5uGH4swzd561F%2BuhIT4%2BLnSuPsv9%2BJKIpjNr9dXYOyk7%2FBZrcjIT4eCnoKgedJP4BEqhG77E3NKP31FO7cfQA5K0dSYuLgz2TwCWJSOBzG6crzKK%2BohNfni%2Bx6OMUMMNe%2Fgf7ocbw0v0acKg6J8Ql0q%2BT%2FAXR5PNi5dz9c71upuQqCKFAD%2BYhrZLEAmpodaHO3Qy6TI3NhBpbrshGtOWKOSMYwYGQM8nJzoFJNxP2HjyIQho4PewK6hBktoDcUwtIln4PjOWzflQ%2Be5yl0yCCYgYikTclGlxadio%2BBQCSiW1UXoVGrKYwH4RgMrjU1HAB4vR6LzWYfFUCKxfS8Ftk5qxHoCUQAUkRJaSEokkV6Y%2F%2BJUOC4hn6A39NVXVBYeNP8piH6HeA4fPbpdBQV5KOx0QaL1YppX3Jgk0TwH2Vg6S3u%2BdB91%2B%2FpuNYPYFl5uP5V7ZqvsrX7jxqMXR6ff3gCQSTzFI0a1TX3wIs8ul%2Bq4HuWAAiM39vhOuR1O1fQ2gT%2F26Z8Z5vrl2OHi9OXZn995nLV9aFfS6UC9JeJPfuK0NBohWpCHMSAAsFe74WWP%2BvT25wtP9Bpob6uGqqyDnOtaeumjRu%2ByFu36VntK%2FPA5umTJeUtPWZSU9BCgud661odVp3DZtkc7AnYR33RRC708PrVi1larW7XwZIjLnd7R6SgSqWSNjU1B3F72pz5TZbXmX5vV81Yb7Lg7XT%2FUXriu8XLVqw6c6XqWnBKiiYU%2BMt3wWF7u7i91XlSEITwSAZ%2FCzAAHsJVbwXYFFEAAAAASUVORK5CYII%3D)](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"