diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml
index cbf5f2662..b47fff71d 100644
--- a/.github/ISSUE_TEMPLATE/bug_report.yml
+++ b/.github/ISSUE_TEMPLATE/bug_report.yml
@@ -83,11 +83,18 @@ body:
label: Linux distro
multiple: true
options:
+ - Ubuntu 26.04
- Ubuntu 24.04
- Ubuntu 22.04
- Ubuntu 20.04
+ - Debian 13
- Debian 12
- Debian 11
+ - AlmaLinux 9
+ - AlmaLinux 8
+ - Rocky 10
+ - Rocky 9
+ - Rocky 8
- RedHat 9
- RedHat 8
- Other
diff --git a/.github/ISSUE_TEMPLATE/feature_request.yml b/.github/ISSUE_TEMPLATE/feature_request.yml
index 67d7508e1..1c50616bf 100644
--- a/.github/ISSUE_TEMPLATE/feature_request.yml
+++ b/.github/ISSUE_TEMPLATE/feature_request.yml
@@ -41,11 +41,18 @@ body:
label: Linux distro
multiple: true
options:
+ - Ubuntu 26.04
- Ubuntu 24.04
- Ubuntu 22.04
- Ubuntu 20.04
+ - Debian 13
- Debian 12
- Debian 11
+ - AlmaLinux 9
+ - AlmaLinux 8
+ - Rocky 10
+ - Rocky 9
+ - Rocky 8
- RedHat 9
- RedHat 8
- Other
diff --git a/.github/labeler.yml b/.github/labeler.yml
index 631af01bb..d0d48efb7 100644
--- a/.github/labeler.yml
+++ b/.github/labeler.yml
@@ -87,7 +87,7 @@
"type: feature":
- "/(feature request|new feature|^feat(\\(.+\\))?:|\\[x\\] New feature)/im"
"type: docs":
- - "/(^docs(\\(.+\\))?:|\\[x\\] Comment update)/im"
+ - "/(^docs(\\(.+\\))?:|documentation|\\[x\\] Comment update)/im"
"type: refactor":
- "/(^refactor(\\(.+\\))?:|\\[x\\] Refactor)/im"
"type: chore":
diff --git a/.github/scripts/details-check-generate-matrix.sh b/.github/scripts/details-check-generate-matrix.sh
index 3d56674c2..cf37b528c 100755
--- a/.github/scripts/details-check-generate-matrix.sh
+++ b/.github/scripts/details-check-generate-matrix.sh
@@ -1,12 +1,19 @@
#!/bin/bash
-curl "https://raw.githubusercontent.com/GameServerManagers/LinuxGSM/${GITHUB_REF#refs/heads/}/lgsm/data/serverlist.csv" | grep -v '^[[:blank:]]*$' > serverlist.csv
+ref="${LGSM_REF:-${GITHUB_REF#refs/heads/}}"
+curl "https://raw.githubusercontent.com/GameServerManagers/LinuxGSM/${ref}/lgsm/data/serverlist.csv" | grep -v '^[[:blank:]]*$' > serverlist.csv
echo -n "{" > "shortnamearray.json"
echo -n "\"include\":[" >> "shortnamearray.json"
while read -r line; do
shortname=$(echo "$line" | awk -F, '{ print $1 }')
+ # If TARGETED_SHORTNAMES is set, skip servers not in the list
+ if [ -n "${TARGETED_SHORTNAMES:-}" ]; then
+ if ! echo "${TARGETED_SHORTNAMES}" | grep -qw "${shortname}"; then
+ continue
+ fi
+ fi
export shortname
servername=$(echo "$line" | awk -F, '{ print $2 }')
export servername
@@ -14,10 +21,26 @@ while read -r line; do
export gamename
distro=$(echo "$line" | awk -F, '{ print $4 }')
export distro
+ # Legacy servers that require older Ubuntu/Debian versions due to glibc compatibility
+ case "${shortname}" in
+ bfv | bf1942)
+ # Requires Ubuntu <= 22.04 or Debian <= 12 (glibc 2.31 compatible)
+ runner="ubuntu-22.04"
+ ;;
+ btl | onset)
+ # Requires Ubuntu <= 20.04 or Debian <= 11 (glibc 2.31 compatible)
+ runner="ubuntu-20.04"
+ ;;
+ *)
+ runner="ubuntu-latest"
+ ;;
+ esac
{
echo -n "{"
echo -n "\"shortname\":"
echo -n "\"${shortname}\""
+ echo -n ",\"runner\":"
+ echo -n "\"${runner}\""
echo -n "},"
} >> "shortnamearray.json"
done < <(tail -n +2 serverlist.csv)
diff --git a/.github/workflows/action-details-check.yml b/.github/workflows/action-details-check.yml
index ccccbbdaa..bed3a41ad 100644
--- a/.github/workflows/action-details-check.yml
+++ b/.github/workflows/action-details-check.yml
@@ -5,6 +5,9 @@ on:
push:
branches:
- develop
+ pull_request:
+ branches:
+ - develop
permissions:
contents: read
@@ -17,46 +20,102 @@ jobs:
create-matrix:
if: github.repository_owner == 'GameServerManagers'
runs-on: ubuntu-latest
+ env:
+ LGSM_REF: ${{ github.event.pull_request.head.sha || github.ref_name }}
outputs:
matrix: ${{ steps.set-matrix.outputs.matrix }}
steps:
- name: Checkout
- uses: actions/checkout@v4
+ uses: actions/checkout@v6
+ with:
+ # Full history so the base branch ref is available for the
+ # `git diff origin/...HEAD` comparison below (a shallow
+ # checkout has no origin/ and the diff fails).
+ fetch-depth: 0
+
+ - name: Detect targeted servers (PR only)
+ id: targeted
+ if: github.event_name == 'pull_request'
+ run: |
+ changed=$(git diff --name-only origin/${{ github.base_ref }}...HEAD)
+ echo "Changed files:"
+ echo "$changed"
+
+ # Only these modules directly affect what 'details', 'parse-game-details'
+ # and 'query-raw' output. Everything else (install, fix, update, check_*,
+ # data CSVs, game icons, etc.) is irrelevant to this check.
+ details_core='^(linuxgsm\.sh|lgsm/modules/(info_game|info_messages|command_details|command_dev_parse_game_details|command_dev_query_raw|core_modules)\.sh)$'
+ if echo "$changed" | grep -qE "${details_core}"; then
+ echo "Details-relevant core file changed — using full matrix."
+ echo "mode=full" >> "$GITHUB_OUTPUT"
+ else
+ # Extract shortnames from changed config-lgsm paths
+ shortnames=$(echo "$changed" \
+ | grep -oE 'lgsm/config-default/config-lgsm/[a-z0-9]+server' \
+ | sed 's|lgsm/config-default/config-lgsm/||;s|server$||' \
+ | sort -u)
+ if [ -z "$shortnames" ]; then
+ echo "No server configs or core files changed — skipping matrix."
+ echo "mode=skip" >> "$GITHUB_OUTPUT"
+ else
+ echo "Targeted servers: $shortnames"
+ echo "mode=targeted" >> "$GITHUB_OUTPUT"
+ printf '%s\n' $shortnames > targeted_shortnames.txt
+ fi
+ fi
- name: Generate matrix with generate-matrix.sh
- run: .github/scripts/details-check-generate-matrix.sh
+ if: github.event_name != 'pull_request' || steps.targeted.outputs.mode != 'skip'
+ run: |
+ if [ -f targeted_shortnames.txt ]; then
+ TARGETED_SHORTNAMES=$(cat targeted_shortnames.txt) .github/scripts/details-check-generate-matrix.sh
+ else
+ .github/scripts/details-check-generate-matrix.sh
+ fi
- name: Set Matrix
id: set-matrix
run: |
- shortnamearray=$(cat shortnamearray.json)
- echo "${shortnamearray}"
- echo -n "matrix=${shortnamearray}" >> "$GITHUB_OUTPUT"
+ if [ ! -f shortnamearray.json ]; then
+ echo 'matrix={"include":[]}' >> "$GITHUB_OUTPUT"
+ else
+ shortnamearray=$(cat shortnamearray.json)
+ echo "${shortnamearray}"
+ echo -n "matrix=${shortnamearray}" >> "$GITHUB_OUTPUT"
+ fi
details-check:
if: github.repository_owner == 'GameServerManagers'
needs: create-matrix
continue-on-error: true
- runs-on: ubuntu-latest
+ runs-on: ${{ matrix.runner }}
+ env:
+ LGSM_REF: ${{ github.event.pull_request.head.sha || github.ref_name }}
strategy:
matrix: ${{ fromJSON(needs.create-matrix.outputs.matrix) }}
steps:
- name: Download linuxgsm.sh
- run: wget "https://raw.githubusercontent.com/GameServerManagers/LinuxGSM/${GITHUB_REF#refs/heads/}/linuxgsm.sh"; chmod +x linuxgsm.sh
+ run: wget "https://raw.githubusercontent.com/GameServerManagers/LinuxGSM/${LGSM_REF}/linuxgsm.sh"; chmod +x linuxgsm.sh
+
+ - name: Cache apt packages
+ uses: actions/cache@v4
+ with:
+ path: /var/cache/apt/archives
+ key: apt-${{ runner.os }}-libxml2-utils-jq
- name: Install dependencies
- run: sudo apt-get install libxml2-utils jq
+ run: sudo apt-get install -y --no-install-recommends libxml2-utils jq
- name: Create serverfiles directory
run: mkdir -p serverfiles
- name: Grab server
- run: LGSM_GITHUBBRANCH="${GITHUB_REF#refs/heads/}" ./linuxgsm.sh ${{ matrix.shortname }}server
+ run: LGSM_GITHUBBRANCH="${LGSM_REF}" ./linuxgsm.sh ${{ matrix.shortname }}server
- name: Enable developer mode
- run: LGSM_GITHUBBRANCH="${GITHUB_REF#refs/heads/}" ./${{ matrix.shortname }}server developer
+ run: LGSM_GITHUBBRANCH="${LGSM_REF}" ./${{ matrix.shortname }}server developer
- name: Generate servercfgname
id: sets-servercfgname
@@ -73,7 +132,7 @@ jobs:
fi
- name: Pre-load LinuxGSM
- run: LGSM_GITHUBBRANCH="${GITHUB_REF#refs/heads/}" ./${{ matrix.shortname }}server details
+ run: LGSM_GITHUBBRANCH="${LGSM_REF}" ./${{ matrix.shortname }}server details
- name: Display config
run: |
@@ -87,10 +146,36 @@ jobs:
run: grep "startparameters" lgsm/config-default/config-lgsm/${{ matrix.shortname }}server/_default.cfg
- name: Details
- run: LGSM_GITHUBBRANCH="${GITHUB_REF#refs/heads/}" ./${{ matrix.shortname }}server details
+ id: details
+ run: LGSM_GITHUBBRANCH="${LGSM_REF}" ./${{ matrix.shortname }}server details
- name: Detect details
- run: LGSM_GITHUBBRANCH="${GITHUB_REF#refs/heads/}" ./${{ matrix.shortname }}server parse-game-details
+ id: detect-details
+ run: LGSM_GITHUBBRANCH="${LGSM_REF}" ./${{ matrix.shortname }}server parse-game-details
- name: Query Raw
- run: LGSM_GITHUBBRANCH="${GITHUB_REF#refs/heads/}" ./${{ matrix.shortname }}server query-raw
+ id: query-raw
+ run: LGSM_GITHUBBRANCH="${LGSM_REF}" ./${{ matrix.shortname }}server query-raw
+
+ - name: Write job summary
+ if: always()
+ run: |
+ status_icon() {
+ case "$1" in
+ success) echo "✅" ;;
+ failure) echo "❌" ;;
+ skipped) echo "⏭️" ;;
+ *) echo "⚠️" ;;
+ esac
+ }
+ details_icon=$(status_icon "${{ steps.details.outcome }}")
+ parse_icon=$(status_icon "${{ steps.detect-details.outcome }}")
+ query_icon=$(status_icon "${{ steps.query-raw.outcome }}")
+ {
+ echo "## ${{ matrix.shortname }}server"
+ echo "| Step | Result |"
+ echo "|------|--------|"
+ echo "| Details | ${details_icon} ${{ steps.details.outcome }} |"
+ echo "| Parse game details | ${parse_icon} ${{ steps.detect-details.outcome }} |"
+ echo "| Query raw | ${query_icon} ${{ steps.query-raw.outcome }} |"
+ } >> "$GITHUB_STEP_SUMMARY"
diff --git a/.github/workflows/action-serverlist-validate.yml b/.github/workflows/action-serverlist-validate.yml
index 4fb830702..3e8807407 100644
--- a/.github/workflows/action-serverlist-validate.yml
+++ b/.github/workflows/action-serverlist-validate.yml
@@ -6,13 +6,16 @@ on:
permissions:
contents: read
+env:
+ datadir: lgsm/data
+
jobs:
serverlist-validate:
if: github.repository_owner == 'GameServerManagers'
runs-on: ubuntu-latest
steps:
- name: Checkout
- uses: actions/checkout@v4
+ uses: actions/checkout@v6
- name: Compare Versions
run: .github/scripts/serverlist-validate.sh
diff --git a/.github/workflows/action-trigger-docker-build.yml b/.github/workflows/action-trigger-docker-build.yml
index 390123322..823592457 100644
--- a/.github/workflows/action-trigger-docker-build.yml
+++ b/.github/workflows/action-trigger-docker-build.yml
@@ -15,12 +15,22 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Trigger Workflow and Wait (linuxgsm)
- uses: convictional/trigger-workflow-and-wait@v1.6.5
- with:
- owner: GameServerManagers
- repo: docker-linuxgsm
- github_token: ${{ secrets.PERSONAL_ACCESS_TOKEN }}
- workflow_file_name: action-docker-publish.yml
+ env:
+ GH_TOKEN: ${{ secrets.PERSONAL_ACCESS_TOKEN }}
+ run: |
+ before=$(date -u +%Y-%m-%dT%H:%M:%SZ)
+ gh workflow run action-docker-publish.yml --repo GameServerManagers/docker-linuxgsm
+ sleep 10
+ run_id=$(gh run list \
+ --workflow action-docker-publish.yml \
+ --repo GameServerManagers/docker-linuxgsm \
+ --created ">=${before}" \
+ --limit 1 \
+ --json databaseId \
+ --jq '.[0].databaseId')
+ gh run watch "${run_id}" \
+ --repo GameServerManagers/docker-linuxgsm \
+ --exit-status
trigger_build_docker-gameserver:
if: github.repository_owner == 'GameServerManagers'
@@ -29,9 +39,19 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Trigger Workflow and Wait (gameserver)
- uses: convictional/trigger-workflow-and-wait@v1.6.5
- with:
- owner: GameServerManagers
- repo: docker-gameserver
- github_token: ${{ secrets.PERSONAL_ACCESS_TOKEN }}
- workflow_file_name: action-docker-publish.yml
+ env:
+ GH_TOKEN: ${{ secrets.PERSONAL_ACCESS_TOKEN }}
+ run: |
+ before=$(date -u +%Y-%m-%dT%H:%M:%SZ)
+ gh workflow run action-docker-publish.yml --repo GameServerManagers/docker-gameserver
+ sleep 10
+ run_id=$(gh run list \
+ --workflow action-docker-publish.yml \
+ --repo GameServerManagers/docker-gameserver \
+ --created ">=${before}" \
+ --limit 1 \
+ --json databaseId \
+ --jq '.[0].databaseId')
+ gh run watch "${run_id}" \
+ --repo GameServerManagers/docker-gameserver \
+ --exit-status
diff --git a/.github/workflows/action-update-check.yml b/.github/workflows/action-update-check.yml
index 8863cedc7..ad1150f7b 100644
--- a/.github/workflows/action-update-check.yml
+++ b/.github/workflows/action-update-check.yml
@@ -16,6 +16,8 @@ jobs:
update-check:
if: github.repository_owner == 'GameServerManagers'
runs-on: ubuntu-latest
+ env:
+ LGSM_REF: ${{ github.event.pull_request.head.sha || github.ref_name }}
strategy:
fail-fast: false
@@ -24,30 +26,30 @@ jobs:
steps:
- name: Download linuxgsm.sh
- run: wget "https://raw.githubusercontent.com/GameServerManagers/LinuxGSM/${GITHUB_REF#refs/heads/}/linuxgsm.sh"; chmod +x linuxgsm.sh
+ run: wget "https://raw.githubusercontent.com/GameServerManagers/LinuxGSM/${LGSM_REF}/linuxgsm.sh"; chmod +x linuxgsm.sh
- name: Install dependencies
run: sudo dpkg --add-architecture i386; sudo apt-get update;
- name: Grab server
- run: LGSM_GITHUBBRANCH="${GITHUB_REF#refs/heads/}" ./linuxgsm.sh ${{ matrix.shortname }}server
+ run: LGSM_GITHUBBRANCH="${LGSM_REF}" ./linuxgsm.sh ${{ matrix.shortname }}server
- name: Enable developer mode
- run: LGSM_GITHUBBRANCH="${GITHUB_REF#refs/heads/}" ./${{ matrix.shortname }}server developer
+ run: LGSM_GITHUBBRANCH="${LGSM_REF}" ./${{ matrix.shortname }}server developer
- name: Insert steamuser
if: matrix.shortname == 'jk2'
run: echo -e "steamuser=\"${{ secrets.STEAMCMD_USER }}\"\nsteampass='${{ secrets.STEAMCMD_PASS }}'" > lgsm/config-lgsm/${{ matrix.shortname }}server/common.cfg
- name: Install server
- run: LGSM_GITHUBBRANCH="${GITHUB_REF#refs/heads/}" ./${{ matrix.shortname }}server auto-install
+ run: LGSM_GITHUBBRANCH="${LGSM_REF}" ./${{ matrix.shortname }}server auto-install
- name: Check Update server
- run: LGSM_GITHUBBRANCH="${GITHUB_REF#refs/heads/}" ./${{ matrix.shortname }}server check-update
+ run: LGSM_GITHUBBRANCH="${LGSM_REF}" ./${{ matrix.shortname }}server check-update
- name: Update server
- run: LGSM_GITHUBBRANCH="${GITHUB_REF#refs/heads/}" ./${{ matrix.shortname }}server update
+ run: LGSM_GITHUBBRANCH="${LGSM_REF}" ./${{ matrix.shortname }}server update
- name: Force Update server
if: matrix.shortname == 'css'
- run: LGSM_GITHUBBRANCH="${GITHUB_REF#refs/heads/}" ./${{ matrix.shortname }}server force-update
+ run: LGSM_GITHUBBRANCH="${LGSM_REF}" ./${{ matrix.shortname }}server force-update
diff --git a/.github/workflows/action-update-copyright-years-in-license-file.yml b/.github/workflows/action-update-copyright-years-in-license-file.yml
deleted file mode 100644
index ab1549f0e..000000000
--- a/.github/workflows/action-update-copyright-years-in-license-file.yml
+++ /dev/null
@@ -1,29 +0,0 @@
-name: Update copyright year(s) in license file
-
-on:
- workflow_dispatch:
- schedule:
- - cron: "0 3 1 1 *" # 03:00 AM on January 1
-
-permissions:
- contents: write
-
-jobs:
- update-license-year:
- runs-on: ubuntu-latest
- steps:
- - name: Checkout
- uses: actions/checkout@v6
- with:
- fetch-depth: 0
- persist-credentials: false
- - name: Action Update License Year
- uses: FantasticFiasco/action-update-license-year@v3
- with:
- token: ${{ secrets.GITHUB_TOKEN }}
- path: LICENSE.md
- - name: Merge pull request
- env:
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- run: |
- gh pr merge --merge --delete-branch
diff --git a/.github/workflows/action-version-check.yml b/.github/workflows/action-version-check.yml
index d3c4a5276..0726295a4 100644
--- a/.github/workflows/action-version-check.yml
+++ b/.github/workflows/action-version-check.yml
@@ -11,7 +11,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout
- uses: actions/checkout@v4
+ uses: actions/checkout@v6
- name: Version Check
run: .github/scripts/version-check.sh
diff --git a/.github/workflows/ai-triage.yml b/.github/workflows/ai-triage.yml
new file mode 100644
index 000000000..fba1e4cf1
--- /dev/null
+++ b/.github/workflows/ai-triage.yml
@@ -0,0 +1,243 @@
+name: AI Issue Triage
+on:
+ issues:
+ types:
+ - opened
+ - edited
+
+# Note: This workflow uses GitHub Models which may not be available
+# in all environments. If GitHub Models API returns 401 or is unavailable,
+# the workflow will skip gracefully and the issue will still be processed
+# by other automation (labeler, etc.)
+
+permissions:
+ issues: write
+ contents: read
+ models: read
+
+jobs:
+ ai-triage:
+ if: github.repository_owner == 'GameServerManagers'
+ runs-on: ubuntu-latest
+ steps:
+ - name: Triage issue with GitHub Models
+ uses: actions/github-script@v7
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ with:
+ script: |
+ const title = context.payload.issue.title || '';
+ const body = context.payload.issue.body || '';
+ const number = context.payload.issue.number;
+ const owner = context.repo.owner;
+ const repo = context.repo.repo;
+ const AI_MARKER = '';
+
+ function parseTriageResponse(raw) {
+ const input = (raw || '').trim();
+ if (!input) return {};
+
+ const candidates = [input];
+ const fenced = input.match(/```(?:json)?\s*([\s\S]*?)```/i);
+ if (fenced?.[1]) candidates.push(fenced[1].trim());
+
+ const firstBrace = input.indexOf('{');
+ const lastBrace = input.lastIndexOf('}');
+ if (firstBrace !== -1 && lastBrace > firstBrace) {
+ candidates.push(input.slice(firstBrace, lastBrace + 1));
+ }
+
+ for (const candidate of candidates) {
+ try {
+ return JSON.parse(candidate);
+ } catch (_err) {
+ // Continue trying fallbacks.
+ }
+ }
+
+ return {};
+ }
+
+ // For short bodies, apply "needs: more info" label directly.
+ // Skip the AI call but still label the issue.
+ const isShortBody = body.trim().length < 80;
+ if (isShortBody) {
+ try {
+ await github.rest.issues.addLabels({
+ owner, repo, issue_number: number,
+ labels: ['needs: more info'],
+ });
+ } catch (err) {
+ console.log('Could not apply label for short body:', err.message);
+ }
+ return;
+ }
+
+ // ── Call GitHub Models ────────────────────────────────────────
+ // Note: GitHub Models access may not be available in all environments.
+ // If the API returns 401 (Unauthorized), it means GitHub Models is not
+ // enabled for this repository or the current token lacks access.
+ // The workflow will gracefully skip AI triage and continue.
+ let triage;
+ try {
+ const res = await fetch(
+ `https://models.github.ai/orgs/${owner}/inference/chat/completions`,
+ {
+ method: 'POST',
+ headers: {
+ 'Accept': 'application/vnd.github+json',
+ 'Authorization': `Bearer ${process.env.GITHUB_TOKEN}`,
+ 'X-GitHub-Api-Version': '2026-03-10',
+ 'Content-Type': 'application/json',
+ },
+ body: JSON.stringify({
+ model: 'openai/gpt-4.1-mini',
+ temperature: 0.1,
+ max_tokens: 400,
+ messages: [
+ {
+ role: 'system',
+ content:
+ 'You are a triage assistant for LinuxGSM, an open-source ' +
+ 'Linux game server manager. Your role is to:\n' +
+ '1. Analyze issue quality (completeness, clarity)\n' +
+ '2. Extract game names mentioned in the issue, even if misspelled or abbreviated\n' +
+ '3. Suggest corrections for likely typos using fuzzy matching\n' +
+ '4. Respond ONLY with a valid JSON object — no markdown fences.\n\n' +
+ 'Common game name variations and typos you should recognize:\n' +
+ '- "Valhiem" → "Valheim"\n' +
+ '- "Rrust" → "Rust"\n' +
+ '- "Conterstrike" / "CS" / "CSGO" → "Counter-Strike: Global Offensive"\n' +
+ '- "Garrys" / "GMod" → "Garrys Mod"\n' +
+ '- "ARK" / "Ark" → "ARK: Survival Evolved"\n' +
+ '- "DayZ" / "Dayz" → "DayZ"\n' +
+ '- "Insurgency Sandstorm" / "Insurgency 2" → "Insurgency: Sandstorm"',
+ },
+ {
+ role: 'user',
+ content:
+ `Title: ${title}\n\nBody:\n${body.slice(0, 3000)}\n\n` +
+ 'Respond with this JSON schema:\n' +
+ '{\n' +
+ ' "quality": "good" | "ok" | "poor",\n' +
+ ' "missing_info": ["list of specific missing fields"],\n' +
+ ' "detected_game": "canonical game name if one is mentioned, or null",\n' +
+ ' "game_confidence": "high" | "medium" | "low" | null,\n' +
+ ' "game_note": "correction suggestion if the user misspelled a game name, or empty string",\n' +
+ ' "comment": "one or two sentence note to the reporter, or empty string"\n' +
+ '}',
+ },
+ ],
+ }),
+ }
+ );
+
+ // GitHub Models may return 401 if not available for this repository.
+ // This is expected and not an error — the workflow simply skips AI triage.
+ if (!res.ok) {
+ console.log(`GitHub Models returned ${res.status} — skipping AI triage.`);
+ return;
+ }
+
+ const data = await res.json();
+ const raw = data.choices?.[0]?.message?.content || '{}';
+ triage = parseTriageResponse(raw);
+ } catch (err) {
+ // Never fail the workflow if the AI call errors — it's advisory only.
+ console.log('AI triage skipped:', err.message);
+ return;
+ }
+
+ if (!triage || typeof triage !== 'object') {
+ triage = {};
+ }
+
+ // ── Act on the result ────────────────────────────────────────
+ const isPoor = triage.quality === 'poor';
+ const missing = Array.isArray(triage.missing_info) ? triage.missing_info : [];
+ const hasIssues = isPoor || missing.length > 0;
+
+ // Prepare labels to apply
+ const labelsToApply = [];
+
+ // Check if a game was detected with high confidence
+ const detectedGame = triage.detected_game;
+ const gameConfidence = triage.game_confidence;
+
+ if (detectedGame && gameConfidence === 'high') {
+ labelsToApply.push(`game: ${detectedGame}`);
+ }
+
+ // Apply "needs: more info" label if quality issues detected
+ if (hasIssues) {
+ labelsToApply.push('needs: more info');
+ }
+
+ // Apply labels one-by-one so a single failure does not block all labels.
+ const uniqueLabels = [...new Set(labelsToApply)];
+ for (const label of uniqueLabels) {
+ try {
+ await github.rest.issues.addLabels({
+ owner,
+ repo,
+ issue_number: number,
+ labels: [label],
+ });
+ } catch (err) {
+ console.log(`Could not apply label "${label}":`, err.message);
+ }
+ }
+
+ // Post a comment only when there is something specific to say
+ const gameNote = triage.game_note || '';
+ const reporterComment = triage.comment || '';
+
+ if (!hasIssues && !gameNote) return;
+
+ const missingBlock = missing.length > 0
+ ? `\n\n**Missing information:**\n${missing.map(m => `- ${m}`).join('\n')}`
+ : '';
+
+ const gameBlock = gameNote
+ ? `\n\n**Game name note:** ${gameNote}`
+ : '';
+
+ const triageCommentBody =
+ `${AI_MARKER}\n` +
+ `Thanks for opening this issue! 👋\n\n` +
+ `${reporterComment}` +
+ `${missingBlock}` +
+ `${gameBlock}\n\n` +
+ `_This note was generated automatically by AI triage and may not be perfect. ` +
+ `A maintainer will review shortly._`;
+
+ try {
+ const comments = await github.rest.issues.listComments({
+ owner,
+ repo,
+ issue_number: number,
+ per_page: 100,
+ });
+
+ const existingAiComment = comments.data.find(
+ (comment) => comment.user?.type === 'Bot' && comment.body?.includes(AI_MARKER)
+ );
+
+ if (existingAiComment) {
+ await github.rest.issues.updateComment({
+ owner,
+ repo,
+ comment_id: existingAiComment.id,
+ body: triageCommentBody,
+ });
+ } else {
+ await github.rest.issues.createComment({
+ owner,
+ repo,
+ issue_number: number,
+ body: triageCommentBody,
+ });
+ }
+ } catch (err) {
+ console.log('Could not post comment:', err.message);
+ }
diff --git a/.github/workflows/sync-game-labels.yml b/.github/workflows/sync-game-labels.yml
new file mode 100644
index 000000000..eccb0ed46
--- /dev/null
+++ b/.github/workflows/sync-game-labels.yml
@@ -0,0 +1,28 @@
+name: Sync Game Labels
+on:
+ push:
+ branches:
+ - master
+ - develop
+ paths:
+ - "lgsm/data/serverlist.csv"
+ workflow_dispatch: {}
+
+permissions:
+ issues: write
+ contents: read
+
+jobs:
+ sync-game-labels:
+ if: github.repository_owner == 'GameServerManagers'
+ runs-on: ubuntu-latest
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v5
+
+ - name: Sync game labels from serverlist
+ env:
+ GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ run: |
+ chmod +x .github/scripts/sync-game-labels.sh
+ .github/scripts/sync-game-labels.sh
diff --git a/.prettierignore b/.prettierignore
index e69de29bb..ed5b8552f 100644
--- a/.prettierignore
+++ b/.prettierignore
@@ -0,0 +1,7 @@
+# Prettier auto-commit runs with GITHUB_TOKEN (GitHub App).
+# GitHub blocks that token from creating/updating anything under .github/workflows.
+.github/workflows/**
+
+# Machine-generated by npm; its format is owned by npm, not Prettier.
+# Prettier reformatting it fights npm and makes the auto-commit run fail.
+package-lock.json
diff --git a/lgsm/config-default/config-lgsm/acserver/_default.cfg b/lgsm/config-default/config-lgsm/acserver/_default.cfg
index 2c4f8c84a..7ccebf181 100644
--- a/lgsm/config-default/config-lgsm/acserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/acserver/_default.cfg
@@ -64,6 +64,12 @@ ntfypassword=""
ntfypriority=""
ntfytags=""
+# Matrix Alerts | https://docs.linuxgsm.com/alerts/matrix
+matrixalert="off"
+matrixhomeserver="matrix.org"
+matrixtoken="accesstoken"
+matrixroom=""
+
# Pushbullet Alerts | https://docs.linuxgsm.com/alerts/pushbullet
pushbulletalert="off"
pushbullettoken="accesstoken"
diff --git a/lgsm/config-default/config-lgsm/ahl2server/_default.cfg b/lgsm/config-default/config-lgsm/ahl2server/_default.cfg
index 8e2f9b272..b955c4180 100644
--- a/lgsm/config-default/config-lgsm/ahl2server/_default.cfg
+++ b/lgsm/config-default/config-lgsm/ahl2server/_default.cfg
@@ -72,6 +72,12 @@ ntfypassword=""
ntfypriority=""
ntfytags=""
+# Matrix Alerts | https://docs.linuxgsm.com/alerts/matrix
+matrixalert="off"
+matrixhomeserver="matrix.org"
+matrixtoken="accesstoken"
+matrixroom=""
+
# Pushbullet Alerts | https://docs.linuxgsm.com/alerts/pushbullet
pushbulletalert="off"
pushbullettoken="accesstoken"
@@ -101,6 +107,10 @@ telegramthreadid=""
telegramsilentnotification="false"
curlcustomstring=""
+## Stop | https://docs.linuxgsm.com/commands/start-stop-restart
+stoponlyifnoplayers="off"
+stoponlyifnoplayersallcommands="on"
+
## Updating | https://docs.linuxgsm.com/commands/update
updateonstart="off"
diff --git a/lgsm/config-default/config-lgsm/ahlserver/_default.cfg b/lgsm/config-default/config-lgsm/ahlserver/_default.cfg
index 84501a48e..6854d55cf 100644
--- a/lgsm/config-default/config-lgsm/ahlserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/ahlserver/_default.cfg
@@ -67,6 +67,12 @@ ntfypassword=""
ntfypriority=""
ntfytags=""
+# Matrix Alerts | https://docs.linuxgsm.com/alerts/matrix
+matrixalert="off"
+matrixhomeserver="matrix.org"
+matrixtoken="accesstoken"
+matrixroom=""
+
# Pushbullet Alerts | https://docs.linuxgsm.com/alerts/pushbullet
pushbulletalert="off"
pushbullettoken="accesstoken"
@@ -96,6 +102,10 @@ telegramthreadid=""
telegramsilentnotification="false"
curlcustomstring=""
+## Stop | https://docs.linuxgsm.com/commands/start-stop-restart
+stoponlyifnoplayers="off"
+stoponlyifnoplayersallcommands="on"
+
## Updating | https://docs.linuxgsm.com/commands/update
updateonstart="off"
diff --git a/lgsm/config-default/config-lgsm/arkserver/_default.cfg b/lgsm/config-default/config-lgsm/arkserver/_default.cfg
index 0866ac0a0..cc492f7b5 100644
--- a/lgsm/config-default/config-lgsm/arkserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/arkserver/_default.cfg
@@ -69,6 +69,12 @@ ntfypassword=""
ntfypriority=""
ntfytags=""
+# Matrix Alerts | https://docs.linuxgsm.com/alerts/matrix
+matrixalert="off"
+matrixhomeserver="matrix.org"
+matrixtoken="accesstoken"
+matrixroom=""
+
# Pushbullet Alerts | https://docs.linuxgsm.com/alerts/pushbullet
pushbulletalert="off"
pushbullettoken="accesstoken"
@@ -98,6 +104,10 @@ telegramthreadid=""
telegramsilentnotification="false"
curlcustomstring=""
+## Stop | https://docs.linuxgsm.com/commands/start-stop-restart
+stoponlyifnoplayers="off"
+stoponlyifnoplayersallcommands="on"
+
## Updating | https://docs.linuxgsm.com/commands/update
updateonstart="off"
diff --git a/lgsm/config-default/config-lgsm/arma3server/_default.cfg b/lgsm/config-default/config-lgsm/arma3server/_default.cfg
index 2db6dc955..46a98ed46 100644
--- a/lgsm/config-default/config-lgsm/arma3server/_default.cfg
+++ b/lgsm/config-default/config-lgsm/arma3server/_default.cfg
@@ -83,6 +83,12 @@ ntfypassword=""
ntfypriority=""
ntfytags=""
+# Matrix Alerts | https://docs.linuxgsm.com/alerts/matrix
+matrixalert="off"
+matrixhomeserver="matrix.org"
+matrixtoken="accesstoken"
+matrixroom=""
+
# Pushbullet Alerts | https://docs.linuxgsm.com/alerts/pushbullet
pushbulletalert="off"
pushbullettoken="accesstoken"
@@ -112,6 +118,10 @@ telegramthreadid=""
telegramsilentnotification="false"
curlcustomstring=""
+## Stop | https://docs.linuxgsm.com/commands/start-stop-restart
+stoponlyifnoplayers="off"
+stoponlyifnoplayersallcommands="on"
+
## Updating | https://docs.linuxgsm.com/commands/update
updateonstart="off"
diff --git a/lgsm/config-default/config-lgsm/armarserver/_default.cfg b/lgsm/config-default/config-lgsm/armarserver/_default.cfg
index e7e8c24f4..a6532146f 100644
--- a/lgsm/config-default/config-lgsm/armarserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/armarserver/_default.cfg
@@ -68,6 +68,12 @@ ntfypassword=""
ntfypriority=""
ntfytags=""
+# Matrix Alerts | https://docs.linuxgsm.com/alerts/matrix
+matrixalert="off"
+matrixhomeserver="matrix.org"
+matrixtoken="accesstoken"
+matrixroom=""
+
# Pushbullet Alerts | https://docs.linuxgsm.com/alerts/pushbullet
pushbulletalert="off"
pushbullettoken="accesstoken"
@@ -97,6 +103,10 @@ telegramthreadid=""
telegramsilentnotification="false"
curlcustomstring=""
+## Stop | https://docs.linuxgsm.com/commands/start-stop-restart
+stoponlyifnoplayers="off"
+stoponlyifnoplayersallcommands="on"
+
## Updating | https://docs.linuxgsm.com/commands/update
updateonstart="off"
diff --git a/lgsm/config-default/config-lgsm/atsserver/_default.cfg b/lgsm/config-default/config-lgsm/atsserver/_default.cfg
index a37b64547..6b4b0807b 100644
--- a/lgsm/config-default/config-lgsm/atsserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/atsserver/_default.cfg
@@ -60,6 +60,12 @@ ntfypassword=""
ntfypriority=""
ntfytags=""
+# Matrix Alerts | https://docs.linuxgsm.com/alerts/matrix
+matrixalert="off"
+matrixhomeserver="matrix.org"
+matrixtoken="accesstoken"
+matrixroom=""
+
# Pushbullet Alerts | https://docs.linuxgsm.com/alerts/pushbullet
pushbulletalert="off"
pushbullettoken="accesstoken"
@@ -89,6 +95,10 @@ telegramthreadid=""
telegramsilentnotification="false"
curlcustomstring=""
+## Stop | https://docs.linuxgsm.com/commands/start-stop-restart
+stoponlyifnoplayers="off"
+stoponlyifnoplayersallcommands="on"
+
## Updating | https://docs.linuxgsm.com/commands/update
updateonstart="off"
diff --git a/lgsm/config-default/config-lgsm/avserver/_default.cfg b/lgsm/config-default/config-lgsm/avserver/_default.cfg
index 5220fa4e7..5668c8be3 100644
--- a/lgsm/config-default/config-lgsm/avserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/avserver/_default.cfg
@@ -60,6 +60,12 @@ ntfypassword=""
ntfypriority=""
ntfytags=""
+# Matrix Alerts | https://docs.linuxgsm.com/alerts/matrix
+matrixalert="off"
+matrixhomeserver="matrix.org"
+matrixtoken="accesstoken"
+matrixroom=""
+
# Pushbullet Alerts | https://docs.linuxgsm.com/alerts/pushbullet
pushbulletalert="off"
pushbullettoken="accesstoken"
@@ -89,6 +95,10 @@ telegramthreadid=""
telegramsilentnotification="false"
curlcustomstring=""
+## Stop | https://docs.linuxgsm.com/commands/start-stop-restart
+stoponlyifnoplayers="off"
+stoponlyifnoplayersallcommands="on"
+
## Updating | https://docs.linuxgsm.com/commands/update
updateonstart="off"
diff --git a/lgsm/config-default/config-lgsm/bb2server/_default.cfg b/lgsm/config-default/config-lgsm/bb2server/_default.cfg
index c00bd7e7d..ec113ed99 100644
--- a/lgsm/config-default/config-lgsm/bb2server/_default.cfg
+++ b/lgsm/config-default/config-lgsm/bb2server/_default.cfg
@@ -73,6 +73,12 @@ ntfypassword=""
ntfypriority=""
ntfytags=""
+# Matrix Alerts | https://docs.linuxgsm.com/alerts/matrix
+matrixalert="off"
+matrixhomeserver="matrix.org"
+matrixtoken="accesstoken"
+matrixroom=""
+
# Pushbullet Alerts | https://docs.linuxgsm.com/alerts/pushbullet
pushbulletalert="off"
pushbullettoken="accesstoken"
@@ -102,6 +108,10 @@ telegramthreadid=""
telegramsilentnotification="false"
curlcustomstring=""
+## Stop | https://docs.linuxgsm.com/commands/start-stop-restart
+stoponlyifnoplayers="off"
+stoponlyifnoplayersallcommands="on"
+
## Updating | https://docs.linuxgsm.com/commands/update
updateonstart="off"
diff --git a/lgsm/config-default/config-lgsm/bbserver/_default.cfg b/lgsm/config-default/config-lgsm/bbserver/_default.cfg
index 5453a35f1..b3d7b7513 100644
--- a/lgsm/config-default/config-lgsm/bbserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/bbserver/_default.cfg
@@ -67,6 +67,12 @@ ntfypassword=""
ntfypriority=""
ntfytags=""
+# Matrix Alerts | https://docs.linuxgsm.com/alerts/matrix
+matrixalert="off"
+matrixhomeserver="matrix.org"
+matrixtoken="accesstoken"
+matrixroom=""
+
# Pushbullet Alerts | https://docs.linuxgsm.com/alerts/pushbullet
pushbulletalert="off"
pushbullettoken="accesstoken"
@@ -96,6 +102,10 @@ telegramthreadid=""
telegramsilentnotification="false"
curlcustomstring=""
+## Stop | https://docs.linuxgsm.com/commands/start-stop-restart
+stoponlyifnoplayers="off"
+stoponlyifnoplayersallcommands="on"
+
## Updating | https://docs.linuxgsm.com/commands/update
updateonstart="off"
diff --git a/lgsm/config-default/config-lgsm/bdserver/_default.cfg b/lgsm/config-default/config-lgsm/bdserver/_default.cfg
index ac5df16ae..5144fd258 100644
--- a/lgsm/config-default/config-lgsm/bdserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/bdserver/_default.cfg
@@ -67,6 +67,12 @@ ntfypassword=""
ntfypriority=""
ntfytags=""
+# Matrix Alerts | https://docs.linuxgsm.com/alerts/matrix
+matrixalert="off"
+matrixhomeserver="matrix.org"
+matrixtoken="accesstoken"
+matrixroom=""
+
# Pushbullet Alerts | https://docs.linuxgsm.com/alerts/pushbullet
pushbulletalert="off"
pushbullettoken="accesstoken"
@@ -96,6 +102,10 @@ telegramthreadid=""
telegramsilentnotification="false"
curlcustomstring=""
+## Stop | https://docs.linuxgsm.com/commands/start-stop-restart
+stoponlyifnoplayers="off"
+stoponlyifnoplayersallcommands="on"
+
## Updating | https://docs.linuxgsm.com/commands/update
updateonstart="off"
diff --git a/lgsm/config-default/config-lgsm/bf1942server/_default.cfg b/lgsm/config-default/config-lgsm/bf1942server/_default.cfg
index 69c4ba727..86363ccc5 100644
--- a/lgsm/config-default/config-lgsm/bf1942server/_default.cfg
+++ b/lgsm/config-default/config-lgsm/bf1942server/_default.cfg
@@ -60,6 +60,12 @@ ntfypassword=""
ntfypriority=""
ntfytags=""
+# Matrix Alerts | https://docs.linuxgsm.com/alerts/matrix
+matrixalert="off"
+matrixhomeserver="matrix.org"
+matrixtoken="accesstoken"
+matrixroom=""
+
# Pushbullet Alerts | https://docs.linuxgsm.com/alerts/pushbullet
pushbulletalert="off"
pushbullettoken="accesstoken"
@@ -89,6 +95,10 @@ telegramthreadid=""
telegramsilentnotification="false"
curlcustomstring=""
+## Stop | https://docs.linuxgsm.com/commands/start-stop-restart
+stoponlyifnoplayers="off"
+stoponlyifnoplayersallcommands="on"
+
## Updating | https://docs.linuxgsm.com/commands/update
updateonstart="off"
diff --git a/lgsm/config-default/config-lgsm/bfvserver/_default.cfg b/lgsm/config-default/config-lgsm/bfvserver/_default.cfg
index 7a28076b0..7fcfdd5ac 100644
--- a/lgsm/config-default/config-lgsm/bfvserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/bfvserver/_default.cfg
@@ -60,6 +60,12 @@ ntfypassword=""
ntfypriority=""
ntfytags=""
+# Matrix Alerts | https://docs.linuxgsm.com/alerts/matrix
+matrixalert="off"
+matrixhomeserver="matrix.org"
+matrixtoken="accesstoken"
+matrixroom=""
+
# Pushbullet Alerts | https://docs.linuxgsm.com/alerts/pushbullet
pushbulletalert="off"
pushbullettoken="accesstoken"
@@ -89,6 +95,10 @@ telegramthreadid=""
telegramsilentnotification="false"
curlcustomstring=""
+## Stop | https://docs.linuxgsm.com/commands/start-stop-restart
+stoponlyifnoplayers="off"
+stoponlyifnoplayersallcommands="on"
+
## Updating | https://docs.linuxgsm.com/commands/update
updateonstart="off"
diff --git a/lgsm/config-default/config-lgsm/bmdmserver/_default.cfg b/lgsm/config-default/config-lgsm/bmdmserver/_default.cfg
index f4946bf34..3bcdd5cb9 100644
--- a/lgsm/config-default/config-lgsm/bmdmserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/bmdmserver/_default.cfg
@@ -73,6 +73,12 @@ ntfypassword=""
ntfypriority=""
ntfytags=""
+# Matrix Alerts | https://docs.linuxgsm.com/alerts/matrix
+matrixalert="off"
+matrixhomeserver="matrix.org"
+matrixtoken="accesstoken"
+matrixroom=""
+
# Pushbullet Alerts | https://docs.linuxgsm.com/alerts/pushbullet
pushbulletalert="off"
pushbullettoken="accesstoken"
@@ -102,6 +108,10 @@ telegramthreadid=""
telegramsilentnotification="false"
curlcustomstring=""
+## Stop | https://docs.linuxgsm.com/commands/start-stop-restart
+stoponlyifnoplayers="off"
+stoponlyifnoplayersallcommands="on"
+
## Updating | https://docs.linuxgsm.com/commands/update
updateonstart="off"
diff --git a/lgsm/config-default/config-lgsm/boserver/_default.cfg b/lgsm/config-default/config-lgsm/boserver/_default.cfg
index 7eba6c82a..9d3110cca 100644
--- a/lgsm/config-default/config-lgsm/boserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/boserver/_default.cfg
@@ -65,6 +65,12 @@ ntfypassword=""
ntfypriority=""
ntfytags=""
+# Matrix Alerts | https://docs.linuxgsm.com/alerts/matrix
+matrixalert="off"
+matrixhomeserver="matrix.org"
+matrixtoken="accesstoken"
+matrixroom=""
+
# Pushbullet Alerts | https://docs.linuxgsm.com/alerts/pushbullet
pushbulletalert="off"
pushbullettoken="accesstoken"
@@ -94,6 +100,10 @@ telegramthreadid=""
telegramsilentnotification="false"
curlcustomstring=""
+## Stop | https://docs.linuxgsm.com/commands/start-stop-restart
+stoponlyifnoplayers="off"
+stoponlyifnoplayersallcommands="on"
+
## Updating | https://docs.linuxgsm.com/commands/update
updateonstart="off"
diff --git a/lgsm/config-default/config-lgsm/bsserver/_default.cfg b/lgsm/config-default/config-lgsm/bsserver/_default.cfg
index 865e8cf20..3ef7574a0 100644
--- a/lgsm/config-default/config-lgsm/bsserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/bsserver/_default.cfg
@@ -77,6 +77,12 @@ ntfypassword=""
ntfypriority=""
ntfytags=""
+# Matrix Alerts | https://docs.linuxgsm.com/alerts/matrix
+matrixalert="off"
+matrixhomeserver="matrix.org"
+matrixtoken="accesstoken"
+matrixroom=""
+
# Pushbullet Alerts | https://docs.linuxgsm.com/alerts/pushbullet
pushbulletalert="off"
pushbullettoken="accesstoken"
@@ -106,6 +112,10 @@ telegramthreadid=""
telegramsilentnotification="false"
curlcustomstring=""
+## Stop | https://docs.linuxgsm.com/commands/start-stop-restart
+stoponlyifnoplayers="off"
+stoponlyifnoplayersallcommands="on"
+
## Updating | https://docs.linuxgsm.com/commands/update
updateonstart="off"
diff --git a/lgsm/config-default/config-lgsm/btlserver/_default.cfg b/lgsm/config-default/config-lgsm/btlserver/_default.cfg
index a95a7e77c..7e936b1f7 100644
--- a/lgsm/config-default/config-lgsm/btlserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/btlserver/_default.cfg
@@ -65,6 +65,12 @@ ntfypassword=""
ntfypriority=""
ntfytags=""
+# Matrix Alerts | https://docs.linuxgsm.com/alerts/matrix
+matrixalert="off"
+matrixhomeserver="matrix.org"
+matrixtoken="accesstoken"
+matrixroom=""
+
# Pushbullet Alerts | https://docs.linuxgsm.com/alerts/pushbullet
pushbulletalert="off"
pushbullettoken="accesstoken"
@@ -94,6 +100,10 @@ telegramthreadid=""
telegramsilentnotification="false"
curlcustomstring=""
+## Stop | https://docs.linuxgsm.com/commands/start-stop-restart
+stoponlyifnoplayers="off"
+stoponlyifnoplayersallcommands="on"
+
## Updating | https://docs.linuxgsm.com/commands/update
updateonstart="off"
diff --git a/lgsm/config-default/config-lgsm/btserver/_default.cfg b/lgsm/config-default/config-lgsm/btserver/_default.cfg
index e12b1dfa3..0134772b3 100644
--- a/lgsm/config-default/config-lgsm/btserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/btserver/_default.cfg
@@ -60,6 +60,12 @@ ntfypassword=""
ntfypriority=""
ntfytags=""
+# Matrix Alerts | https://docs.linuxgsm.com/alerts/matrix
+matrixalert="off"
+matrixhomeserver="matrix.org"
+matrixtoken="accesstoken"
+matrixroom=""
+
# Pushbullet Alerts | https://docs.linuxgsm.com/alerts/pushbullet
pushbulletalert="off"
pushbullettoken="accesstoken"
@@ -89,6 +95,10 @@ telegramthreadid=""
telegramsilentnotification="false"
curlcustomstring=""
+## Stop | https://docs.linuxgsm.com/commands/start-stop-restart
+stoponlyifnoplayers="off"
+stoponlyifnoplayersallcommands="on"
+
## Updating | https://docs.linuxgsm.com/commands/update
updateonstart="off"
diff --git a/lgsm/config-default/config-lgsm/ccserver/_default.cfg b/lgsm/config-default/config-lgsm/ccserver/_default.cfg
index dcd65011d..86eaa9d15 100644
--- a/lgsm/config-default/config-lgsm/ccserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/ccserver/_default.cfg
@@ -68,6 +68,12 @@ ntfypassword=""
ntfypriority=""
ntfytags=""
+# Matrix Alerts | https://docs.linuxgsm.com/alerts/matrix
+matrixalert="off"
+matrixhomeserver="matrix.org"
+matrixtoken="accesstoken"
+matrixroom=""
+
# Pushbullet Alerts | https://docs.linuxgsm.com/alerts/pushbullet
pushbulletalert="off"
pushbullettoken="accesstoken"
@@ -97,6 +103,10 @@ telegramthreadid=""
telegramsilentnotification="false"
curlcustomstring=""
+## Stop | https://docs.linuxgsm.com/commands/start-stop-restart
+stoponlyifnoplayers="off"
+stoponlyifnoplayersallcommands="on"
+
## Updating | https://docs.linuxgsm.com/commands/update
updateonstart="off"
diff --git a/lgsm/config-default/config-lgsm/ckserver/_default.cfg b/lgsm/config-default/config-lgsm/ckserver/_default.cfg
index 35f36dbf5..b238c2148 100644
--- a/lgsm/config-default/config-lgsm/ckserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/ckserver/_default.cfg
@@ -64,6 +64,12 @@ ntfypassword=""
ntfypriority=""
ntfytags=""
+# Matrix Alerts | https://docs.linuxgsm.com/alerts/matrix
+matrixalert="off"
+matrixhomeserver="matrix.org"
+matrixtoken="accesstoken"
+matrixroom=""
+
# Pushbullet Alerts | https://docs.linuxgsm.com/alerts/pushbullet
pushbulletalert="off"
pushbullettoken="accesstoken"
@@ -93,6 +99,10 @@ telegramthreadid=""
telegramsilentnotification="false"
curlcustomstring=""
+## Stop | https://docs.linuxgsm.com/commands/start-stop-restart
+stoponlyifnoplayers="off"
+stoponlyifnoplayersallcommands="on"
+
## Updating | https://docs.linuxgsm.com/commands/update
updateonstart="off"
diff --git a/lgsm/config-default/config-lgsm/cmwserver/_default.cfg b/lgsm/config-default/config-lgsm/cmwserver/_default.cfg
index bd81c0cdc..110013f89 100644
--- a/lgsm/config-default/config-lgsm/cmwserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/cmwserver/_default.cfg
@@ -66,6 +66,12 @@ ntfypassword=""
ntfypriority=""
ntfytags=""
+# Matrix Alerts | https://docs.linuxgsm.com/alerts/matrix
+matrixalert="off"
+matrixhomeserver="matrix.org"
+matrixtoken="accesstoken"
+matrixroom=""
+
# Pushbullet Alerts | https://docs.linuxgsm.com/alerts/pushbullet
pushbulletalert="off"
pushbullettoken="accesstoken"
@@ -95,6 +101,10 @@ telegramthreadid=""
telegramsilentnotification="false"
curlcustomstring=""
+## Stop | https://docs.linuxgsm.com/commands/start-stop-restart
+stoponlyifnoplayers="off"
+stoponlyifnoplayersallcommands="on"
+
## Updating | https://docs.linuxgsm.com/commands/update
updateonstart="off"
diff --git a/lgsm/config-default/config-lgsm/cod2server/_default.cfg b/lgsm/config-default/config-lgsm/cod2server/_default.cfg
index f33d207cf..45abeb251 100644
--- a/lgsm/config-default/config-lgsm/cod2server/_default.cfg
+++ b/lgsm/config-default/config-lgsm/cod2server/_default.cfg
@@ -66,6 +66,12 @@ ntfypassword=""
ntfypriority=""
ntfytags=""
+# Matrix Alerts | https://docs.linuxgsm.com/alerts/matrix
+matrixalert="off"
+matrixhomeserver="matrix.org"
+matrixtoken="accesstoken"
+matrixroom=""
+
# Pushbullet Alerts | https://docs.linuxgsm.com/alerts/pushbullet
pushbulletalert="off"
pushbullettoken="accesstoken"
@@ -95,6 +101,10 @@ telegramthreadid=""
telegramsilentnotification="false"
curlcustomstring=""
+## Stop | https://docs.linuxgsm.com/commands/start-stop-restart
+stoponlyifnoplayers="off"
+stoponlyifnoplayersallcommands="on"
+
## Backup | https://docs.linuxgsm.com/commands/backup
maxbackups="4"
maxbackupdays="30"
diff --git a/lgsm/config-default/config-lgsm/cod4server/_default.cfg b/lgsm/config-default/config-lgsm/cod4server/_default.cfg
index e2fee45b1..0d007db4e 100644
--- a/lgsm/config-default/config-lgsm/cod4server/_default.cfg
+++ b/lgsm/config-default/config-lgsm/cod4server/_default.cfg
@@ -66,6 +66,12 @@ ntfypassword=""
ntfypriority=""
ntfytags=""
+# Matrix Alerts | https://docs.linuxgsm.com/alerts/matrix
+matrixalert="off"
+matrixhomeserver="matrix.org"
+matrixtoken="accesstoken"
+matrixroom=""
+
# Pushbullet Alerts | https://docs.linuxgsm.com/alerts/pushbullet
pushbulletalert="off"
pushbullettoken="accesstoken"
@@ -95,6 +101,10 @@ telegramthreadid=""
telegramsilentnotification="false"
curlcustomstring=""
+## Stop | https://docs.linuxgsm.com/commands/start-stop-restart
+stoponlyifnoplayers="off"
+stoponlyifnoplayersallcommands="on"
+
## Backup | https://docs.linuxgsm.com/commands/backup
maxbackups="4"
maxbackupdays="30"
diff --git a/lgsm/config-default/config-lgsm/codserver/_default.cfg b/lgsm/config-default/config-lgsm/codserver/_default.cfg
index 364096768..de3fc8c23 100644
--- a/lgsm/config-default/config-lgsm/codserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/codserver/_default.cfg
@@ -66,6 +66,12 @@ ntfypassword=""
ntfypriority=""
ntfytags=""
+# Matrix Alerts | https://docs.linuxgsm.com/alerts/matrix
+matrixalert="off"
+matrixhomeserver="matrix.org"
+matrixtoken="accesstoken"
+matrixroom=""
+
# Pushbullet Alerts | https://docs.linuxgsm.com/alerts/pushbullet
pushbulletalert="off"
pushbullettoken="accesstoken"
@@ -95,6 +101,10 @@ telegramthreadid=""
telegramsilentnotification="false"
curlcustomstring=""
+## Stop | https://docs.linuxgsm.com/commands/start-stop-restart
+stoponlyifnoplayers="off"
+stoponlyifnoplayersallcommands="on"
+
## Backup | https://docs.linuxgsm.com/commands/backup
maxbackups="4"
maxbackupdays="30"
diff --git a/lgsm/config-default/config-lgsm/coduoserver/_default.cfg b/lgsm/config-default/config-lgsm/coduoserver/_default.cfg
index 0a8da94a9..2e52c6b24 100644
--- a/lgsm/config-default/config-lgsm/coduoserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/coduoserver/_default.cfg
@@ -66,6 +66,12 @@ ntfypassword=""
ntfypriority=""
ntfytags=""
+# Matrix Alerts | https://docs.linuxgsm.com/alerts/matrix
+matrixalert="off"
+matrixhomeserver="matrix.org"
+matrixtoken="accesstoken"
+matrixroom=""
+
# Pushbullet Alerts | https://docs.linuxgsm.com/alerts/pushbullet
pushbulletalert="off"
pushbullettoken="accesstoken"
@@ -95,6 +101,10 @@ telegramthreadid=""
telegramsilentnotification="false"
curlcustomstring=""
+## Stop | https://docs.linuxgsm.com/commands/start-stop-restart
+stoponlyifnoplayers="off"
+stoponlyifnoplayersallcommands="on"
+
## Backup | https://docs.linuxgsm.com/commands/backup
maxbackups="4"
maxbackupdays="30"
diff --git a/lgsm/config-default/config-lgsm/codwawserver/_default.cfg b/lgsm/config-default/config-lgsm/codwawserver/_default.cfg
index ce6bba88e..438c1b785 100644
--- a/lgsm/config-default/config-lgsm/codwawserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/codwawserver/_default.cfg
@@ -66,6 +66,12 @@ ntfypassword=""
ntfypriority=""
ntfytags=""
+# Matrix Alerts | https://docs.linuxgsm.com/alerts/matrix
+matrixalert="off"
+matrixhomeserver="matrix.org"
+matrixtoken="accesstoken"
+matrixroom=""
+
# Pushbullet Alerts | https://docs.linuxgsm.com/alerts/pushbullet
pushbulletalert="off"
pushbullettoken="accesstoken"
@@ -95,6 +101,10 @@ telegramthreadid=""
telegramsilentnotification="false"
curlcustomstring=""
+## Stop | https://docs.linuxgsm.com/commands/start-stop-restart
+stoponlyifnoplayers="off"
+stoponlyifnoplayersallcommands="on"
+
## Backup | https://docs.linuxgsm.com/commands/backup
maxbackups="4"
maxbackupdays="30"
diff --git a/lgsm/config-default/config-lgsm/colserver/_default.cfg b/lgsm/config-default/config-lgsm/colserver/_default.cfg
index 4a560cebb..82cf3de7b 100644
--- a/lgsm/config-default/config-lgsm/colserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/colserver/_default.cfg
@@ -61,6 +61,12 @@ ntfypassword=""
ntfypriority=""
ntfytags=""
+# Matrix Alerts | https://docs.linuxgsm.com/alerts/matrix
+matrixalert="off"
+matrixhomeserver="matrix.org"
+matrixtoken="accesstoken"
+matrixroom=""
+
# Pushbullet Alerts | https://docs.linuxgsm.com/alerts/pushbullet
pushbulletalert="off"
pushbullettoken="accesstoken"
@@ -90,6 +96,10 @@ telegramthreadid=""
telegramsilentnotification="false"
curlcustomstring=""
+## Stop | https://docs.linuxgsm.com/commands/start-stop-restart
+stoponlyifnoplayers="off"
+stoponlyifnoplayersallcommands="on"
+
## Updating | https://docs.linuxgsm.com/commands/update
updateonstart="off"
diff --git a/lgsm/config-default/config-lgsm/cs2server/_default.cfg b/lgsm/config-default/config-lgsm/cs2server/_default.cfg
index 8d65b5364..81d1cb7ed 100644
--- a/lgsm/config-default/config-lgsm/cs2server/_default.cfg
+++ b/lgsm/config-default/config-lgsm/cs2server/_default.cfg
@@ -72,6 +72,12 @@ ntfypassword=""
ntfypriority=""
ntfytags=""
+# Matrix Alerts | https://docs.linuxgsm.com/alerts/matrix
+matrixalert="off"
+matrixhomeserver="matrix.org"
+matrixtoken="accesstoken"
+matrixroom=""
+
# Pushbullet Alerts | https://docs.linuxgsm.com/alerts/pushbullet
pushbulletalert="off"
pushbullettoken="accesstoken"
@@ -101,6 +107,10 @@ telegramthreadid=""
telegramsilentnotification="false"
curlcustomstring=""
+## Stop | https://docs.linuxgsm.com/commands/start-stop-restart
+stoponlyifnoplayers="off"
+stoponlyifnoplayersallcommands="on"
+
## Updating | https://docs.linuxgsm.com/commands/update
updateonstart="off"
diff --git a/lgsm/config-default/config-lgsm/csczserver/_default.cfg b/lgsm/config-default/config-lgsm/csczserver/_default.cfg
index f5d90a35b..531e897ad 100644
--- a/lgsm/config-default/config-lgsm/csczserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/csczserver/_default.cfg
@@ -67,6 +67,12 @@ ntfypassword=""
ntfypriority=""
ntfytags=""
+# Matrix Alerts | https://docs.linuxgsm.com/alerts/matrix
+matrixalert="off"
+matrixhomeserver="matrix.org"
+matrixtoken="accesstoken"
+matrixroom=""
+
# Pushbullet Alerts | https://docs.linuxgsm.com/alerts/pushbullet
pushbulletalert="off"
pushbullettoken="accesstoken"
@@ -96,6 +102,10 @@ telegramthreadid=""
telegramsilentnotification="false"
curlcustomstring=""
+## Stop | https://docs.linuxgsm.com/commands/start-stop-restart
+stoponlyifnoplayers="off"
+stoponlyifnoplayersallcommands="on"
+
## Updating | https://docs.linuxgsm.com/commands/update
updateonstart="off"
diff --git a/lgsm/config-default/config-lgsm/csgoserver/_default.cfg b/lgsm/config-default/config-lgsm/csgoserver/_default.cfg
index 6ae89331f..a5887c0b0 100644
--- a/lgsm/config-default/config-lgsm/csgoserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/csgoserver/_default.cfg
@@ -104,6 +104,12 @@ ntfypassword=""
ntfypriority=""
ntfytags=""
+# Matrix Alerts | https://docs.linuxgsm.com/alerts/matrix
+matrixalert="off"
+matrixhomeserver="matrix.org"
+matrixtoken="accesstoken"
+matrixroom=""
+
# Pushbullet Alerts | https://docs.linuxgsm.com/alerts/pushbullet
pushbulletalert="off"
pushbullettoken="accesstoken"
@@ -133,6 +139,10 @@ telegramthreadid=""
telegramsilentnotification="false"
curlcustomstring=""
+## Stop | https://docs.linuxgsm.com/commands/start-stop-restart
+stoponlyifnoplayers="off"
+stoponlyifnoplayersallcommands="on"
+
## Updating | https://docs.linuxgsm.com/commands/update
updateonstart="off"
diff --git a/lgsm/config-default/config-lgsm/csserver/_default.cfg b/lgsm/config-default/config-lgsm/csserver/_default.cfg
index 2ca833c87..4e598cd16 100644
--- a/lgsm/config-default/config-lgsm/csserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/csserver/_default.cfg
@@ -67,6 +67,12 @@ ntfypassword=""
ntfypriority=""
ntfytags=""
+# Matrix Alerts | https://docs.linuxgsm.com/alerts/matrix
+matrixalert="off"
+matrixhomeserver="matrix.org"
+matrixtoken="accesstoken"
+matrixroom=""
+
# Pushbullet Alerts | https://docs.linuxgsm.com/alerts/pushbullet
pushbulletalert="off"
pushbullettoken="accesstoken"
@@ -96,6 +102,10 @@ telegramthreadid=""
telegramsilentnotification="false"
curlcustomstring=""
+## Stop | https://docs.linuxgsm.com/commands/start-stop-restart
+stoponlyifnoplayers="off"
+stoponlyifnoplayersallcommands="on"
+
## Updating | https://docs.linuxgsm.com/commands/update
updateonstart="off"
diff --git a/lgsm/config-default/config-lgsm/cssserver/_default.cfg b/lgsm/config-default/config-lgsm/cssserver/_default.cfg
index a396678ff..ce79d3147 100644
--- a/lgsm/config-default/config-lgsm/cssserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/cssserver/_default.cfg
@@ -73,6 +73,12 @@ ntfypassword=""
ntfypriority=""
ntfytags=""
+# Matrix Alerts | https://docs.linuxgsm.com/alerts/matrix
+matrixalert="off"
+matrixhomeserver="matrix.org"
+matrixtoken="accesstoken"
+matrixroom=""
+
# Pushbullet Alerts | https://docs.linuxgsm.com/alerts/pushbullet
pushbulletalert="off"
pushbullettoken="accesstoken"
@@ -102,6 +108,10 @@ telegramthreadid=""
telegramsilentnotification="false"
curlcustomstring=""
+## Stop | https://docs.linuxgsm.com/commands/start-stop-restart
+stoponlyifnoplayers="off"
+stoponlyifnoplayersallcommands="on"
+
## Updating | https://docs.linuxgsm.com/commands/update
updateonstart="off"
diff --git a/lgsm/config-default/config-lgsm/ctserver/_default.cfg b/lgsm/config-default/config-lgsm/ctserver/_default.cfg
index c90d6125c..e32f65fa4 100644
--- a/lgsm/config-default/config-lgsm/ctserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/ctserver/_default.cfg
@@ -60,6 +60,12 @@ ntfypassword=""
ntfypriority=""
ntfytags=""
+# Matrix Alerts | https://docs.linuxgsm.com/alerts/matrix
+matrixalert="off"
+matrixhomeserver="matrix.org"
+matrixtoken="accesstoken"
+matrixroom=""
+
# Pushbullet Alerts | https://docs.linuxgsm.com/alerts/pushbullet
pushbulletalert="off"
pushbullettoken="accesstoken"
@@ -89,6 +95,10 @@ telegramthreadid=""
telegramsilentnotification="false"
curlcustomstring=""
+## Stop | https://docs.linuxgsm.com/commands/start-stop-restart
+stoponlyifnoplayers="off"
+stoponlyifnoplayersallcommands="on"
+
## Updating | https://docs.linuxgsm.com/commands/update
updateonstart="off"
diff --git a/lgsm/config-default/config-lgsm/dabserver/_default.cfg b/lgsm/config-default/config-lgsm/dabserver/_default.cfg
index 28c4478fd..575c163cf 100644
--- a/lgsm/config-default/config-lgsm/dabserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/dabserver/_default.cfg
@@ -68,6 +68,12 @@ ntfypassword=""
ntfypriority=""
ntfytags=""
+# Matrix Alerts | https://docs.linuxgsm.com/alerts/matrix
+matrixalert="off"
+matrixhomeserver="matrix.org"
+matrixtoken="accesstoken"
+matrixroom=""
+
# Pushbullet Alerts | https://docs.linuxgsm.com/alerts/pushbullet
pushbulletalert="off"
pushbullettoken="accesstoken"
@@ -97,6 +103,10 @@ telegramthreadid=""
telegramsilentnotification="false"
curlcustomstring=""
+## Stop | https://docs.linuxgsm.com/commands/start-stop-restart
+stoponlyifnoplayers="off"
+stoponlyifnoplayersallcommands="on"
+
## Updating | https://docs.linuxgsm.com/commands/update
updateonstart="off"
diff --git a/lgsm/config-default/config-lgsm/dayzserver/_default.cfg b/lgsm/config-default/config-lgsm/dayzserver/_default.cfg
index 7e84df534..e55b0f3fd 100644
--- a/lgsm/config-default/config-lgsm/dayzserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/dayzserver/_default.cfg
@@ -83,6 +83,12 @@ ntfypassword=""
ntfypriority=""
ntfytags=""
+# Matrix Alerts | https://docs.linuxgsm.com/alerts/matrix
+matrixalert="off"
+matrixhomeserver="matrix.org"
+matrixtoken="accesstoken"
+matrixroom=""
+
# Pushbullet Alerts | https://docs.linuxgsm.com/alerts/pushbullet
pushbulletalert="off"
pushbullettoken="accesstoken"
@@ -112,6 +118,10 @@ telegramthreadid=""
telegramsilentnotification="false"
curlcustomstring=""
+## Stop | https://docs.linuxgsm.com/commands/start-stop-restart
+stoponlyifnoplayers="off"
+stoponlyifnoplayersallcommands="on"
+
## Updating | https://docs.linuxgsm.com/commands/update
updateonstart="off"
diff --git a/lgsm/config-default/config-lgsm/dmcserver/_default.cfg b/lgsm/config-default/config-lgsm/dmcserver/_default.cfg
index 9d40dd637..b7f80ade0 100644
--- a/lgsm/config-default/config-lgsm/dmcserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/dmcserver/_default.cfg
@@ -67,6 +67,12 @@ ntfypassword=""
ntfypriority=""
ntfytags=""
+# Matrix Alerts | https://docs.linuxgsm.com/alerts/matrix
+matrixalert="off"
+matrixhomeserver="matrix.org"
+matrixtoken="accesstoken"
+matrixroom=""
+
# Pushbullet Alerts | https://docs.linuxgsm.com/alerts/pushbullet
pushbulletalert="off"
pushbullettoken="accesstoken"
@@ -96,6 +102,10 @@ telegramthreadid=""
telegramsilentnotification="false"
curlcustomstring=""
+## Stop | https://docs.linuxgsm.com/commands/start-stop-restart
+stoponlyifnoplayers="off"
+stoponlyifnoplayersallcommands="on"
+
## Updating | https://docs.linuxgsm.com/commands/update
updateonstart="off"
diff --git a/lgsm/config-default/config-lgsm/dodrserver/_default.cfg b/lgsm/config-default/config-lgsm/dodrserver/_default.cfg
index 3c16fcdd5..947ee2dab 100644
--- a/lgsm/config-default/config-lgsm/dodrserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/dodrserver/_default.cfg
@@ -66,6 +66,12 @@ ntfypassword=""
ntfypriority=""
ntfytags=""
+# Matrix Alerts | https://docs.linuxgsm.com/alerts/matrix
+matrixalert="off"
+matrixhomeserver="matrix.org"
+matrixtoken="accesstoken"
+matrixroom=""
+
# Pushbullet Alerts | https://docs.linuxgsm.com/alerts/pushbullet
pushbulletalert="off"
pushbullettoken="accesstoken"
@@ -95,6 +101,10 @@ telegramthreadid=""
telegramsilentnotification="false"
curlcustomstring=""
+## Stop | https://docs.linuxgsm.com/commands/start-stop-restart
+stoponlyifnoplayers="off"
+stoponlyifnoplayersallcommands="on"
+
## Updating | https://docs.linuxgsm.com/commands/update
updateonstart="off"
diff --git a/lgsm/config-default/config-lgsm/dodserver/_default.cfg b/lgsm/config-default/config-lgsm/dodserver/_default.cfg
index 8f3845911..6d1f1e28e 100644
--- a/lgsm/config-default/config-lgsm/dodserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/dodserver/_default.cfg
@@ -67,6 +67,12 @@ ntfypassword=""
ntfypriority=""
ntfytags=""
+# Matrix Alerts | https://docs.linuxgsm.com/alerts/matrix
+matrixalert="off"
+matrixhomeserver="matrix.org"
+matrixtoken="accesstoken"
+matrixroom=""
+
# Pushbullet Alerts | https://docs.linuxgsm.com/alerts/pushbullet
pushbulletalert="off"
pushbullettoken="accesstoken"
@@ -96,6 +102,10 @@ telegramthreadid=""
telegramsilentnotification="false"
curlcustomstring=""
+## Stop | https://docs.linuxgsm.com/commands/start-stop-restart
+stoponlyifnoplayers="off"
+stoponlyifnoplayersallcommands="on"
+
## Updating | https://docs.linuxgsm.com/commands/update
updateonstart="off"
diff --git a/lgsm/config-default/config-lgsm/dodsserver/_default.cfg b/lgsm/config-default/config-lgsm/dodsserver/_default.cfg
index 4f113a64f..dc1e162e1 100644
--- a/lgsm/config-default/config-lgsm/dodsserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/dodsserver/_default.cfg
@@ -68,6 +68,12 @@ ntfypassword=""
ntfypriority=""
ntfytags=""
+# Matrix Alerts | https://docs.linuxgsm.com/alerts/matrix
+matrixalert="off"
+matrixhomeserver="matrix.org"
+matrixtoken="accesstoken"
+matrixroom=""
+
# Pushbullet Alerts | https://docs.linuxgsm.com/alerts/pushbullet
pushbulletalert="off"
pushbullettoken="accesstoken"
@@ -97,6 +103,10 @@ telegramthreadid=""
telegramsilentnotification="false"
curlcustomstring=""
+## Stop | https://docs.linuxgsm.com/commands/start-stop-restart
+stoponlyifnoplayers="off"
+stoponlyifnoplayersallcommands="on"
+
## Updating | https://docs.linuxgsm.com/commands/update
updateonstart="off"
diff --git a/lgsm/config-default/config-lgsm/doiserver/_default.cfg b/lgsm/config-default/config-lgsm/doiserver/_default.cfg
index 65ee56f1e..58b31c206 100644
--- a/lgsm/config-default/config-lgsm/doiserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/doiserver/_default.cfg
@@ -69,6 +69,12 @@ ntfypassword=""
ntfypriority=""
ntfytags=""
+# Matrix Alerts | https://docs.linuxgsm.com/alerts/matrix
+matrixalert="off"
+matrixhomeserver="matrix.org"
+matrixtoken="accesstoken"
+matrixroom=""
+
# Pushbullet Alerts | https://docs.linuxgsm.com/alerts/pushbullet
pushbulletalert="off"
pushbullettoken="accesstoken"
@@ -98,6 +104,10 @@ telegramthreadid=""
telegramsilentnotification="false"
curlcustomstring=""
+## Stop | https://docs.linuxgsm.com/commands/start-stop-restart
+stoponlyifnoplayers="off"
+stoponlyifnoplayersallcommands="on"
+
## Updating | https://docs.linuxgsm.com/commands/update
updateonstart="off"
diff --git a/lgsm/config-default/config-lgsm/dstserver/_default.cfg b/lgsm/config-default/config-lgsm/dstserver/_default.cfg
index 7c8f3fa30..489f748c7 100644
--- a/lgsm/config-default/config-lgsm/dstserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/dstserver/_default.cfg
@@ -70,6 +70,12 @@ ntfypassword=""
ntfypriority=""
ntfytags=""
+# Matrix Alerts | https://docs.linuxgsm.com/alerts/matrix
+matrixalert="off"
+matrixhomeserver="matrix.org"
+matrixtoken="accesstoken"
+matrixroom=""
+
# Pushbullet Alerts | https://docs.linuxgsm.com/alerts/pushbullet
pushbulletalert="off"
pushbullettoken="accesstoken"
@@ -99,6 +105,10 @@ telegramthreadid=""
telegramsilentnotification="false"
curlcustomstring=""
+## Stop | https://docs.linuxgsm.com/commands/start-stop-restart
+stoponlyifnoplayers="off"
+stoponlyifnoplayersallcommands="on"
+
## Updating | https://docs.linuxgsm.com/commands/update
updateonstart="off"
diff --git a/lgsm/config-default/config-lgsm/dysserver/_default.cfg b/lgsm/config-default/config-lgsm/dysserver/_default.cfg
index b65d0ba47..0c7fe66e3 100644
--- a/lgsm/config-default/config-lgsm/dysserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/dysserver/_default.cfg
@@ -73,6 +73,12 @@ ntfypassword=""
ntfypriority=""
ntfytags=""
+# Matrix Alerts | https://docs.linuxgsm.com/alerts/matrix
+matrixalert="off"
+matrixhomeserver="matrix.org"
+matrixtoken="accesstoken"
+matrixroom=""
+
# Pushbullet Alerts | https://docs.linuxgsm.com/alerts/pushbullet
pushbulletalert="off"
pushbullettoken="accesstoken"
@@ -102,6 +108,10 @@ telegramthreadid=""
telegramsilentnotification="false"
curlcustomstring=""
+## Stop | https://docs.linuxgsm.com/commands/start-stop-restart
+stoponlyifnoplayers="off"
+stoponlyifnoplayersallcommands="on"
+
## Updating | https://docs.linuxgsm.com/commands/update
updateonstart="off"
diff --git a/lgsm/config-default/config-lgsm/ecoserver/_default.cfg b/lgsm/config-default/config-lgsm/ecoserver/_default.cfg
index c68902ffc..af9bde459 100644
--- a/lgsm/config-default/config-lgsm/ecoserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/ecoserver/_default.cfg
@@ -63,6 +63,12 @@ ntfypassword=""
ntfypriority=""
ntfytags=""
+# Matrix Alerts | https://docs.linuxgsm.com/alerts/matrix
+matrixalert="off"
+matrixhomeserver="matrix.org"
+matrixtoken="accesstoken"
+matrixroom=""
+
# Pushbullet Alerts | https://docs.linuxgsm.com/alerts/pushbullet
pushbulletalert="off"
pushbullettoken="accesstoken"
@@ -92,6 +98,10 @@ telegramthreadid=""
telegramsilentnotification="false"
curlcustomstring=""
+## Stop | https://docs.linuxgsm.com/commands/start-stop-restart
+stoponlyifnoplayers="off"
+stoponlyifnoplayersallcommands="on"
+
## Updating | https://docs.linuxgsm.com/commands/update
updateonstart="off"
diff --git a/lgsm/config-default/config-lgsm/emserver/_default.cfg b/lgsm/config-default/config-lgsm/emserver/_default.cfg
index e8f537aab..fe02f4434 100644
--- a/lgsm/config-default/config-lgsm/emserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/emserver/_default.cfg
@@ -73,6 +73,12 @@ ntfypassword=""
ntfypriority=""
ntfytags=""
+# Matrix Alerts | https://docs.linuxgsm.com/alerts/matrix
+matrixalert="off"
+matrixhomeserver="matrix.org"
+matrixtoken="accesstoken"
+matrixroom=""
+
# Pushbullet Alerts | https://docs.linuxgsm.com/alerts/pushbullet
pushbulletalert="off"
pushbullettoken="accesstoken"
@@ -102,6 +108,10 @@ telegramthreadid=""
telegramsilentnotification="false"
curlcustomstring=""
+## Stop | https://docs.linuxgsm.com/commands/start-stop-restart
+stoponlyifnoplayers="off"
+stoponlyifnoplayersallcommands="on"
+
## Updating | https://docs.linuxgsm.com/commands/update
updateonstart="off"
diff --git a/lgsm/config-default/config-lgsm/etlserver/_default.cfg b/lgsm/config-default/config-lgsm/etlserver/_default.cfg
index 9679a8f44..6dd1ccb1e 100644
--- a/lgsm/config-default/config-lgsm/etlserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/etlserver/_default.cfg
@@ -60,6 +60,12 @@ ntfypassword=""
ntfypriority=""
ntfytags=""
+# Matrix Alerts | https://docs.linuxgsm.com/alerts/matrix
+matrixalert="off"
+matrixhomeserver="matrix.org"
+matrixtoken="accesstoken"
+matrixroom=""
+
# Pushbullet Alerts | https://docs.linuxgsm.com/alerts/pushbullet
pushbulletalert="off"
pushbullettoken="accesstoken"
@@ -89,6 +95,10 @@ telegramthreadid=""
telegramsilentnotification="false"
curlcustomstring=""
+## Stop | https://docs.linuxgsm.com/commands/start-stop-restart
+stoponlyifnoplayers="off"
+stoponlyifnoplayersallcommands="on"
+
## Backup | https://docs.linuxgsm.com/commands/backup
maxbackups="4"
maxbackupdays="30"
diff --git a/lgsm/config-default/config-lgsm/ets2server/_default.cfg b/lgsm/config-default/config-lgsm/ets2server/_default.cfg
index 116de6b6d..4b8095c87 100644
--- a/lgsm/config-default/config-lgsm/ets2server/_default.cfg
+++ b/lgsm/config-default/config-lgsm/ets2server/_default.cfg
@@ -60,6 +60,12 @@ ntfypassword=""
ntfypriority=""
ntfytags=""
+# Matrix Alerts | https://docs.linuxgsm.com/alerts/matrix
+matrixalert="off"
+matrixhomeserver="matrix.org"
+matrixtoken="accesstoken"
+matrixroom=""
+
# Pushbullet Alerts | https://docs.linuxgsm.com/alerts/pushbullet
pushbulletalert="off"
pushbullettoken="accesstoken"
@@ -89,6 +95,10 @@ telegramthreadid=""
telegramsilentnotification="false"
curlcustomstring=""
+## Stop | https://docs.linuxgsm.com/commands/start-stop-restart
+stoponlyifnoplayers="off"
+stoponlyifnoplayersallcommands="on"
+
## Updating | https://docs.linuxgsm.com/commands/update
updateonstart="off"
diff --git a/lgsm/config-default/config-lgsm/fctrserver/_default.cfg b/lgsm/config-default/config-lgsm/fctrserver/_default.cfg
index 6eeeda637..ab885b5ea 100644
--- a/lgsm/config-default/config-lgsm/fctrserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/fctrserver/_default.cfg
@@ -67,6 +67,12 @@ ntfypassword=""
ntfypriority=""
ntfytags=""
+# Matrix Alerts | https://docs.linuxgsm.com/alerts/matrix
+matrixalert="off"
+matrixhomeserver="matrix.org"
+matrixtoken="accesstoken"
+matrixroom=""
+
# Pushbullet Alerts | https://docs.linuxgsm.com/alerts/pushbullet
pushbulletalert="off"
pushbullettoken="accesstoken"
@@ -96,6 +102,10 @@ telegramthreadid=""
telegramsilentnotification="false"
curlcustomstring=""
+## Stop | https://docs.linuxgsm.com/commands/start-stop-restart
+stoponlyifnoplayers="off"
+stoponlyifnoplayersallcommands="on"
+
## Updating | https://docs.linuxgsm.com/commands/update
updateonstart="off"
diff --git a/lgsm/config-default/config-lgsm/fofserver/_default.cfg b/lgsm/config-default/config-lgsm/fofserver/_default.cfg
index 857c596a2..926b95b05 100644
--- a/lgsm/config-default/config-lgsm/fofserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/fofserver/_default.cfg
@@ -68,6 +68,12 @@ ntfypassword=""
ntfypriority=""
ntfytags=""
+# Matrix Alerts | https://docs.linuxgsm.com/alerts/matrix
+matrixalert="off"
+matrixhomeserver="matrix.org"
+matrixtoken="accesstoken"
+matrixroom=""
+
# Pushbullet Alerts | https://docs.linuxgsm.com/alerts/pushbullet
pushbulletalert="off"
pushbullettoken="accesstoken"
@@ -97,6 +103,10 @@ telegramthreadid=""
telegramsilentnotification="false"
curlcustomstring=""
+## Stop | https://docs.linuxgsm.com/commands/start-stop-restart
+stoponlyifnoplayers="off"
+stoponlyifnoplayersallcommands="on"
+
## Updating | https://docs.linuxgsm.com/commands/update
updateonstart="off"
diff --git a/lgsm/config-default/config-lgsm/gmodserver/_default.cfg b/lgsm/config-default/config-lgsm/gmodserver/_default.cfg
index 852094b7c..ca2ad6be7 100644
--- a/lgsm/config-default/config-lgsm/gmodserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/gmodserver/_default.cfg
@@ -78,6 +78,12 @@ ntfypassword=""
ntfypriority=""
ntfytags=""
+# Matrix Alerts | https://docs.linuxgsm.com/alerts/matrix
+matrixalert="off"
+matrixhomeserver="matrix.org"
+matrixtoken="accesstoken"
+matrixroom=""
+
# Pushbullet Alerts | https://docs.linuxgsm.com/alerts/pushbullet
pushbulletalert="off"
pushbullettoken="accesstoken"
@@ -107,6 +113,10 @@ telegramthreadid=""
telegramsilentnotification="false"
curlcustomstring=""
+## Stop | https://docs.linuxgsm.com/commands/start-stop-restart
+stoponlyifnoplayers="off"
+stoponlyifnoplayersallcommands="on"
+
## Updating | https://docs.linuxgsm.com/commands/update
updateonstart="off"
diff --git a/lgsm/config-default/config-lgsm/hcuserver/_default.cfg b/lgsm/config-default/config-lgsm/hcuserver/_default.cfg
index 2340506a9..c0fdcc630 100644
--- a/lgsm/config-default/config-lgsm/hcuserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/hcuserver/_default.cfg
@@ -75,6 +75,12 @@ ntfypassword=""
ntfypriority=""
ntfytags=""
+# Matrix Alerts | https://docs.linuxgsm.com/alerts/matrix
+matrixalert="off"
+matrixhomeserver="matrix.org"
+matrixtoken="accesstoken"
+matrixroom=""
+
# Pushbullet Alerts | https://docs.linuxgsm.com/alerts/pushbullet
pushbulletalert="off"
pushbullettoken="accesstoken"
@@ -104,6 +110,10 @@ telegramthreadid=""
telegramsilentnotification="false"
curlcustomstring=""
+## Stop | https://docs.linuxgsm.com/commands/start-stop-restart
+stoponlyifnoplayers="off"
+stoponlyifnoplayersallcommands="on"
+
## Updating | https://docs.linuxgsm.com/commands/update
updateonstart="off"
diff --git a/lgsm/config-default/config-lgsm/hl2dmserver/_default.cfg b/lgsm/config-default/config-lgsm/hl2dmserver/_default.cfg
index 55f1c3918..2e9afaec1 100644
--- a/lgsm/config-default/config-lgsm/hl2dmserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/hl2dmserver/_default.cfg
@@ -70,6 +70,12 @@ ntfypassword=""
ntfypriority=""
ntfytags=""
+# Matrix Alerts | https://docs.linuxgsm.com/alerts/matrix
+matrixalert="off"
+matrixhomeserver="matrix.org"
+matrixtoken="accesstoken"
+matrixroom=""
+
# Pushbullet Alerts | https://docs.linuxgsm.com/alerts/pushbullet
pushbulletalert="off"
pushbullettoken="accesstoken"
@@ -99,6 +105,10 @@ telegramthreadid=""
telegramsilentnotification="false"
curlcustomstring=""
+## Stop | https://docs.linuxgsm.com/commands/start-stop-restart
+stoponlyifnoplayers="off"
+stoponlyifnoplayersallcommands="on"
+
## Updating | https://docs.linuxgsm.com/commands/update
updateonstart="off"
diff --git a/lgsm/config-default/config-lgsm/hldmserver/_default.cfg b/lgsm/config-default/config-lgsm/hldmserver/_default.cfg
index 84d7ca030..697341250 100644
--- a/lgsm/config-default/config-lgsm/hldmserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/hldmserver/_default.cfg
@@ -67,6 +67,12 @@ ntfypassword=""
ntfypriority=""
ntfytags=""
+# Matrix Alerts | https://docs.linuxgsm.com/alerts/matrix
+matrixalert="off"
+matrixhomeserver="matrix.org"
+matrixtoken="accesstoken"
+matrixroom=""
+
# Pushbullet Alerts | https://docs.linuxgsm.com/alerts/pushbullet
pushbulletalert="off"
pushbullettoken="accesstoken"
@@ -96,6 +102,10 @@ telegramthreadid=""
telegramsilentnotification="false"
curlcustomstring=""
+## Stop | https://docs.linuxgsm.com/commands/start-stop-restart
+stoponlyifnoplayers="off"
+stoponlyifnoplayersallcommands="on"
+
## Updating | https://docs.linuxgsm.com/commands/update
updateonstart="off"
diff --git a/lgsm/config-default/config-lgsm/hldmsserver/_default.cfg b/lgsm/config-default/config-lgsm/hldmsserver/_default.cfg
index c1de9618d..6f2d90fb4 100644
--- a/lgsm/config-default/config-lgsm/hldmsserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/hldmsserver/_default.cfg
@@ -68,6 +68,12 @@ ntfypassword=""
ntfypriority=""
ntfytags=""
+# Matrix Alerts | https://docs.linuxgsm.com/alerts/matrix
+matrixalert="off"
+matrixhomeserver="matrix.org"
+matrixtoken="accesstoken"
+matrixroom=""
+
# Pushbullet Alerts | https://docs.linuxgsm.com/alerts/pushbullet
pushbulletalert="off"
pushbullettoken="accesstoken"
@@ -97,6 +103,10 @@ telegramthreadid=""
telegramsilentnotification="false"
curlcustomstring=""
+## Stop | https://docs.linuxgsm.com/commands/start-stop-restart
+stoponlyifnoplayers="off"
+stoponlyifnoplayersallcommands="on"
+
## Updating | https://docs.linuxgsm.com/commands/update
updateonstart="off"
diff --git a/lgsm/config-default/config-lgsm/hwserver/_default.cfg b/lgsm/config-default/config-lgsm/hwserver/_default.cfg
index 70c08c204..c0c4f0eaa 100644
--- a/lgsm/config-default/config-lgsm/hwserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/hwserver/_default.cfg
@@ -78,6 +78,12 @@ ntfypassword=""
ntfypriority=""
ntfytags=""
+# Matrix Alerts | https://docs.linuxgsm.com/alerts/matrix
+matrixalert="off"
+matrixhomeserver="matrix.org"
+matrixtoken="accesstoken"
+matrixroom=""
+
# Pushbullet Alerts | https://docs.linuxgsm.com/alerts/pushbullet
pushbulletalert="off"
pushbullettoken="accesstoken"
@@ -107,6 +113,10 @@ telegramthreadid=""
telegramsilentnotification="false"
curlcustomstring=""
+## Stop | https://docs.linuxgsm.com/commands/start-stop-restart
+stoponlyifnoplayers="off"
+stoponlyifnoplayersallcommands="on"
+
## Updating | https://docs.linuxgsm.com/commands/update
updateonstart="off"
diff --git a/lgsm/config-default/config-lgsm/hzserver/_default.cfg b/lgsm/config-default/config-lgsm/hzserver/_default.cfg
index d2e63e692..32fb9d6cd 100644
--- a/lgsm/config-default/config-lgsm/hzserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/hzserver/_default.cfg
@@ -65,6 +65,12 @@ ntfypassword=""
ntfypriority=""
ntfytags=""
+# Matrix Alerts | https://docs.linuxgsm.com/alerts/matrix
+matrixalert="off"
+matrixhomeserver="matrix.org"
+matrixtoken="accesstoken"
+matrixroom=""
+
# Pushbullet Alerts | https://docs.linuxgsm.com/alerts/pushbullet
pushbulletalert="off"
pushbullettoken="accesstoken"
@@ -92,6 +98,10 @@ telegramtoken="accesstoken"
telegramchatid=""
curlcustomstring=""
+## Stop | https://docs.linuxgsm.com/commands/start-stop-restart
+stoponlyifnoplayers="off"
+stoponlyifnoplayersallcommands="on"
+
## Updating | https://docs.linuxgsm.com/commands/update
updateonstart="off"
diff --git a/lgsm/config-default/config-lgsm/insserver/_default.cfg b/lgsm/config-default/config-lgsm/insserver/_default.cfg
index 74760c2e0..afa7f7f27 100644
--- a/lgsm/config-default/config-lgsm/insserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/insserver/_default.cfg
@@ -74,6 +74,12 @@ ntfypassword=""
ntfypriority=""
ntfytags=""
+# Matrix Alerts | https://docs.linuxgsm.com/alerts/matrix
+matrixalert="off"
+matrixhomeserver="matrix.org"
+matrixtoken="accesstoken"
+matrixroom=""
+
# Pushbullet Alerts | https://docs.linuxgsm.com/alerts/pushbullet
pushbulletalert="off"
pushbullettoken="accesstoken"
@@ -103,6 +109,10 @@ telegramthreadid=""
telegramsilentnotification="false"
curlcustomstring=""
+## Stop | https://docs.linuxgsm.com/commands/start-stop-restart
+stoponlyifnoplayers="off"
+stoponlyifnoplayersallcommands="on"
+
## Updating | https://docs.linuxgsm.com/commands/update
updateonstart="off"
diff --git a/lgsm/config-default/config-lgsm/inssserver/_default.cfg b/lgsm/config-default/config-lgsm/inssserver/_default.cfg
index 60f138093..27974e8a0 100644
--- a/lgsm/config-default/config-lgsm/inssserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/inssserver/_default.cfg
@@ -77,6 +77,12 @@ ntfypassword=""
ntfypriority=""
ntfytags=""
+# Matrix Alerts | https://docs.linuxgsm.com/alerts/matrix
+matrixalert="off"
+matrixhomeserver="matrix.org"
+matrixtoken="accesstoken"
+matrixroom=""
+
# Pushbullet Alerts | https://docs.linuxgsm.com/alerts/pushbullet
pushbulletalert="off"
pushbullettoken="accesstoken"
@@ -106,6 +112,10 @@ telegramthreadid=""
telegramsilentnotification="false"
curlcustomstring=""
+## Stop | https://docs.linuxgsm.com/commands/start-stop-restart
+stoponlyifnoplayers="off"
+stoponlyifnoplayersallcommands="on"
+
## Updating | https://docs.linuxgsm.com/commands/update
updateonstart="off"
diff --git a/lgsm/config-default/config-lgsm/iosserver/_default.cfg b/lgsm/config-default/config-lgsm/iosserver/_default.cfg
index 30c41d1fa..928666984 100644
--- a/lgsm/config-default/config-lgsm/iosserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/iosserver/_default.cfg
@@ -68,6 +68,12 @@ ntfypassword=""
ntfypriority=""
ntfytags=""
+# Matrix Alerts | https://docs.linuxgsm.com/alerts/matrix
+matrixalert="off"
+matrixhomeserver="matrix.org"
+matrixtoken="accesstoken"
+matrixroom=""
+
# Pushbullet Alerts | https://docs.linuxgsm.com/alerts/pushbullet
pushbulletalert="off"
pushbullettoken="accesstoken"
@@ -97,6 +103,10 @@ telegramthreadid=""
telegramsilentnotification="false"
curlcustomstring=""
+## Stop | https://docs.linuxgsm.com/commands/start-stop-restart
+stoponlyifnoplayers="off"
+stoponlyifnoplayersallcommands="on"
+
## Updating | https://docs.linuxgsm.com/commands/update
updateonstart="off"
diff --git a/lgsm/config-default/config-lgsm/jbep3server/_default.cfg b/lgsm/config-default/config-lgsm/jbep3server/_default.cfg
new file mode 100644
index 000000000..2036d3522
--- /dev/null
+++ b/lgsm/config-default/config-lgsm/jbep3server/_default.cfg
@@ -0,0 +1,198 @@
+##################################
+######## 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 ####
+
+## Predefined Parameters | https://docs.linuxgsm.com/configuration/start-parameters
+ip="0.0.0.0"
+port="27015"
+clientport="27005"
+sourcetvport="27020"
+defaultmap="crossfire"
+maxplayers="24"
+
+## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
+startparameters="-game jbep3 -strictportbind -ip ${ip} -port ${port} +clientport ${clientport} +tv_port ${sourcetvport} +map ${defaultmap} +servercfgfile ${servercfg} -maxplayers ${maxplayers}"
+
+#### 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"
+
+# Alert on Start/Stop/Restart
+statusalert="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=""
+
+# Gotify Alerts | https://docs.linuxgsm.com/alerts/gotify
+gotifyalert="off"
+gotifytoken="token"
+gotifywebhook="webhook"
+
+# IFTTT Alerts | https://docs.linuxgsm.com/alerts/ifttt
+iftttalert="off"
+ifttttoken="accesstoken"
+iftttevent="linuxgsm_alert"
+
+# ntfy Alerts | https://docs.linuxgsm.com/alerts/ntfy
+ntfyalert="off"
+ntfytopic="LinuxGSM"
+ntfyserver="https://ntfy.sh"
+ntfytoken=""
+ntfyusername=""
+ntfypassword=""
+ntfypriority=""
+ntfytags=""
+
+# 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"
+
+# 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 all".
+telegramapi="api.telegram.org"
+telegramalert="off"
+telegramtoken="accesstoken"
+telegramchatid=""
+telegramthreadid=""
+telegramsilentnotification="false"
+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"
+
+## SteamCMD Settings | https://docs.linuxgsm.com/steamcmd
+# Server appid
+appid="869800"
+steamcmdforcewindows="no"
+# SteamCMD Branch | https://docs.linuxgsm.com/steamcmd/branch
+branch=""
+betapassword=""
+# Master Server | https://docs.linuxgsm.com/steamcmd/steam-master-server
+steammaster="true"
+
+## 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="3"
+
+## Query mode
+# 1: session only
+# 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="Jabroni Brawl: Episode 3"
+engine="source"
+glibc="2.3.6"
+
+#### Directories ####
+# Edit with care
+
+## Game Server Directories
+systemdir="${serverfiles}/jbep3"
+executabledir="${serverfiles}"
+executable="./srcds_run.sh"
+servercfgdir="${systemdir}/cfg"
+servercfg="${selfname}.cfg"
+servercfgdefault="server.cfg"
+servercfgfullpath="${servercfgdir}/${servercfg}"
+
+## Backup Directory
+backupdir="${lgsmdir}/backup"
+
+## Logging Directories
+[ -n "${LGSM_LOGDIR}" ] && logdir="${LGSM_LOGDIR}" || 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"
+
+## Log Parameters
+logtimestamp="off"
+logtimestampformat="%Y-%m-%d %H:%M:%S"
diff --git a/lgsm/config-default/config-lgsm/jc2server/_default.cfg b/lgsm/config-default/config-lgsm/jc2server/_default.cfg
index fe3f28dff..afe6d4e83 100644
--- a/lgsm/config-default/config-lgsm/jc2server/_default.cfg
+++ b/lgsm/config-default/config-lgsm/jc2server/_default.cfg
@@ -60,6 +60,12 @@ ntfypassword=""
ntfypriority=""
ntfytags=""
+# Matrix Alerts | https://docs.linuxgsm.com/alerts/matrix
+matrixalert="off"
+matrixhomeserver="matrix.org"
+matrixtoken="accesstoken"
+matrixroom=""
+
# Pushbullet Alerts | https://docs.linuxgsm.com/alerts/pushbullet
pushbulletalert="off"
pushbullettoken="accesstoken"
@@ -89,6 +95,10 @@ telegramthreadid=""
telegramsilentnotification="false"
curlcustomstring=""
+## Stop | https://docs.linuxgsm.com/commands/start-stop-restart
+stoponlyifnoplayers="off"
+stoponlyifnoplayersallcommands="on"
+
## Updating | https://docs.linuxgsm.com/commands/update
updateonstart="off"
diff --git a/lgsm/config-default/config-lgsm/jc3server/_default.cfg b/lgsm/config-default/config-lgsm/jc3server/_default.cfg
index faa4f0a09..7d45d966e 100644
--- a/lgsm/config-default/config-lgsm/jc3server/_default.cfg
+++ b/lgsm/config-default/config-lgsm/jc3server/_default.cfg
@@ -60,6 +60,12 @@ ntfypassword=""
ntfypriority=""
ntfytags=""
+# Matrix Alerts | https://docs.linuxgsm.com/alerts/matrix
+matrixalert="off"
+matrixhomeserver="matrix.org"
+matrixtoken="accesstoken"
+matrixroom=""
+
# Pushbullet Alerts | https://docs.linuxgsm.com/alerts/pushbullet
pushbulletalert="off"
pushbullettoken="accesstoken"
@@ -89,6 +95,10 @@ telegramthreadid=""
telegramsilentnotification="false"
curlcustomstring=""
+## Stop | https://docs.linuxgsm.com/commands/start-stop-restart
+stoponlyifnoplayers="off"
+stoponlyifnoplayersallcommands="on"
+
## Updating | https://docs.linuxgsm.com/commands/update
updateonstart="off"
diff --git a/lgsm/config-default/config-lgsm/jk2server/_default.cfg b/lgsm/config-default/config-lgsm/jk2server/_default.cfg
index ef0a54ad8..1749c3dd5 100644
--- a/lgsm/config-default/config-lgsm/jk2server/_default.cfg
+++ b/lgsm/config-default/config-lgsm/jk2server/_default.cfg
@@ -69,6 +69,12 @@ ntfypassword=""
ntfypriority=""
ntfytags=""
+# Matrix Alerts | https://docs.linuxgsm.com/alerts/matrix
+matrixalert="off"
+matrixhomeserver="matrix.org"
+matrixtoken="accesstoken"
+matrixroom=""
+
# Pushbullet Alerts | https://docs.linuxgsm.com/alerts/pushbullet
pushbulletalert="off"
pushbullettoken="accesstoken"
@@ -98,6 +104,10 @@ telegramthreadid=""
telegramsilentnotification="false"
curlcustomstring=""
+## Stop | https://docs.linuxgsm.com/commands/start-stop-restart
+stoponlyifnoplayers="off"
+stoponlyifnoplayersallcommands="on"
+
## Updating | https://docs.linuxgsm.com/commands/update
updateonstart="off"
diff --git a/lgsm/config-default/config-lgsm/kf2server/_default.cfg b/lgsm/config-default/config-lgsm/kf2server/_default.cfg
index b6e39b1ed..832cc8cfd 100644
--- a/lgsm/config-default/config-lgsm/kf2server/_default.cfg
+++ b/lgsm/config-default/config-lgsm/kf2server/_default.cfg
@@ -66,6 +66,12 @@ ntfypassword=""
ntfypriority=""
ntfytags=""
+# Matrix Alerts | https://docs.linuxgsm.com/alerts/matrix
+matrixalert="off"
+matrixhomeserver="matrix.org"
+matrixtoken="accesstoken"
+matrixroom=""
+
# Pushbullet Alerts | https://docs.linuxgsm.com/alerts/pushbullet
pushbulletalert="off"
pushbullettoken="accesstoken"
@@ -95,6 +101,10 @@ telegramthreadid=""
telegramsilentnotification="false"
curlcustomstring=""
+## Stop | https://docs.linuxgsm.com/commands/start-stop-restart
+stoponlyifnoplayers="off"
+stoponlyifnoplayersallcommands="on"
+
## Updating | https://docs.linuxgsm.com/commands/update
updateonstart="off"
diff --git a/lgsm/config-default/config-lgsm/kfserver/_default.cfg b/lgsm/config-default/config-lgsm/kfserver/_default.cfg
index 77507e436..323142d69 100644
--- a/lgsm/config-default/config-lgsm/kfserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/kfserver/_default.cfg
@@ -72,6 +72,12 @@ ntfypassword=""
ntfypriority=""
ntfytags=""
+# Matrix Alerts | https://docs.linuxgsm.com/alerts/matrix
+matrixalert="off"
+matrixhomeserver="matrix.org"
+matrixtoken="accesstoken"
+matrixroom=""
+
# Pushbullet Alerts | https://docs.linuxgsm.com/alerts/pushbullet
pushbulletalert="off"
pushbullettoken="accesstoken"
@@ -101,6 +107,10 @@ telegramthreadid=""
telegramsilentnotification="false"
curlcustomstring=""
+## Stop | https://docs.linuxgsm.com/commands/start-stop-restart
+stoponlyifnoplayers="off"
+stoponlyifnoplayersallcommands="on"
+
## Updating | https://docs.linuxgsm.com/commands/update
updateonstart="off"
diff --git a/lgsm/config-default/config-lgsm/l4d2server/_default.cfg b/lgsm/config-default/config-lgsm/l4d2server/_default.cfg
index 5e6dcfc4e..3e1584706 100644
--- a/lgsm/config-default/config-lgsm/l4d2server/_default.cfg
+++ b/lgsm/config-default/config-lgsm/l4d2server/_default.cfg
@@ -67,6 +67,12 @@ ntfypassword=""
ntfypriority=""
ntfytags=""
+# Matrix Alerts | https://docs.linuxgsm.com/alerts/matrix
+matrixalert="off"
+matrixhomeserver="matrix.org"
+matrixtoken="accesstoken"
+matrixroom=""
+
# Pushbullet Alerts | https://docs.linuxgsm.com/alerts/pushbullet
pushbulletalert="off"
pushbullettoken="accesstoken"
@@ -96,6 +102,10 @@ telegramthreadid=""
telegramsilentnotification="false"
curlcustomstring=""
+## Stop | https://docs.linuxgsm.com/commands/start-stop-restart
+stoponlyifnoplayers="off"
+stoponlyifnoplayersallcommands="on"
+
## Updating | https://docs.linuxgsm.com/commands/update
updateonstart="off"
diff --git a/lgsm/config-default/config-lgsm/l4dserver/_default.cfg b/lgsm/config-default/config-lgsm/l4dserver/_default.cfg
index 4039df849..354bb9b19 100644
--- a/lgsm/config-default/config-lgsm/l4dserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/l4dserver/_default.cfg
@@ -67,6 +67,12 @@ ntfypassword=""
ntfypriority=""
ntfytags=""
+# Matrix Alerts | https://docs.linuxgsm.com/alerts/matrix
+matrixalert="off"
+matrixhomeserver="matrix.org"
+matrixtoken="accesstoken"
+matrixroom=""
+
# Pushbullet Alerts | https://docs.linuxgsm.com/alerts/pushbullet
pushbulletalert="off"
pushbullettoken="accesstoken"
@@ -96,6 +102,10 @@ telegramthreadid=""
telegramsilentnotification="false"
curlcustomstring=""
+## Stop | https://docs.linuxgsm.com/commands/start-stop-restart
+stoponlyifnoplayers="off"
+stoponlyifnoplayersallcommands="on"
+
## Updating | https://docs.linuxgsm.com/commands/update
updateonstart="off"
diff --git a/lgsm/config-default/config-lgsm/mcbserver/_default.cfg b/lgsm/config-default/config-lgsm/mcbserver/_default.cfg
index 49ac842a6..5714bd328 100644
--- a/lgsm/config-default/config-lgsm/mcbserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/mcbserver/_default.cfg
@@ -63,6 +63,12 @@ ntfypassword=""
ntfypriority=""
ntfytags=""
+# Matrix Alerts | https://docs.linuxgsm.com/alerts/matrix
+matrixalert="off"
+matrixhomeserver="matrix.org"
+matrixtoken="accesstoken"
+matrixroom=""
+
# Pushbullet Alerts | https://docs.linuxgsm.com/alerts/pushbullet
pushbulletalert="off"
pushbullettoken="accesstoken"
@@ -92,6 +98,10 @@ telegramthreadid=""
telegramsilentnotification="false"
curlcustomstring=""
+## Stop | https://docs.linuxgsm.com/commands/start-stop-restart
+stoponlyifnoplayers="off"
+stoponlyifnoplayersallcommands="on"
+
## Updating | https://docs.linuxgsm.com/commands/update
updateonstart="off"
diff --git a/lgsm/config-default/config-lgsm/mcserver/_default.cfg b/lgsm/config-default/config-lgsm/mcserver/_default.cfg
index 20ede8c01..1ae68b8e3 100644
--- a/lgsm/config-default/config-lgsm/mcserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/mcserver/_default.cfg
@@ -69,6 +69,12 @@ ntfypassword=""
ntfypriority=""
ntfytags=""
+# Matrix Alerts | https://docs.linuxgsm.com/alerts/matrix
+matrixalert="off"
+matrixhomeserver="matrix.org"
+matrixtoken="accesstoken"
+matrixroom=""
+
# Pushbullet Alerts | https://docs.linuxgsm.com/alerts/pushbullet
pushbulletalert="off"
pushbullettoken="accesstoken"
@@ -98,6 +104,10 @@ telegramthreadid=""
telegramsilentnotification="false"
curlcustomstring=""
+## Stop | https://docs.linuxgsm.com/commands/start-stop-restart
+stoponlyifnoplayers="off"
+stoponlyifnoplayersallcommands="on"
+
## Updating | https://docs.linuxgsm.com/commands/update
updateonstart="off"
diff --git a/lgsm/config-default/config-lgsm/mcvserver/_default.cfg b/lgsm/config-default/config-lgsm/mcvserver/_default.cfg
new file mode 100644
index 000000000..3d822892a
--- /dev/null
+++ b/lgsm/config-default/config-lgsm/mcvserver/_default.cfg
@@ -0,0 +1,189 @@
+##################################
+######## 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 ####
+
+game_type="0"
+game_mode="0"
+ip="0.0.0.0"
+port="27015"
+clientport="27005"
+sourcetvport="27020"
+steamport="26901"
+defaultmap="mcv_siege"
+maxplayers="32"
+tickrate="64"
+
+## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
+startparameters="-game vietnam -usercon -strictportbind -ip ${ip} -port ${port} +clientport ${clientport} +tv_port ${sourcetvport} -tickrate ${tickrate} +map ${defaultmap} +servercfgfile ${servercfg} -maxplayers_override ${maxplayers} +game_type ${game_type} +game_mode ${game_mode} -nobreakpad"
+
+#### 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"
+
+# Alert on Start/Stop/Restart
+statusalert="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=""
+
+# Gotify Alerts | https://docs.linuxgsm.com/alerts/gotify
+gotifyalert="off"
+gotifytoken="token"
+gotifywebhook="webhook"
+
+# IFTTT Alerts | https://docs.linuxgsm.com/alerts/ifttt
+iftttalert="off"
+ifttttoken="accesstoken"
+iftttevent="linuxgsm_alert"
+
+# 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"
+
+# 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".
+telegramapi="api.telegram.org"
+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"
+
+## SteamCMD Settings | https://docs.linuxgsm.com/steamcmd
+# Server appid
+appid="1136190"
+steamcmdforcewindows="no"
+# 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
+# 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="3"
+
+## Query mode
+# 1: session only
+# 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="Military Conflict: Vietnam"
+engine="source"
+glibc="2.15"
+
+#### Directories ####
+# Edit with care
+
+## Game Server Directories
+systemdir="${serverfiles}/vietnam"
+executabledir="${serverfiles}"
+executable="./srcds_run_x64"
+servercfgdir="${systemdir}/cfg"
+servercfg="${selfname}.cfg"
+servercfgdefault="server.cfg"
+servercfgfullpath="${servercfgdir}/${servercfg}"
+
+## Backup Directory
+backupdir="${lgsmdir}/backup"
+
+## Logging Directories
+[ -n "${LGSM_LOGDIR}" ] && logdir="${LGSM_LOGDIR}" || 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"
+
+## Log Parameters
+logtimestamp="off"
+logtimestampformat="%Y-%m-%d %H:%M:%S"
diff --git a/lgsm/config-default/config-lgsm/mhserver/_default.cfg b/lgsm/config-default/config-lgsm/mhserver/_default.cfg
index 4414621fa..a8a86b446 100644
--- a/lgsm/config-default/config-lgsm/mhserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/mhserver/_default.cfg
@@ -69,6 +69,12 @@ ntfypassword=""
ntfypriority=""
ntfytags=""
+# Matrix Alerts | https://docs.linuxgsm.com/alerts/matrix
+matrixalert="off"
+matrixhomeserver="matrix.org"
+matrixtoken="accesstoken"
+matrixroom=""
+
# Pushbullet Alerts | https://docs.linuxgsm.com/alerts/pushbullet
pushbulletalert="off"
pushbullettoken="accesstoken"
@@ -98,6 +104,10 @@ telegramthreadid=""
telegramsilentnotification="false"
curlcustomstring=""
+## Stop | https://docs.linuxgsm.com/commands/start-stop-restart
+stoponlyifnoplayers="off"
+stoponlyifnoplayersallcommands="on"
+
## Updating | https://docs.linuxgsm.com/commands/update
updateonstart="off"
diff --git a/lgsm/config-default/config-lgsm/mohaaserver/_default.cfg b/lgsm/config-default/config-lgsm/mohaaserver/_default.cfg
index 5784ceede..df8e01fe0 100644
--- a/lgsm/config-default/config-lgsm/mohaaserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/mohaaserver/_default.cfg
@@ -65,6 +65,12 @@ ntfypassword=""
ntfypriority=""
ntfytags=""
+# Matrix Alerts | https://docs.linuxgsm.com/alerts/matrix
+matrixalert="off"
+matrixhomeserver="matrix.org"
+matrixtoken="accesstoken"
+matrixroom=""
+
# Pushbullet Alerts | https://docs.linuxgsm.com/alerts/pushbullet
pushbulletalert="off"
pushbullettoken="accesstoken"
@@ -94,6 +100,10 @@ telegramthreadid=""
telegramsilentnotification="false"
curlcustomstring=""
+## Stop | https://docs.linuxgsm.com/commands/start-stop-restart
+stoponlyifnoplayers="off"
+stoponlyifnoplayersallcommands="on"
+
## Backup | https://docs.linuxgsm.com/commands/backup
maxbackups="4"
maxbackupdays="30"
diff --git a/lgsm/config-default/config-lgsm/momserver/_default.cfg b/lgsm/config-default/config-lgsm/momserver/_default.cfg
index 44eef19e7..ec376c361 100644
--- a/lgsm/config-default/config-lgsm/momserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/momserver/_default.cfg
@@ -66,6 +66,12 @@ ntfypassword=""
ntfypriority=""
ntfytags=""
+# Matrix Alerts | https://docs.linuxgsm.com/alerts/matrix
+matrixalert="off"
+matrixhomeserver="matrix.org"
+matrixtoken="accesstoken"
+matrixroom=""
+
# Pushbullet Alerts | https://docs.linuxgsm.com/alerts/pushbullet
pushbulletalert="off"
pushbullettoken="accesstoken"
@@ -95,6 +101,10 @@ telegramthreadid=""
telegramsilentnotification="false"
curlcustomstring=""
+## Stop | https://docs.linuxgsm.com/commands/start-stop-restart
+stoponlyifnoplayers="off"
+stoponlyifnoplayersallcommands="on"
+
## Updating | https://docs.linuxgsm.com/commands/update
updateonstart="off"
diff --git a/lgsm/config-default/config-lgsm/mtaserver/_default.cfg b/lgsm/config-default/config-lgsm/mtaserver/_default.cfg
index 7bba9fc10..835b4c4e0 100644
--- a/lgsm/config-default/config-lgsm/mtaserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/mtaserver/_default.cfg
@@ -63,6 +63,12 @@ ntfypassword=""
ntfypriority=""
ntfytags=""
+# Matrix Alerts | https://docs.linuxgsm.com/alerts/matrix
+matrixalert="off"
+matrixhomeserver="matrix.org"
+matrixtoken="accesstoken"
+matrixroom=""
+
# Pushbullet Alerts | https://docs.linuxgsm.com/alerts/pushbullet
pushbulletalert="off"
pushbullettoken="accesstoken"
@@ -92,6 +98,10 @@ telegramthreadid=""
telegramsilentnotification="false"
curlcustomstring=""
+## Stop | https://docs.linuxgsm.com/commands/start-stop-restart
+stoponlyifnoplayers="off"
+stoponlyifnoplayersallcommands="on"
+
## Backup | https://docs.linuxgsm.com/commands/backup
maxbackups="4"
maxbackupdays="30"
diff --git a/lgsm/config-default/config-lgsm/ndserver/_default.cfg b/lgsm/config-default/config-lgsm/ndserver/_default.cfg
index 3ef7000cd..f41567bff 100644
--- a/lgsm/config-default/config-lgsm/ndserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/ndserver/_default.cfg
@@ -68,6 +68,12 @@ ntfypassword=""
ntfypriority=""
ntfytags=""
+# Matrix Alerts | https://docs.linuxgsm.com/alerts/matrix
+matrixalert="off"
+matrixhomeserver="matrix.org"
+matrixtoken="accesstoken"
+matrixroom=""
+
# Pushbullet Alerts | https://docs.linuxgsm.com/alerts/pushbullet
pushbulletalert="off"
pushbullettoken="accesstoken"
@@ -97,6 +103,10 @@ telegramthreadid=""
telegramsilentnotification="false"
curlcustomstring=""
+## Stop | https://docs.linuxgsm.com/commands/start-stop-restart
+stoponlyifnoplayers="off"
+stoponlyifnoplayersallcommands="on"
+
## Updating | https://docs.linuxgsm.com/commands/update
updateonstart="off"
diff --git a/lgsm/config-default/config-lgsm/necserver/_default.cfg b/lgsm/config-default/config-lgsm/necserver/_default.cfg
index 648e0a40c..1b3ae48f3 100644
--- a/lgsm/config-default/config-lgsm/necserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/necserver/_default.cfg
@@ -63,6 +63,12 @@ ntfypassword=""
ntfypriority=""
ntfytags=""
+# Matrix Alerts | https://docs.linuxgsm.com/alerts/matrix
+matrixalert="off"
+matrixhomeserver="matrix.org"
+matrixtoken="accesstoken"
+matrixroom=""
+
# Pushbullet Alerts | https://docs.linuxgsm.com/alerts/pushbullet
pushbulletalert="off"
pushbullettoken="accesstoken"
@@ -92,6 +98,10 @@ telegramthreadid=""
telegramsilentnotification="false"
curlcustomstring=""
+## Stop | https://docs.linuxgsm.com/commands/start-stop-restart
+stoponlyifnoplayers="off"
+stoponlyifnoplayersallcommands="on"
+
## Updating | https://docs.linuxgsm.com/commands/update
updateonstart="off"
diff --git a/lgsm/config-default/config-lgsm/nmrihserver/_default.cfg b/lgsm/config-default/config-lgsm/nmrihserver/_default.cfg
index 330160428..106658818 100644
--- a/lgsm/config-default/config-lgsm/nmrihserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/nmrihserver/_default.cfg
@@ -73,6 +73,12 @@ ntfypassword=""
ntfypriority=""
ntfytags=""
+# Matrix Alerts | https://docs.linuxgsm.com/alerts/matrix
+matrixalert="off"
+matrixhomeserver="matrix.org"
+matrixtoken="accesstoken"
+matrixroom=""
+
# Pushbullet Alerts | https://docs.linuxgsm.com/alerts/pushbullet
pushbulletalert="off"
pushbullettoken="accesstoken"
@@ -102,6 +108,10 @@ telegramthreadid=""
telegramsilentnotification="false"
curlcustomstring=""
+## Stop | https://docs.linuxgsm.com/commands/start-stop-restart
+stoponlyifnoplayers="off"
+stoponlyifnoplayersallcommands="on"
+
## Updating | https://docs.linuxgsm.com/commands/update
updateonstart="off"
diff --git a/lgsm/config-default/config-lgsm/ns2cserver/_default.cfg b/lgsm/config-default/config-lgsm/ns2cserver/_default.cfg
index 565187394..fdd809dff 100644
--- a/lgsm/config-default/config-lgsm/ns2cserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/ns2cserver/_default.cfg
@@ -75,6 +75,12 @@ ntfypassword=""
ntfypriority=""
ntfytags=""
+# Matrix Alerts | https://docs.linuxgsm.com/alerts/matrix
+matrixalert="off"
+matrixhomeserver="matrix.org"
+matrixtoken="accesstoken"
+matrixroom=""
+
# Pushbullet Alerts | https://docs.linuxgsm.com/alerts/pushbullet
pushbulletalert="off"
pushbullettoken="accesstoken"
@@ -104,6 +110,10 @@ telegramthreadid=""
telegramsilentnotification="false"
curlcustomstring=""
+## Stop | https://docs.linuxgsm.com/commands/start-stop-restart
+stoponlyifnoplayers="off"
+stoponlyifnoplayersallcommands="on"
+
## Updating | https://docs.linuxgsm.com/commands/update
updateonstart="off"
diff --git a/lgsm/config-default/config-lgsm/ns2server/_default.cfg b/lgsm/config-default/config-lgsm/ns2server/_default.cfg
index 8964f1dfd..d8da66429 100644
--- a/lgsm/config-default/config-lgsm/ns2server/_default.cfg
+++ b/lgsm/config-default/config-lgsm/ns2server/_default.cfg
@@ -76,6 +76,12 @@ ntfypassword=""
ntfypriority=""
ntfytags=""
+# Matrix Alerts | https://docs.linuxgsm.com/alerts/matrix
+matrixalert="off"
+matrixhomeserver="matrix.org"
+matrixtoken="accesstoken"
+matrixroom=""
+
# Pushbullet Alerts | https://docs.linuxgsm.com/alerts/pushbullet
pushbulletalert="off"
pushbullettoken="accesstoken"
@@ -105,6 +111,10 @@ telegramthreadid=""
telegramsilentnotification="false"
curlcustomstring=""
+## Stop | https://docs.linuxgsm.com/commands/start-stop-restart
+stoponlyifnoplayers="off"
+stoponlyifnoplayersallcommands="on"
+
## Updating | https://docs.linuxgsm.com/commands/update
updateonstart="off"
diff --git a/lgsm/config-default/config-lgsm/nsserver/_default.cfg b/lgsm/config-default/config-lgsm/nsserver/_default.cfg
index 98fce8ae9..7c981081f 100644
--- a/lgsm/config-default/config-lgsm/nsserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/nsserver/_default.cfg
@@ -67,6 +67,12 @@ ntfypassword=""
ntfypriority=""
ntfytags=""
+# Matrix Alerts | https://docs.linuxgsm.com/alerts/matrix
+matrixalert="off"
+matrixhomeserver="matrix.org"
+matrixtoken="accesstoken"
+matrixroom=""
+
# Pushbullet Alerts | https://docs.linuxgsm.com/alerts/pushbullet
pushbulletalert="off"
pushbullettoken="accesstoken"
@@ -96,6 +102,10 @@ telegramthreadid=""
telegramsilentnotification="false"
curlcustomstring=""
+## Stop | https://docs.linuxgsm.com/commands/start-stop-restart
+stoponlyifnoplayers="off"
+stoponlyifnoplayersallcommands="on"
+
## Updating | https://docs.linuxgsm.com/commands/update
updateonstart="off"
diff --git a/lgsm/config-default/config-lgsm/ohdserver/_default.cfg b/lgsm/config-default/config-lgsm/ohdserver/_default.cfg
index 6213a365f..17d4c8a18 100644
--- a/lgsm/config-default/config-lgsm/ohdserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/ohdserver/_default.cfg
@@ -70,6 +70,12 @@ ntfypassword=""
ntfypriority=""
ntfytags=""
+# Matrix Alerts | https://docs.linuxgsm.com/alerts/matrix
+matrixalert="off"
+matrixhomeserver="matrix.org"
+matrixtoken="accesstoken"
+matrixroom=""
+
# Pushbullet Alerts | https://docs.linuxgsm.com/alerts/pushbullet
pushbulletalert="off"
pushbullettoken="accesstoken"
@@ -99,6 +105,10 @@ telegramthreadid=""
telegramsilentnotification="false"
curlcustomstring=""
+## Stop | https://docs.linuxgsm.com/commands/start-stop-restart
+stoponlyifnoplayers="off"
+stoponlyifnoplayersallcommands="on"
+
## Updating | https://docs.linuxgsm.com/commands/update
updateonstart="off"
diff --git a/lgsm/config-default/config-lgsm/onsetserver/_default.cfg b/lgsm/config-default/config-lgsm/onsetserver/_default.cfg
index 17a6c0767..12cabe90d 100644
--- a/lgsm/config-default/config-lgsm/onsetserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/onsetserver/_default.cfg
@@ -61,6 +61,12 @@ ntfypassword=""
ntfypriority=""
ntfytags=""
+# Matrix Alerts | https://docs.linuxgsm.com/alerts/matrix
+matrixalert="off"
+matrixhomeserver="matrix.org"
+matrixtoken="accesstoken"
+matrixroom=""
+
# Pushbullet Alerts | https://docs.linuxgsm.com/alerts/pushbullet
pushbulletalert="off"
pushbullettoken="accesstoken"
@@ -90,6 +96,10 @@ telegramthreadid=""
telegramsilentnotification="false"
curlcustomstring=""
+## Stop | https://docs.linuxgsm.com/commands/start-stop-restart
+stoponlyifnoplayers="off"
+stoponlyifnoplayersallcommands="on"
+
## Updating | https://docs.linuxgsm.com/commands/update
updateonstart="off"
diff --git a/lgsm/config-default/config-lgsm/opforserver/_default.cfg b/lgsm/config-default/config-lgsm/opforserver/_default.cfg
index 7f025a854..5501fc651 100644
--- a/lgsm/config-default/config-lgsm/opforserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/opforserver/_default.cfg
@@ -67,6 +67,12 @@ ntfypassword=""
ntfypriority=""
ntfytags=""
+# Matrix Alerts | https://docs.linuxgsm.com/alerts/matrix
+matrixalert="off"
+matrixhomeserver="matrix.org"
+matrixtoken="accesstoken"
+matrixroom=""
+
# Pushbullet Alerts | https://docs.linuxgsm.com/alerts/pushbullet
pushbulletalert="off"
pushbullettoken="accesstoken"
@@ -96,6 +102,10 @@ telegramthreadid=""
telegramsilentnotification="false"
curlcustomstring=""
+## Stop | https://docs.linuxgsm.com/commands/start-stop-restart
+stoponlyifnoplayers="off"
+stoponlyifnoplayersallcommands="on"
+
## Updating | https://docs.linuxgsm.com/commands/update
updateonstart="off"
diff --git a/lgsm/config-default/config-lgsm/pc2server/_default.cfg b/lgsm/config-default/config-lgsm/pc2server/_default.cfg
index ad71870c9..3ac6eeb77 100644
--- a/lgsm/config-default/config-lgsm/pc2server/_default.cfg
+++ b/lgsm/config-default/config-lgsm/pc2server/_default.cfg
@@ -64,6 +64,12 @@ ntfypassword=""
ntfypriority=""
ntfytags=""
+# Matrix Alerts | https://docs.linuxgsm.com/alerts/matrix
+matrixalert="off"
+matrixhomeserver="matrix.org"
+matrixtoken="accesstoken"
+matrixroom=""
+
# Pushbullet Alerts | https://docs.linuxgsm.com/alerts/pushbullet
pushbulletalert="off"
pushbullettoken="accesstoken"
@@ -93,6 +99,10 @@ telegramthreadid=""
telegramsilentnotification="false"
curlcustomstring=""
+## Stop | https://docs.linuxgsm.com/commands/start-stop-restart
+stoponlyifnoplayers="off"
+stoponlyifnoplayersallcommands="on"
+
## Updating | https://docs.linuxgsm.com/commands/update
updateonstart="off"
diff --git a/lgsm/config-default/config-lgsm/pcserver/_default.cfg b/lgsm/config-default/config-lgsm/pcserver/_default.cfg
index 54dfa4019..601ffed3b 100644
--- a/lgsm/config-default/config-lgsm/pcserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/pcserver/_default.cfg
@@ -60,6 +60,12 @@ ntfypassword=""
ntfypriority=""
ntfytags=""
+# Matrix Alerts | https://docs.linuxgsm.com/alerts/matrix
+matrixalert="off"
+matrixhomeserver="matrix.org"
+matrixtoken="accesstoken"
+matrixroom=""
+
# Pushbullet Alerts | https://docs.linuxgsm.com/alerts/pushbullet
pushbulletalert="off"
pushbullettoken="accesstoken"
@@ -89,6 +95,10 @@ telegramthreadid=""
telegramsilentnotification="false"
curlcustomstring=""
+## Stop | https://docs.linuxgsm.com/commands/start-stop-restart
+stoponlyifnoplayers="off"
+stoponlyifnoplayersallcommands="on"
+
## Updating | https://docs.linuxgsm.com/commands/update
updateonstart="off"
diff --git a/lgsm/config-default/config-lgsm/pmcserver/_default.cfg b/lgsm/config-default/config-lgsm/pmcserver/_default.cfg
index b915a9712..db456dbf7 100644
--- a/lgsm/config-default/config-lgsm/pmcserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/pmcserver/_default.cfg
@@ -67,6 +67,12 @@ ntfypassword=""
ntfypriority=""
ntfytags=""
+# Matrix Alerts | https://docs.linuxgsm.com/alerts/matrix
+matrixalert="off"
+matrixhomeserver="matrix.org"
+matrixtoken="accesstoken"
+matrixroom=""
+
# Pushbullet Alerts | https://docs.linuxgsm.com/alerts/pushbullet
pushbulletalert="off"
pushbullettoken="accesstoken"
@@ -96,6 +102,10 @@ telegramthreadid=""
telegramsilentnotification="false"
curlcustomstring=""
+## Stop | https://docs.linuxgsm.com/commands/start-stop-restart
+stoponlyifnoplayers="off"
+stoponlyifnoplayersallcommands="on"
+
## Updating | https://docs.linuxgsm.com/commands/update
updateonstart="off"
diff --git a/lgsm/config-default/config-lgsm/pvkiiserver/_default.cfg b/lgsm/config-default/config-lgsm/pvkiiserver/_default.cfg
index 64ee41bb0..7f27e32a0 100644
--- a/lgsm/config-default/config-lgsm/pvkiiserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/pvkiiserver/_default.cfg
@@ -68,6 +68,12 @@ ntfypassword=""
ntfypriority=""
ntfytags=""
+# Matrix Alerts | https://docs.linuxgsm.com/alerts/matrix
+matrixalert="off"
+matrixhomeserver="matrix.org"
+matrixtoken="accesstoken"
+matrixroom=""
+
# Pushbullet Alerts | https://docs.linuxgsm.com/alerts/pushbullet
pushbulletalert="off"
pushbullettoken="accesstoken"
@@ -97,6 +103,10 @@ telegramthreadid=""
telegramsilentnotification="false"
curlcustomstring=""
+## Stop | https://docs.linuxgsm.com/commands/start-stop-restart
+stoponlyifnoplayers="off"
+stoponlyifnoplayersallcommands="on"
+
## Updating | https://docs.linuxgsm.com/commands/update
updateonstart="off"
diff --git a/lgsm/config-default/config-lgsm/pvrserver/_default.cfg b/lgsm/config-default/config-lgsm/pvrserver/_default.cfg
index e3f0bc989..85deb664f 100644
--- a/lgsm/config-default/config-lgsm/pvrserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/pvrserver/_default.cfg
@@ -69,6 +69,12 @@ ntfypassword=""
ntfypriority=""
ntfytags=""
+# Matrix Alerts | https://docs.linuxgsm.com/alerts/matrix
+matrixalert="off"
+matrixhomeserver="matrix.org"
+matrixtoken="accesstoken"
+matrixroom=""
+
# Pushbullet Alerts | https://docs.linuxgsm.com/alerts/pushbullet
pushbulletalert="off"
pushbullettoken="accesstoken"
diff --git a/lgsm/config-default/config-lgsm/pwserver/_default.cfg b/lgsm/config-default/config-lgsm/pwserver/_default.cfg
index c9052958a..c58ce087f 100644
--- a/lgsm/config-default/config-lgsm/pwserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/pwserver/_default.cfg
@@ -68,6 +68,12 @@ ntfypassword=""
ntfypriority=""
ntfytags=""
+# Matrix Alerts | https://docs.linuxgsm.com/alerts/matrix
+matrixalert="off"
+matrixhomeserver="matrix.org"
+matrixtoken="accesstoken"
+matrixroom=""
+
# Pushbullet Alerts | https://docs.linuxgsm.com/alerts/pushbullet
pushbulletalert="off"
pushbullettoken="accesstoken"
@@ -97,6 +103,10 @@ telegramthreadid=""
telegramsilentnotification="false"
curlcustomstring=""
+## Stop | https://docs.linuxgsm.com/commands/start-stop-restart
+stoponlyifnoplayers="off"
+stoponlyifnoplayersallcommands="on"
+
## Updating | https://docs.linuxgsm.com/commands/update
updateonstart="off"
diff --git a/lgsm/config-default/config-lgsm/pzserver/_default.cfg b/lgsm/config-default/config-lgsm/pzserver/_default.cfg
index aa0ca6525..a0456d6e3 100644
--- a/lgsm/config-default/config-lgsm/pzserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/pzserver/_default.cfg
@@ -64,6 +64,12 @@ ntfypassword=""
ntfypriority=""
ntfytags=""
+# Matrix Alerts | https://docs.linuxgsm.com/alerts/matrix
+matrixalert="off"
+matrixhomeserver="matrix.org"
+matrixtoken="accesstoken"
+matrixroom=""
+
# Pushbullet Alerts | https://docs.linuxgsm.com/alerts/pushbullet
pushbulletalert="off"
pushbullettoken="accesstoken"
@@ -93,6 +99,10 @@ telegramthreadid=""
telegramsilentnotification="false"
curlcustomstring=""
+## Stop | https://docs.linuxgsm.com/commands/start-stop-restart
+stoponlyifnoplayers="off"
+stoponlyifnoplayersallcommands="on"
+
## Updating | https://docs.linuxgsm.com/commands/update
updateonstart="off"
diff --git a/lgsm/config-default/config-lgsm/q2server/_default.cfg b/lgsm/config-default/config-lgsm/q2server/_default.cfg
index 5b40936e1..2fe85ea3c 100644
--- a/lgsm/config-default/config-lgsm/q2server/_default.cfg
+++ b/lgsm/config-default/config-lgsm/q2server/_default.cfg
@@ -65,6 +65,12 @@ ntfypassword=""
ntfypriority=""
ntfytags=""
+# Matrix Alerts | https://docs.linuxgsm.com/alerts/matrix
+matrixalert="off"
+matrixhomeserver="matrix.org"
+matrixtoken="accesstoken"
+matrixroom=""
+
# Pushbullet Alerts | https://docs.linuxgsm.com/alerts/pushbullet
pushbulletalert="off"
pushbullettoken="accesstoken"
@@ -94,6 +100,10 @@ telegramthreadid=""
telegramsilentnotification="false"
curlcustomstring=""
+## Stop | https://docs.linuxgsm.com/commands/start-stop-restart
+stoponlyifnoplayers="off"
+stoponlyifnoplayersallcommands="on"
+
## Backup | https://docs.linuxgsm.com/commands/backup
maxbackups="4"
maxbackupdays="30"
diff --git a/lgsm/config-default/config-lgsm/q3server/_default.cfg b/lgsm/config-default/config-lgsm/q3server/_default.cfg
index 35e612651..24a3604fc 100644
--- a/lgsm/config-default/config-lgsm/q3server/_default.cfg
+++ b/lgsm/config-default/config-lgsm/q3server/_default.cfg
@@ -65,6 +65,12 @@ ntfypassword=""
ntfypriority=""
ntfytags=""
+# Matrix Alerts | https://docs.linuxgsm.com/alerts/matrix
+matrixalert="off"
+matrixhomeserver="matrix.org"
+matrixtoken="accesstoken"
+matrixroom=""
+
# Pushbullet Alerts | https://docs.linuxgsm.com/alerts/pushbullet
pushbulletalert="off"
pushbullettoken="accesstoken"
@@ -94,6 +100,10 @@ telegramthreadid=""
telegramsilentnotification="false"
curlcustomstring=""
+## Stop | https://docs.linuxgsm.com/commands/start-stop-restart
+stoponlyifnoplayers="off"
+stoponlyifnoplayersallcommands="on"
+
## Backup | https://docs.linuxgsm.com/commands/backup
maxbackups="4"
maxbackupdays="30"
diff --git a/lgsm/config-default/config-lgsm/q4server/_default.cfg b/lgsm/config-default/config-lgsm/q4server/_default.cfg
index 32293c955..f4f8f4655 100644
--- a/lgsm/config-default/config-lgsm/q4server/_default.cfg
+++ b/lgsm/config-default/config-lgsm/q4server/_default.cfg
@@ -67,6 +67,12 @@ ntfypassword=""
ntfypriority=""
ntfytags=""
+# Matrix Alerts | https://docs.linuxgsm.com/alerts/matrix
+matrixalert="off"
+matrixhomeserver="matrix.org"
+matrixtoken="accesstoken"
+matrixroom=""
+
# Pushbullet Alerts | https://docs.linuxgsm.com/alerts/pushbullet
pushbulletalert="off"
pushbullettoken="accesstoken"
@@ -96,6 +102,10 @@ telegramthreadid=""
telegramsilentnotification="false"
curlcustomstring=""
+## Stop | https://docs.linuxgsm.com/commands/start-stop-restart
+stoponlyifnoplayers="off"
+stoponlyifnoplayersallcommands="on"
+
## Updating | https://docs.linuxgsm.com/commands/update
updateonstart="off"
diff --git a/lgsm/config-default/config-lgsm/qlserver/_default.cfg b/lgsm/config-default/config-lgsm/qlserver/_default.cfg
index e1c8d2fac..057b0f09d 100644
--- a/lgsm/config-default/config-lgsm/qlserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/qlserver/_default.cfg
@@ -60,6 +60,12 @@ ntfypassword=""
ntfypriority=""
ntfytags=""
+# Matrix Alerts | https://docs.linuxgsm.com/alerts/matrix
+matrixalert="off"
+matrixhomeserver="matrix.org"
+matrixtoken="accesstoken"
+matrixroom=""
+
# Pushbullet Alerts | https://docs.linuxgsm.com/alerts/pushbullet
pushbulletalert="off"
pushbullettoken="accesstoken"
@@ -89,6 +95,10 @@ telegramthreadid=""
telegramsilentnotification="false"
curlcustomstring=""
+## Stop | https://docs.linuxgsm.com/commands/start-stop-restart
+stoponlyifnoplayers="off"
+stoponlyifnoplayersallcommands="on"
+
## Updating | https://docs.linuxgsm.com/commands/update
updateonstart="off"
diff --git a/lgsm/config-default/config-lgsm/qwserver/_default.cfg b/lgsm/config-default/config-lgsm/qwserver/_default.cfg
index 39cce3204..b637f7d07 100644
--- a/lgsm/config-default/config-lgsm/qwserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/qwserver/_default.cfg
@@ -64,6 +64,12 @@ ntfypassword=""
ntfypriority=""
ntfytags=""
+# Matrix Alerts | https://docs.linuxgsm.com/alerts/matrix
+matrixalert="off"
+matrixhomeserver="matrix.org"
+matrixtoken="accesstoken"
+matrixroom=""
+
# Pushbullet Alerts | https://docs.linuxgsm.com/alerts/pushbullet
pushbulletalert="off"
pushbullettoken="accesstoken"
@@ -93,6 +99,10 @@ telegramthreadid=""
telegramsilentnotification="false"
curlcustomstring=""
+## Stop | https://docs.linuxgsm.com/commands/start-stop-restart
+stoponlyifnoplayers="off"
+stoponlyifnoplayersallcommands="on"
+
## Backup | https://docs.linuxgsm.com/commands/backup
maxbackups="4"
maxbackupdays="30"
diff --git a/lgsm/config-default/config-lgsm/ricochetserver/_default.cfg b/lgsm/config-default/config-lgsm/ricochetserver/_default.cfg
index b97ff5b7f..a1d05ac95 100644
--- a/lgsm/config-default/config-lgsm/ricochetserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/ricochetserver/_default.cfg
@@ -67,6 +67,12 @@ ntfypassword=""
ntfypriority=""
ntfytags=""
+# Matrix Alerts | https://docs.linuxgsm.com/alerts/matrix
+matrixalert="off"
+matrixhomeserver="matrix.org"
+matrixtoken="accesstoken"
+matrixroom=""
+
# Pushbullet Alerts | https://docs.linuxgsm.com/alerts/pushbullet
pushbulletalert="off"
pushbullettoken="accesstoken"
@@ -96,6 +102,10 @@ telegramthreadid=""
telegramsilentnotification="false"
curlcustomstring=""
+## Stop | https://docs.linuxgsm.com/commands/start-stop-restart
+stoponlyifnoplayers="off"
+stoponlyifnoplayersallcommands="on"
+
## Updating | https://docs.linuxgsm.com/commands/update
updateonstart="off"
diff --git a/lgsm/config-default/config-lgsm/roserver/_default.cfg b/lgsm/config-default/config-lgsm/roserver/_default.cfg
index 10eb081bd..9d2863735 100644
--- a/lgsm/config-default/config-lgsm/roserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/roserver/_default.cfg
@@ -68,6 +68,12 @@ ntfypassword=""
ntfypriority=""
ntfytags=""
+# Matrix Alerts | https://docs.linuxgsm.com/alerts/matrix
+matrixalert="off"
+matrixhomeserver="matrix.org"
+matrixtoken="accesstoken"
+matrixroom=""
+
# Pushbullet Alerts | https://docs.linuxgsm.com/alerts/pushbullet
pushbulletalert="off"
pushbullettoken="accesstoken"
@@ -97,6 +103,10 @@ telegramthreadid=""
telegramsilentnotification="false"
curlcustomstring=""
+## Stop | https://docs.linuxgsm.com/commands/start-stop-restart
+stoponlyifnoplayers="off"
+stoponlyifnoplayersallcommands="on"
+
## Updating | https://docs.linuxgsm.com/commands/update
updateonstart="off"
diff --git a/lgsm/config-default/config-lgsm/rtcwserver/_default.cfg b/lgsm/config-default/config-lgsm/rtcwserver/_default.cfg
index b8d3e1eb7..f2ba06a62 100644
--- a/lgsm/config-default/config-lgsm/rtcwserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/rtcwserver/_default.cfg
@@ -65,6 +65,12 @@ ntfypassword=""
ntfypriority=""
ntfytags=""
+# Matrix Alerts | https://docs.linuxgsm.com/alerts/matrix
+matrixalert="off"
+matrixhomeserver="matrix.org"
+matrixtoken="accesstoken"
+matrixroom=""
+
# Pushbullet Alerts | https://docs.linuxgsm.com/alerts/pushbullet
pushbulletalert="off"
pushbullettoken="accesstoken"
@@ -94,6 +100,10 @@ telegramthreadid=""
telegramsilentnotification="false"
curlcustomstring=""
+## Stop | https://docs.linuxgsm.com/commands/start-stop-restart
+stoponlyifnoplayers="off"
+stoponlyifnoplayersallcommands="on"
+
## Backup | https://docs.linuxgsm.com/commands/backup
maxbackups="4"
maxbackupdays="30"
diff --git a/lgsm/config-default/config-lgsm/rustserver/_default.cfg b/lgsm/config-default/config-lgsm/rustserver/_default.cfg
index c5823b5f1..418aad946 100644
--- a/lgsm/config-default/config-lgsm/rustserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/rustserver/_default.cfg
@@ -80,6 +80,12 @@ ntfypassword=""
ntfypriority=""
ntfytags=""
+# Matrix Alerts | https://docs.linuxgsm.com/alerts/matrix
+matrixalert="off"
+matrixhomeserver="matrix.org"
+matrixtoken="accesstoken"
+matrixroom=""
+
# Pushbullet Alerts | https://docs.linuxgsm.com/alerts/pushbullet
pushbulletalert="off"
pushbullettoken="accesstoken"
@@ -109,6 +115,10 @@ telegramthreadid=""
telegramsilentnotification="false"
curlcustomstring=""
+## Stop | https://docs.linuxgsm.com/commands/start-stop-restart
+stoponlyifnoplayers="off"
+stoponlyifnoplayersallcommands="on"
+
## Updating | https://docs.linuxgsm.com/commands/update
updateonstart="off"
diff --git a/lgsm/config-default/config-lgsm/rwserver/_default.cfg b/lgsm/config-default/config-lgsm/rwserver/_default.cfg
index 2d95710e1..fe8c9f842 100644
--- a/lgsm/config-default/config-lgsm/rwserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/rwserver/_default.cfg
@@ -60,6 +60,12 @@ ntfypassword=""
ntfypriority=""
ntfytags=""
+# Matrix Alerts | https://docs.linuxgsm.com/alerts/matrix
+matrixalert="off"
+matrixhomeserver="matrix.org"
+matrixtoken="accesstoken"
+matrixroom=""
+
# Pushbullet Alerts | https://docs.linuxgsm.com/alerts/pushbullet
pushbulletalert="off"
pushbullettoken="accesstoken"
@@ -89,6 +95,10 @@ telegramthreadid=""
telegramsilentnotification="false"
curlcustomstring=""
+## Stop | https://docs.linuxgsm.com/commands/start-stop-restart
+stoponlyifnoplayers="off"
+stoponlyifnoplayersallcommands="on"
+
## Updating | https://docs.linuxgsm.com/commands/update
updateonstart="off"
diff --git a/lgsm/config-default/config-lgsm/sampserver/_default.cfg b/lgsm/config-default/config-lgsm/sampserver/_default.cfg
index 3caf0a4f2..af548a639 100644
--- a/lgsm/config-default/config-lgsm/sampserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/sampserver/_default.cfg
@@ -64,6 +64,12 @@ ntfypassword=""
ntfypriority=""
ntfytags=""
+# Matrix Alerts | https://docs.linuxgsm.com/alerts/matrix
+matrixalert="off"
+matrixhomeserver="matrix.org"
+matrixtoken="accesstoken"
+matrixroom=""
+
# Pushbullet Alerts | https://docs.linuxgsm.com/alerts/pushbullet
pushbulletalert="off"
pushbullettoken="accesstoken"
@@ -93,6 +99,10 @@ telegramthreadid=""
telegramsilentnotification="false"
curlcustomstring=""
+## Stop | https://docs.linuxgsm.com/commands/start-stop-restart
+stoponlyifnoplayers="off"
+stoponlyifnoplayersallcommands="on"
+
## Backup | https://docs.linuxgsm.com/commands/backup
maxbackups="4"
maxbackupdays="30"
diff --git a/lgsm/config-default/config-lgsm/sbotsserver/_default.cfg b/lgsm/config-default/config-lgsm/sbotsserver/_default.cfg
index 2bd551530..93644efe5 100644
--- a/lgsm/config-default/config-lgsm/sbotsserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/sbotsserver/_default.cfg
@@ -66,6 +66,12 @@ ntfypassword=""
ntfypriority=""
ntfytags=""
+# Matrix Alerts | https://docs.linuxgsm.com/alerts/matrix
+matrixalert="off"
+matrixhomeserver="matrix.org"
+matrixtoken="accesstoken"
+matrixroom=""
+
# Pushbullet Alerts | https://docs.linuxgsm.com/alerts/pushbullet
pushbulletalert="off"
pushbullettoken="accesstoken"
@@ -95,6 +101,10 @@ telegramthreadid=""
telegramsilentnotification="false"
curlcustomstring=""
+## Stop | https://docs.linuxgsm.com/commands/start-stop-restart
+stoponlyifnoplayers="off"
+stoponlyifnoplayersallcommands="on"
+
## Updating | https://docs.linuxgsm.com/commands/update
updateonstart="off"
diff --git a/lgsm/config-default/config-lgsm/sbserver/_default.cfg b/lgsm/config-default/config-lgsm/sbserver/_default.cfg
index 671e09b31..fbca63afc 100644
--- a/lgsm/config-default/config-lgsm/sbserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/sbserver/_default.cfg
@@ -67,6 +67,12 @@ ntfypassword=""
ntfypriority=""
ntfytags=""
+# Matrix Alerts | https://docs.linuxgsm.com/alerts/matrix
+matrixalert="off"
+matrixhomeserver="matrix.org"
+matrixtoken="accesstoken"
+matrixroom=""
+
# Pushbullet Alerts | https://docs.linuxgsm.com/alerts/pushbullet
pushbulletalert="off"
pushbullettoken="accesstoken"
@@ -96,6 +102,10 @@ telegramthreadid=""
telegramsilentnotification="false"
curlcustomstring=""
+## Stop | https://docs.linuxgsm.com/commands/start-stop-restart
+stoponlyifnoplayers="off"
+stoponlyifnoplayersallcommands="on"
+
## Updating | https://docs.linuxgsm.com/commands/update
updateonstart="off"
diff --git a/lgsm/config-default/config-lgsm/scpslserver/_default.cfg b/lgsm/config-default/config-lgsm/scpslserver/_default.cfg
index 02140723b..2ad4b566c 100644
--- a/lgsm/config-default/config-lgsm/scpslserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/scpslserver/_default.cfg
@@ -65,6 +65,12 @@ ntfypassword=""
ntfypriority=""
ntfytags=""
+# Matrix Alerts | https://docs.linuxgsm.com/alerts/matrix
+matrixalert="off"
+matrixhomeserver="matrix.org"
+matrixtoken="accesstoken"
+matrixroom=""
+
# Pushbullet Alerts | https://docs.linuxgsm.com/alerts/pushbullet
pushbulletalert="off"
pushbullettoken="accesstoken"
@@ -94,6 +100,10 @@ telegramthreadid=""
telegramsilentnotification="false"
curlcustomstring=""
+## Stop | https://docs.linuxgsm.com/commands/start-stop-restart
+stoponlyifnoplayers="off"
+stoponlyifnoplayersallcommands="on"
+
## Updating | https://docs.linuxgsm.com/commands/update
updateonstart="off"
diff --git a/lgsm/config-default/config-lgsm/scpslsmserver/_default.cfg b/lgsm/config-default/config-lgsm/scpslsmserver/_default.cfg
index 1ca04be52..eca5c43e6 100644
--- a/lgsm/config-default/config-lgsm/scpslsmserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/scpslsmserver/_default.cfg
@@ -65,6 +65,12 @@ ntfypassword=""
ntfypriority=""
ntfytags=""
+# Matrix Alerts | https://docs.linuxgsm.com/alerts/matrix
+matrixalert="off"
+matrixhomeserver="matrix.org"
+matrixtoken="accesstoken"
+matrixroom=""
+
# Pushbullet Alerts | https://docs.linuxgsm.com/alerts/pushbullet
pushbulletalert="off"
pushbullettoken="accesstoken"
@@ -94,6 +100,10 @@ telegramthreadid=""
telegramsilentnotification="false"
curlcustomstring=""
+## Stop | https://docs.linuxgsm.com/commands/start-stop-restart
+stoponlyifnoplayers="off"
+stoponlyifnoplayersallcommands="on"
+
## Updating | https://docs.linuxgsm.com/commands/update
updateonstart="off"
diff --git a/lgsm/config-default/config-lgsm/sdtdserver/_default.cfg b/lgsm/config-default/config-lgsm/sdtdserver/_default.cfg
index 985b29643..383b51d23 100644
--- a/lgsm/config-default/config-lgsm/sdtdserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/sdtdserver/_default.cfg
@@ -63,6 +63,12 @@ ntfypassword=""
ntfypriority=""
ntfytags=""
+# Matrix Alerts | https://docs.linuxgsm.com/alerts/matrix
+matrixalert="off"
+matrixhomeserver="matrix.org"
+matrixtoken="accesstoken"
+matrixroom=""
+
# Pushbullet Alerts | https://docs.linuxgsm.com/alerts/pushbullet
pushbulletalert="off"
pushbullettoken="accesstoken"
@@ -92,6 +98,10 @@ telegramthreadid=""
telegramsilentnotification="false"
curlcustomstring=""
+## Stop | https://docs.linuxgsm.com/commands/start-stop-restart
+stoponlyifnoplayers="off"
+stoponlyifnoplayersallcommands="on"
+
## Updating | https://docs.linuxgsm.com/commands/update
updateonstart="off"
diff --git a/lgsm/config-default/config-lgsm/sfcserver/_default.cfg b/lgsm/config-default/config-lgsm/sfcserver/_default.cfg
index 4b5c3bc91..856b172df 100644
--- a/lgsm/config-default/config-lgsm/sfcserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/sfcserver/_default.cfg
@@ -68,6 +68,12 @@ ntfypassword=""
ntfypriority=""
ntfytags=""
+# Matrix Alerts | https://docs.linuxgsm.com/alerts/matrix
+matrixalert="off"
+matrixhomeserver="matrix.org"
+matrixtoken="accesstoken"
+matrixroom=""
+
# Pushbullet Alerts | https://docs.linuxgsm.com/alerts/pushbullet
pushbulletalert="off"
pushbullettoken="accesstoken"
@@ -97,6 +103,10 @@ telegramthreadid=""
telegramsilentnotification="false"
curlcustomstring=""
+## Stop | https://docs.linuxgsm.com/commands/start-stop-restart
+stoponlyifnoplayers="off"
+stoponlyifnoplayersallcommands="on"
+
## Updating | https://docs.linuxgsm.com/commands/update
updateonstart="off"
diff --git a/lgsm/config-default/config-lgsm/sfserver/_default.cfg b/lgsm/config-default/config-lgsm/sfserver/_default.cfg
index 4e7272b47..1fbcbf52e 100644
--- a/lgsm/config-default/config-lgsm/sfserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/sfserver/_default.cfg
@@ -68,6 +68,12 @@ ntfypassword=""
ntfypriority=""
ntfytags=""
+# Matrix Alerts | https://docs.linuxgsm.com/alerts/matrix
+matrixalert="off"
+matrixhomeserver="matrix.org"
+matrixtoken="accesstoken"
+matrixroom=""
+
# Pushbullet Alerts | https://docs.linuxgsm.com/alerts/pushbullet
pushbulletalert="off"
pushbullettoken="accesstoken"
@@ -97,6 +103,10 @@ telegramthreadid=""
telegramsilentnotification="false"
curlcustomstring=""
+## Stop | https://docs.linuxgsm.com/commands/start-stop-restart
+stoponlyifnoplayers="off"
+stoponlyifnoplayersallcommands="on"
+
## Updating | https://docs.linuxgsm.com/commands/update
updateonstart="off"
diff --git a/lgsm/config-default/config-lgsm/smserver/_default.cfg b/lgsm/config-default/config-lgsm/smserver/_default.cfg
index 4fd669e9b..029b33306 100644
--- a/lgsm/config-default/config-lgsm/smserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/smserver/_default.cfg
@@ -71,6 +71,12 @@ ntfypassword=""
ntfypriority=""
ntfytags=""
+# Matrix Alerts | https://docs.linuxgsm.com/alerts/matrix
+matrixalert="off"
+matrixhomeserver="matrix.org"
+matrixtoken="accesstoken"
+matrixroom=""
+
# Pushbullet Alerts | https://docs.linuxgsm.com/alerts/pushbullet
pushbulletalert="off"
pushbullettoken="accesstoken"
diff --git a/lgsm/config-default/config-lgsm/sof2server/_default.cfg b/lgsm/config-default/config-lgsm/sof2server/_default.cfg
index 70783da4a..88fdfd239 100644
--- a/lgsm/config-default/config-lgsm/sof2server/_default.cfg
+++ b/lgsm/config-default/config-lgsm/sof2server/_default.cfg
@@ -65,6 +65,12 @@ ntfypassword=""
ntfypriority=""
ntfytags=""
+# Matrix Alerts | https://docs.linuxgsm.com/alerts/matrix
+matrixalert="off"
+matrixhomeserver="matrix.org"
+matrixtoken="accesstoken"
+matrixroom=""
+
# Pushbullet Alerts | https://docs.linuxgsm.com/alerts/pushbullet
pushbulletalert="off"
pushbullettoken="accesstoken"
@@ -94,6 +100,10 @@ telegramthreadid=""
telegramsilentnotification="false"
curlcustomstring=""
+## Stop | https://docs.linuxgsm.com/commands/start-stop-restart
+stoponlyifnoplayers="off"
+stoponlyifnoplayersallcommands="on"
+
## Backup | https://docs.linuxgsm.com/commands/backup
maxbackups="4"
maxbackupdays="30"
diff --git a/lgsm/config-default/config-lgsm/solserver/_default.cfg b/lgsm/config-default/config-lgsm/solserver/_default.cfg
index 06147b620..41d83dc5e 100644
--- a/lgsm/config-default/config-lgsm/solserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/solserver/_default.cfg
@@ -64,6 +64,12 @@ ntfypassword=""
ntfypriority=""
ntfytags=""
+# Matrix Alerts | https://docs.linuxgsm.com/alerts/matrix
+matrixalert="off"
+matrixhomeserver="matrix.org"
+matrixtoken="accesstoken"
+matrixroom=""
+
# Pushbullet Alerts | https://docs.linuxgsm.com/alerts/pushbullet
pushbulletalert="off"
pushbullettoken="accesstoken"
@@ -93,6 +99,10 @@ telegramthreadid=""
telegramsilentnotification="false"
curlcustomstring=""
+## Stop | https://docs.linuxgsm.com/commands/start-stop-restart
+stoponlyifnoplayers="off"
+stoponlyifnoplayersallcommands="on"
+
## Updating | https://docs.linuxgsm.com/commands/update
updateonstart="off"
diff --git a/lgsm/config-default/config-lgsm/squad44server/_default.cfg b/lgsm/config-default/config-lgsm/squad44server/_default.cfg
index 36037a113..0235f155e 100644
--- a/lgsm/config-default/config-lgsm/squad44server/_default.cfg
+++ b/lgsm/config-default/config-lgsm/squad44server/_default.cfg
@@ -65,6 +65,12 @@ ntfypassword=""
ntfypriority=""
ntfytags=""
+# Matrix Alerts | https://docs.linuxgsm.com/alerts/matrix
+matrixalert="off"
+matrixhomeserver="matrix.org"
+matrixtoken="accesstoken"
+matrixroom=""
+
# Pushbullet Alerts | https://docs.linuxgsm.com/alerts/pushbullet
pushbulletalert="off"
pushbullettoken="accesstoken"
@@ -94,6 +100,10 @@ telegramthreadid=""
telegramsilentnotification="false"
curlcustomstring=""
+## Stop | https://docs.linuxgsm.com/commands/start-stop-restart
+stoponlyifnoplayers="off"
+stoponlyifnoplayersallcommands="on"
+
## Updating | https://docs.linuxgsm.com/commands/update
updateonstart="off"
diff --git a/lgsm/config-default/config-lgsm/squadserver/_default.cfg b/lgsm/config-default/config-lgsm/squadserver/_default.cfg
index db783c810..b19d59ce6 100644
--- a/lgsm/config-default/config-lgsm/squadserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/squadserver/_default.cfg
@@ -65,6 +65,12 @@ ntfypassword=""
ntfypriority=""
ntfytags=""
+# Matrix Alerts | https://docs.linuxgsm.com/alerts/matrix
+matrixalert="off"
+matrixhomeserver="matrix.org"
+matrixtoken="accesstoken"
+matrixroom=""
+
# Pushbullet Alerts | https://docs.linuxgsm.com/alerts/pushbullet
pushbulletalert="off"
pushbullettoken="accesstoken"
@@ -94,6 +100,10 @@ telegramthreadid=""
telegramsilentnotification="false"
curlcustomstring=""
+## Stop | https://docs.linuxgsm.com/commands/start-stop-restart
+stoponlyifnoplayers="off"
+stoponlyifnoplayersallcommands="on"
+
## Updating | https://docs.linuxgsm.com/commands/update
updateonstart="off"
diff --git a/lgsm/config-default/config-lgsm/stnserver/_default.cfg b/lgsm/config-default/config-lgsm/stnserver/_default.cfg
index 4fef17c4b..d245e780d 100644
--- a/lgsm/config-default/config-lgsm/stnserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/stnserver/_default.cfg
@@ -64,6 +64,12 @@ ntfypassword=""
ntfypriority=""
ntfytags=""
+# Matrix Alerts | https://docs.linuxgsm.com/alerts/matrix
+matrixalert="off"
+matrixhomeserver="matrix.org"
+matrixtoken="accesstoken"
+matrixroom=""
+
# Pushbullet Alerts | https://docs.linuxgsm.com/alerts/pushbullet
pushbulletalert="off"
pushbullettoken="accesstoken"
@@ -93,6 +99,10 @@ telegramthreadid=""
telegramsilentnotification="false"
curlcustomstring=""
+## Stop | https://docs.linuxgsm.com/commands/start-stop-restart
+stoponlyifnoplayers="off"
+stoponlyifnoplayersallcommands="on"
+
## Updating | https://docs.linuxgsm.com/commands/update
updateonstart="off"
diff --git a/lgsm/config-default/config-lgsm/stserver/_default.cfg b/lgsm/config-default/config-lgsm/stserver/_default.cfg
index 4aeaa9c8d..c724f2c19 100644
--- a/lgsm/config-default/config-lgsm/stserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/stserver/_default.cfg
@@ -64,6 +64,12 @@ ntfypassword=""
ntfypriority=""
ntfytags=""
+# Matrix Alerts | https://docs.linuxgsm.com/alerts/matrix
+matrixalert="off"
+matrixhomeserver="matrix.org"
+matrixtoken="accesstoken"
+matrixroom=""
+
# Pushbullet Alerts | https://docs.linuxgsm.com/alerts/pushbullet
pushbulletalert="off"
pushbullettoken="accesstoken"
@@ -93,6 +99,10 @@ telegramthreadid=""
telegramsilentnotification="false"
curlcustomstring=""
+## Stop | https://docs.linuxgsm.com/commands/start-stop-restart
+stoponlyifnoplayers="off"
+stoponlyifnoplayersallcommands="on"
+
## Updating | https://docs.linuxgsm.com/commands/update
updateonstart="off"
diff --git a/lgsm/config-default/config-lgsm/svenserver/_default.cfg b/lgsm/config-default/config-lgsm/svenserver/_default.cfg
index 24ea8bf66..60a1e8c7a 100644
--- a/lgsm/config-default/config-lgsm/svenserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/svenserver/_default.cfg
@@ -67,6 +67,12 @@ ntfypassword=""
ntfypriority=""
ntfytags=""
+# Matrix Alerts | https://docs.linuxgsm.com/alerts/matrix
+matrixalert="off"
+matrixhomeserver="matrix.org"
+matrixtoken="accesstoken"
+matrixroom=""
+
# Pushbullet Alerts | https://docs.linuxgsm.com/alerts/pushbullet
pushbulletalert="off"
pushbullettoken="accesstoken"
@@ -96,6 +102,10 @@ telegramthreadid=""
telegramsilentnotification="false"
curlcustomstring=""
+## Stop | https://docs.linuxgsm.com/commands/start-stop-restart
+stoponlyifnoplayers="off"
+stoponlyifnoplayersallcommands="on"
+
## Updating | https://docs.linuxgsm.com/commands/update
updateonstart="off"
diff --git a/lgsm/config-default/config-lgsm/terrariaserver/_default.cfg b/lgsm/config-default/config-lgsm/terrariaserver/_default.cfg
index 557ad48af..3694c63ba 100644
--- a/lgsm/config-default/config-lgsm/terrariaserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/terrariaserver/_default.cfg
@@ -67,6 +67,12 @@ ntfypassword=""
ntfypriority=""
ntfytags=""
+# Matrix Alerts | https://docs.linuxgsm.com/alerts/matrix
+matrixalert="off"
+matrixhomeserver="matrix.org"
+matrixtoken="accesstoken"
+matrixroom=""
+
# Pushbullet Alerts | https://docs.linuxgsm.com/alerts/pushbullet
pushbulletalert="off"
pushbullettoken="accesstoken"
@@ -96,6 +102,10 @@ telegramthreadid=""
telegramsilentnotification="false"
curlcustomstring=""
+## Stop | https://docs.linuxgsm.com/commands/start-stop-restart
+stoponlyifnoplayers="off"
+stoponlyifnoplayersallcommands="on"
+
## Updating | https://docs.linuxgsm.com/commands/update
updateonstart="off"
diff --git a/lgsm/config-default/config-lgsm/tf2cserver/_default.cfg b/lgsm/config-default/config-lgsm/tf2cserver/_default.cfg
index fdbcc2cba..e17cb3cd7 100644
--- a/lgsm/config-default/config-lgsm/tf2cserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/tf2cserver/_default.cfg
@@ -75,6 +75,12 @@ ntfypassword=""
ntfypriority=""
ntfytags=""
+# Matrix Alerts | https://docs.linuxgsm.com/alerts/matrix
+matrixalert="off"
+matrixhomeserver="matrix.org"
+matrixtoken="accesstoken"
+matrixroom=""
+
# Pushbullet Alerts | https://docs.linuxgsm.com/alerts/pushbullet
pushbulletalert="off"
pushbullettoken="accesstoken"
diff --git a/lgsm/config-default/config-lgsm/tf2server/_default.cfg b/lgsm/config-default/config-lgsm/tf2server/_default.cfg
index 16a4285f0..3bd74259a 100644
--- a/lgsm/config-default/config-lgsm/tf2server/_default.cfg
+++ b/lgsm/config-default/config-lgsm/tf2server/_default.cfg
@@ -75,6 +75,12 @@ ntfypassword=""
ntfypriority=""
ntfytags=""
+# Matrix Alerts | https://docs.linuxgsm.com/alerts/matrix
+matrixalert="off"
+matrixhomeserver="matrix.org"
+matrixtoken="accesstoken"
+matrixroom=""
+
# Pushbullet Alerts | https://docs.linuxgsm.com/alerts/pushbullet
pushbulletalert="off"
pushbullettoken="accesstoken"
@@ -104,6 +110,10 @@ telegramthreadid=""
telegramsilentnotification="false"
curlcustomstring=""
+## Stop | https://docs.linuxgsm.com/commands/start-stop-restart
+stoponlyifnoplayers="off"
+stoponlyifnoplayersallcommands="on"
+
## Updating | https://docs.linuxgsm.com/commands/update
updateonstart="off"
diff --git a/lgsm/config-default/config-lgsm/tfcserver/_default.cfg b/lgsm/config-default/config-lgsm/tfcserver/_default.cfg
index ec2e2cade..123fe1b0b 100644
--- a/lgsm/config-default/config-lgsm/tfcserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/tfcserver/_default.cfg
@@ -67,6 +67,12 @@ ntfypassword=""
ntfypriority=""
ntfytags=""
+# Matrix Alerts | https://docs.linuxgsm.com/alerts/matrix
+matrixalert="off"
+matrixhomeserver="matrix.org"
+matrixtoken="accesstoken"
+matrixroom=""
+
# Pushbullet Alerts | https://docs.linuxgsm.com/alerts/pushbullet
pushbulletalert="off"
pushbullettoken="accesstoken"
@@ -96,6 +102,10 @@ telegramthreadid=""
telegramsilentnotification="false"
curlcustomstring=""
+## Stop | https://docs.linuxgsm.com/commands/start-stop-restart
+stoponlyifnoplayers="off"
+stoponlyifnoplayersallcommands="on"
+
## Updating | https://docs.linuxgsm.com/commands/update
updateonstart="off"
diff --git a/lgsm/config-default/config-lgsm/tfserver/_default.cfg b/lgsm/config-default/config-lgsm/tfserver/_default.cfg
index 880e12acb..43026b5d1 100644
--- a/lgsm/config-default/config-lgsm/tfserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/tfserver/_default.cfg
@@ -84,6 +84,12 @@ ntfypassword=""
ntfypriority=""
ntfytags=""
+# Matrix Alerts | https://docs.linuxgsm.com/alerts/matrix
+matrixalert="off"
+matrixhomeserver="matrix.org"
+matrixtoken="accesstoken"
+matrixroom=""
+
# Pushbullet Alerts | https://docs.linuxgsm.com/alerts/pushbullet
pushbulletalert="off"
pushbullettoken="accesstoken"
@@ -113,6 +119,10 @@ telegramthreadid=""
telegramsilentnotification="false"
curlcustomstring=""
+## Stop | https://docs.linuxgsm.com/commands/start-stop-restart
+stoponlyifnoplayers="off"
+stoponlyifnoplayersallcommands="on"
+
## Updating | https://docs.linuxgsm.com/commands/update
updateonstart="off"
diff --git a/lgsm/config-default/config-lgsm/tiserver/_default.cfg b/lgsm/config-default/config-lgsm/tiserver/_default.cfg
index 75aa946f0..59384527b 100644
--- a/lgsm/config-default/config-lgsm/tiserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/tiserver/_default.cfg
@@ -66,6 +66,12 @@ ntfypassword=""
ntfypriority=""
ntfytags=""
+# Matrix Alerts | https://docs.linuxgsm.com/alerts/matrix
+matrixalert="off"
+matrixhomeserver="matrix.org"
+matrixtoken="accesstoken"
+matrixroom=""
+
# Pushbullet Alerts | https://docs.linuxgsm.com/alerts/pushbullet
pushbulletalert="off"
pushbullettoken="accesstoken"
@@ -95,6 +101,10 @@ telegramthreadid=""
telegramsilentnotification="false"
curlcustomstring=""
+## Stop | https://docs.linuxgsm.com/commands/start-stop-restart
+stoponlyifnoplayers="off"
+stoponlyifnoplayersallcommands="on"
+
## Updating | https://docs.linuxgsm.com/commands/update
updateonstart="off"
diff --git a/lgsm/config-default/config-lgsm/ts3server/_default.cfg b/lgsm/config-default/config-lgsm/ts3server/_default.cfg
index 87cd0dc31..8b6f0bc33 100644
--- a/lgsm/config-default/config-lgsm/ts3server/_default.cfg
+++ b/lgsm/config-default/config-lgsm/ts3server/_default.cfg
@@ -60,6 +60,12 @@ ntfypassword=""
ntfypriority=""
ntfytags=""
+# Matrix Alerts | https://docs.linuxgsm.com/alerts/matrix
+matrixalert="off"
+matrixhomeserver="matrix.org"
+matrixtoken="accesstoken"
+matrixroom=""
+
# Pushbullet Alerts | https://docs.linuxgsm.com/alerts/pushbullet
pushbulletalert="off"
pushbullettoken="accesstoken"
@@ -89,6 +95,10 @@ telegramthreadid=""
telegramsilentnotification="false"
curlcustomstring=""
+## Stop | https://docs.linuxgsm.com/commands/start-stop-restart
+stoponlyifnoplayers="off"
+stoponlyifnoplayersallcommands="on"
+
## Updating | https://docs.linuxgsm.com/commands/update
updateonstart="off"
diff --git a/lgsm/config-default/config-lgsm/tsserver/_default.cfg b/lgsm/config-default/config-lgsm/tsserver/_default.cfg
index b3e9799d6..8ade847bd 100644
--- a/lgsm/config-default/config-lgsm/tsserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/tsserver/_default.cfg
@@ -67,6 +67,12 @@ ntfypassword=""
ntfypriority=""
ntfytags=""
+# Matrix Alerts | https://docs.linuxgsm.com/alerts/matrix
+matrixalert="off"
+matrixhomeserver="matrix.org"
+matrixtoken="accesstoken"
+matrixroom=""
+
# Pushbullet Alerts | https://docs.linuxgsm.com/alerts/pushbullet
pushbulletalert="off"
pushbullettoken="accesstoken"
@@ -96,6 +102,10 @@ telegramthreadid=""
telegramsilentnotification="false"
curlcustomstring=""
+## Stop | https://docs.linuxgsm.com/commands/start-stop-restart
+stoponlyifnoplayers="off"
+stoponlyifnoplayersallcommands="on"
+
## Updating | https://docs.linuxgsm.com/commands/update
updateonstart="off"
diff --git a/lgsm/config-default/config-lgsm/tuserver/_default.cfg b/lgsm/config-default/config-lgsm/tuserver/_default.cfg
index a4e7acaf8..3597cac15 100644
--- a/lgsm/config-default/config-lgsm/tuserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/tuserver/_default.cfg
@@ -70,6 +70,12 @@ ntfypassword=""
ntfypriority=""
ntfytags=""
+# Matrix Alerts | https://docs.linuxgsm.com/alerts/matrix
+matrixalert="off"
+matrixhomeserver="matrix.org"
+matrixtoken="accesstoken"
+matrixroom=""
+
# Pushbullet Alerts | https://docs.linuxgsm.com/alerts/pushbullet
pushbulletalert="off"
pushbullettoken="accesstoken"
@@ -99,6 +105,10 @@ telegramthreadid=""
telegramsilentnotification="false"
curlcustomstring=""
+## Stop | https://docs.linuxgsm.com/commands/start-stop-restart
+stoponlyifnoplayers="off"
+stoponlyifnoplayersallcommands="on"
+
## Updating | https://docs.linuxgsm.com/commands/update
updateonstart="off"
diff --git a/lgsm/config-default/config-lgsm/twserver/_default.cfg b/lgsm/config-default/config-lgsm/twserver/_default.cfg
index ea512f271..d423126ab 100644
--- a/lgsm/config-default/config-lgsm/twserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/twserver/_default.cfg
@@ -67,6 +67,12 @@ ntfypassword=""
ntfypriority=""
ntfytags=""
+# Matrix Alerts | https://docs.linuxgsm.com/alerts/matrix
+matrixalert="off"
+matrixhomeserver="matrix.org"
+matrixtoken="accesstoken"
+matrixroom=""
+
# Pushbullet Alerts | https://docs.linuxgsm.com/alerts/pushbullet
pushbulletalert="off"
pushbullettoken="accesstoken"
@@ -96,6 +102,10 @@ telegramthreadid=""
telegramsilentnotification="false"
curlcustomstring=""
+## Stop | https://docs.linuxgsm.com/commands/start-stop-restart
+stoponlyifnoplayers="off"
+stoponlyifnoplayersallcommands="on"
+
## Updating | https://docs.linuxgsm.com/commands/update
updateonstart="off"
diff --git a/lgsm/config-default/config-lgsm/untserver/_default.cfg b/lgsm/config-default/config-lgsm/untserver/_default.cfg
index 7dd97e269..5ae3612fe 100644
--- a/lgsm/config-default/config-lgsm/untserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/untserver/_default.cfg
@@ -74,6 +74,12 @@ ntfypassword=""
ntfypriority=""
ntfytags=""
+# Matrix Alerts | https://docs.linuxgsm.com/alerts/matrix
+matrixalert="off"
+matrixhomeserver="matrix.org"
+matrixtoken="accesstoken"
+matrixroom=""
+
# Pushbullet Alerts | https://docs.linuxgsm.com/alerts/pushbullet
pushbulletalert="off"
pushbullettoken="accesstoken"
@@ -103,6 +109,10 @@ telegramthreadid=""
telegramsilentnotification="false"
curlcustomstring=""
+## Stop | https://docs.linuxgsm.com/commands/start-stop-restart
+stoponlyifnoplayers="off"
+stoponlyifnoplayersallcommands="on"
+
## Updating | https://docs.linuxgsm.com/commands/update
updateonstart="off"
diff --git a/lgsm/config-default/config-lgsm/ut2k4server/_default.cfg b/lgsm/config-default/config-lgsm/ut2k4server/_default.cfg
index 37b219ece..40803ef4d 100644
--- a/lgsm/config-default/config-lgsm/ut2k4server/_default.cfg
+++ b/lgsm/config-default/config-lgsm/ut2k4server/_default.cfg
@@ -64,6 +64,12 @@ ntfypassword=""
ntfypriority=""
ntfytags=""
+# Matrix Alerts | https://docs.linuxgsm.com/alerts/matrix
+matrixalert="off"
+matrixhomeserver="matrix.org"
+matrixtoken="accesstoken"
+matrixroom=""
+
# Pushbullet Alerts | https://docs.linuxgsm.com/alerts/pushbullet
pushbulletalert="off"
pushbullettoken="accesstoken"
@@ -93,6 +99,10 @@ telegramthreadid=""
telegramsilentnotification="false"
curlcustomstring=""
+## Stop | https://docs.linuxgsm.com/commands/start-stop-restart
+stoponlyifnoplayers="off"
+stoponlyifnoplayersallcommands="on"
+
## Backup | https://docs.linuxgsm.com/commands/backup
maxbackups="4"
maxbackupdays="30"
diff --git a/lgsm/config-default/config-lgsm/ut3server/_default.cfg b/lgsm/config-default/config-lgsm/ut3server/_default.cfg
index 1d7ecf269..031a2b047 100644
--- a/lgsm/config-default/config-lgsm/ut3server/_default.cfg
+++ b/lgsm/config-default/config-lgsm/ut3server/_default.cfg
@@ -80,6 +80,12 @@ ntfypassword=""
ntfypriority=""
ntfytags=""
+# Matrix Alerts | https://docs.linuxgsm.com/alerts/matrix
+matrixalert="off"
+matrixhomeserver="matrix.org"
+matrixtoken="accesstoken"
+matrixroom=""
+
# Pushbullet Alerts | https://docs.linuxgsm.com/alerts/pushbullet
pushbulletalert="off"
pushbullettoken="accesstoken"
@@ -109,6 +115,10 @@ telegramthreadid=""
telegramsilentnotification="false"
curlcustomstring=""
+## Stop | https://docs.linuxgsm.com/commands/start-stop-restart
+stoponlyifnoplayers="off"
+stoponlyifnoplayersallcommands="on"
+
## Backup | https://docs.linuxgsm.com/commands/backup
maxbackups="4"
maxbackupdays="30"
diff --git a/lgsm/config-default/config-lgsm/ut99server/_default.cfg b/lgsm/config-default/config-lgsm/ut99server/_default.cfg
index 62b4abc57..c1506ad38 100644
--- a/lgsm/config-default/config-lgsm/ut99server/_default.cfg
+++ b/lgsm/config-default/config-lgsm/ut99server/_default.cfg
@@ -64,6 +64,12 @@ ntfypassword=""
ntfypriority=""
ntfytags=""
+# Matrix Alerts | https://docs.linuxgsm.com/alerts/matrix
+matrixalert="off"
+matrixhomeserver="matrix.org"
+matrixtoken="accesstoken"
+matrixroom=""
+
# Pushbullet Alerts | https://docs.linuxgsm.com/alerts/pushbullet
pushbulletalert="off"
pushbullettoken="accesstoken"
@@ -93,6 +99,10 @@ telegramthreadid=""
telegramsilentnotification="false"
curlcustomstring=""
+## Stop | https://docs.linuxgsm.com/commands/start-stop-restart
+stoponlyifnoplayers="off"
+stoponlyifnoplayersallcommands="on"
+
## Backup | https://docs.linuxgsm.com/commands/backup
maxbackups="4"
maxbackupdays="30"
diff --git a/lgsm/config-default/config-lgsm/utserver/_default.cfg b/lgsm/config-default/config-lgsm/utserver/_default.cfg
index 401cded1a..e26b79e6e 100644
--- a/lgsm/config-default/config-lgsm/utserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/utserver/_default.cfg
@@ -68,6 +68,12 @@ ntfypassword=""
ntfypriority=""
ntfytags=""
+# Matrix Alerts | https://docs.linuxgsm.com/alerts/matrix
+matrixalert="off"
+matrixhomeserver="matrix.org"
+matrixtoken="accesstoken"
+matrixroom=""
+
# Pushbullet Alerts | https://docs.linuxgsm.com/alerts/pushbullet
pushbulletalert="off"
pushbullettoken="accesstoken"
@@ -97,6 +103,10 @@ telegramthreadid=""
telegramsilentnotification="false"
curlcustomstring=""
+## Stop | https://docs.linuxgsm.com/commands/start-stop-restart
+stoponlyifnoplayers="off"
+stoponlyifnoplayersallcommands="on"
+
## Backup | https://docs.linuxgsm.com/commands/backup
maxbackups="4"
maxbackupdays="30"
diff --git a/lgsm/config-default/config-lgsm/vhserver/_default.cfg b/lgsm/config-default/config-lgsm/vhserver/_default.cfg
index 8380e7c16..a1691b839 100644
--- a/lgsm/config-default/config-lgsm/vhserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/vhserver/_default.cfg
@@ -101,6 +101,12 @@ ntfypassword=""
ntfypriority=""
ntfytags=""
+# Matrix Alerts | https://docs.linuxgsm.com/alerts/matrix
+matrixalert="off"
+matrixhomeserver="matrix.org"
+matrixtoken="accesstoken"
+matrixroom=""
+
# Pushbullet Alerts | https://docs.linuxgsm.com/alerts/pushbullet
pushbulletalert="off"
pushbullettoken="accesstoken"
@@ -130,6 +136,10 @@ telegramthreadid=""
telegramsilentnotification="false"
curlcustomstring=""
+## Stop | https://docs.linuxgsm.com/commands/start-stop-restart
+stoponlyifnoplayers="off"
+stoponlyifnoplayersallcommands="on"
+
## Updating | https://docs.linuxgsm.com/commands/update
updateonstart="off"
diff --git a/lgsm/config-default/config-lgsm/vintsserver/_default.cfg b/lgsm/config-default/config-lgsm/vintsserver/_default.cfg
index ed57b6d84..47dcfb3d0 100644
--- a/lgsm/config-default/config-lgsm/vintsserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/vintsserver/_default.cfg
@@ -64,6 +64,12 @@ ntfypassword=""
ntfypriority=""
ntfytags=""
+# Matrix Alerts | https://docs.linuxgsm.com/alerts/matrix
+matrixalert="off"
+matrixhomeserver="matrix.org"
+matrixtoken="accesstoken"
+matrixroom=""
+
# Pushbullet Alerts | https://docs.linuxgsm.com/alerts/pushbullet
pushbulletalert="off"
pushbullettoken="accesstoken"
@@ -93,6 +99,10 @@ telegramthreadid=""
telegramsilentnotification="false"
curlcustomstring=""
+## Stop | https://docs.linuxgsm.com/commands/start-stop-restart
+stoponlyifnoplayers="off"
+stoponlyifnoplayersallcommands="on"
+
## Updating | https://docs.linuxgsm.com/commands/update
updateonstart="off"
diff --git a/lgsm/config-default/config-lgsm/vpmcserver/_default.cfg b/lgsm/config-default/config-lgsm/vpmcserver/_default.cfg
index 6bccc92fd..67715860f 100644
--- a/lgsm/config-default/config-lgsm/vpmcserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/vpmcserver/_default.cfg
@@ -67,6 +67,12 @@ ntfypassword=""
ntfypriority=""
ntfytags=""
+# Matrix Alerts | https://docs.linuxgsm.com/alerts/matrix
+matrixalert="off"
+matrixhomeserver="matrix.org"
+matrixtoken="accesstoken"
+matrixroom=""
+
# Pushbullet Alerts | https://docs.linuxgsm.com/alerts/pushbullet
pushbulletalert="off"
pushbullettoken="accesstoken"
@@ -96,6 +102,10 @@ telegramthreadid=""
telegramsilentnotification="false"
curlcustomstring=""
+## Stop | https://docs.linuxgsm.com/commands/start-stop-restart
+stoponlyifnoplayers="off"
+stoponlyifnoplayersallcommands="on"
+
## Updating | https://docs.linuxgsm.com/commands/update
updateonstart="off"
diff --git a/lgsm/config-default/config-lgsm/vsserver/_default.cfg b/lgsm/config-default/config-lgsm/vsserver/_default.cfg
index 9414c6978..d640347ac 100644
--- a/lgsm/config-default/config-lgsm/vsserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/vsserver/_default.cfg
@@ -67,6 +67,12 @@ ntfypassword=""
ntfypriority=""
ntfytags=""
+# Matrix Alerts | https://docs.linuxgsm.com/alerts/matrix
+matrixalert="off"
+matrixhomeserver="matrix.org"
+matrixtoken="accesstoken"
+matrixroom=""
+
# Pushbullet Alerts | https://docs.linuxgsm.com/alerts/pushbullet
pushbulletalert="off"
pushbullettoken="accesstoken"
@@ -96,6 +102,10 @@ telegramthreadid=""
telegramsilentnotification="false"
curlcustomstring=""
+## Stop | https://docs.linuxgsm.com/commands/start-stop-restart
+stoponlyifnoplayers="off"
+stoponlyifnoplayersallcommands="on"
+
## Updating | https://docs.linuxgsm.com/commands/update
updateonstart="off"
diff --git a/lgsm/config-default/config-lgsm/wetserver/_default.cfg b/lgsm/config-default/config-lgsm/wetserver/_default.cfg
index fdd42aaf9..819390dc0 100644
--- a/lgsm/config-default/config-lgsm/wetserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/wetserver/_default.cfg
@@ -60,6 +60,12 @@ ntfypassword=""
ntfypriority=""
ntfytags=""
+# Matrix Alerts | https://docs.linuxgsm.com/alerts/matrix
+matrixalert="off"
+matrixhomeserver="matrix.org"
+matrixtoken="accesstoken"
+matrixroom=""
+
# Pushbullet Alerts | https://docs.linuxgsm.com/alerts/pushbullet
pushbulletalert="off"
pushbullettoken="accesstoken"
@@ -89,6 +95,10 @@ telegramthreadid=""
telegramsilentnotification="false"
curlcustomstring=""
+## Stop | https://docs.linuxgsm.com/commands/start-stop-restart
+stoponlyifnoplayers="off"
+stoponlyifnoplayersallcommands="on"
+
## Backup | https://docs.linuxgsm.com/commands/backup
maxbackups="4"
maxbackupdays="30"
diff --git a/lgsm/config-default/config-lgsm/wfserver/_default.cfg b/lgsm/config-default/config-lgsm/wfserver/_default.cfg
index adde08321..ab0c88e30 100644
--- a/lgsm/config-default/config-lgsm/wfserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/wfserver/_default.cfg
@@ -65,6 +65,12 @@ ntfypassword=""
ntfypriority=""
ntfytags=""
+# Matrix Alerts | https://docs.linuxgsm.com/alerts/matrix
+matrixalert="off"
+matrixhomeserver="matrix.org"
+matrixtoken="accesstoken"
+matrixroom=""
+
# Pushbullet Alerts | https://docs.linuxgsm.com/alerts/pushbullet
pushbulletalert="off"
pushbullettoken="accesstoken"
@@ -94,6 +100,10 @@ telegramthreadid=""
telegramsilentnotification="false"
curlcustomstring=""
+## Stop | https://docs.linuxgsm.com/commands/start-stop-restart
+stoponlyifnoplayers="off"
+stoponlyifnoplayersallcommands="on"
+
## Updating | https://docs.linuxgsm.com/commands/update
updateonstart="off"
diff --git a/lgsm/config-default/config-lgsm/wmcserver/_default.cfg b/lgsm/config-default/config-lgsm/wmcserver/_default.cfg
index d5ff2893f..4b2a25806 100644
--- a/lgsm/config-default/config-lgsm/wmcserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/wmcserver/_default.cfg
@@ -67,6 +67,12 @@ ntfypassword=""
ntfypriority=""
ntfytags=""
+# Matrix Alerts | https://docs.linuxgsm.com/alerts/matrix
+matrixalert="off"
+matrixhomeserver="matrix.org"
+matrixtoken="accesstoken"
+matrixroom=""
+
# Pushbullet Alerts | https://docs.linuxgsm.com/alerts/pushbullet
pushbulletalert="off"
pushbullettoken="accesstoken"
@@ -96,6 +102,10 @@ telegramthreadid=""
telegramsilentnotification="false"
curlcustomstring=""
+## Stop | https://docs.linuxgsm.com/commands/start-stop-restart
+stoponlyifnoplayers="off"
+stoponlyifnoplayersallcommands="on"
+
## Updating | https://docs.linuxgsm.com/commands/update
updateonstart="off"
diff --git a/lgsm/config-default/config-lgsm/wurmserver/_default.cfg b/lgsm/config-default/config-lgsm/wurmserver/_default.cfg
index d65df817f..a57da3c36 100644
--- a/lgsm/config-default/config-lgsm/wurmserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/wurmserver/_default.cfg
@@ -104,6 +104,12 @@ ntfypassword=""
ntfypriority=""
ntfytags=""
+# Matrix Alerts | https://docs.linuxgsm.com/alerts/matrix
+matrixalert="off"
+matrixhomeserver="matrix.org"
+matrixtoken="accesstoken"
+matrixroom=""
+
# Pushbullet Alerts | https://docs.linuxgsm.com/alerts/pushbullet
pushbulletalert="off"
pushbullettoken="accesstoken"
@@ -133,6 +139,10 @@ telegramthreadid=""
telegramsilentnotification="false"
curlcustomstring=""
+## Stop | https://docs.linuxgsm.com/commands/start-stop-restart
+stoponlyifnoplayers="off"
+stoponlyifnoplayersallcommands="on"
+
## Updating | https://docs.linuxgsm.com/commands/update
updateonstart="off"
diff --git a/lgsm/config-default/config-lgsm/xntserver/_default.cfg b/lgsm/config-default/config-lgsm/xntserver/_default.cfg
index d7b85f58a..da371512e 100644
--- a/lgsm/config-default/config-lgsm/xntserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/xntserver/_default.cfg
@@ -62,6 +62,12 @@ ntfypassword=""
ntfypriority=""
ntfytags=""
+# Matrix Alerts | https://docs.linuxgsm.com/alerts/matrix
+matrixalert="off"
+matrixhomeserver="matrix.org"
+matrixtoken="accesstoken"
+matrixroom=""
+
# Pushbullet Alerts | https://docs.linuxgsm.com/alerts/pushbullet
pushbulletalert="off"
pushbullettoken="accesstoken"
diff --git a/lgsm/config-default/config-lgsm/zmrserver/_default.cfg b/lgsm/config-default/config-lgsm/zmrserver/_default.cfg
index b2c61b9fd..262487bdb 100644
--- a/lgsm/config-default/config-lgsm/zmrserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/zmrserver/_default.cfg
@@ -68,6 +68,12 @@ ntfypassword=""
ntfypriority=""
ntfytags=""
+# Matrix Alerts | https://docs.linuxgsm.com/alerts/matrix
+matrixalert="off"
+matrixhomeserver="matrix.org"
+matrixtoken="accesstoken"
+matrixroom=""
+
# Pushbullet Alerts | https://docs.linuxgsm.com/alerts/pushbullet
pushbulletalert="off"
pushbullettoken="accesstoken"
@@ -97,6 +103,10 @@ telegramthreadid=""
telegramsilentnotification="false"
curlcustomstring=""
+## Stop | https://docs.linuxgsm.com/commands/start-stop-restart
+stoponlyifnoplayers="off"
+stoponlyifnoplayersallcommands="on"
+
## Updating | https://docs.linuxgsm.com/commands/update
updateonstart="off"
diff --git a/lgsm/config-default/config-lgsm/zpsserver/_default.cfg b/lgsm/config-default/config-lgsm/zpsserver/_default.cfg
index c43b008b5..456a61765 100644
--- a/lgsm/config-default/config-lgsm/zpsserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/zpsserver/_default.cfg
@@ -73,6 +73,12 @@ ntfypassword=""
ntfypriority=""
ntfytags=""
+# Matrix Alerts | https://docs.linuxgsm.com/alerts/matrix
+matrixalert="off"
+matrixhomeserver="matrix.org"
+matrixtoken="accesstoken"
+matrixroom=""
+
# Pushbullet Alerts | https://docs.linuxgsm.com/alerts/pushbullet
pushbulletalert="off"
pushbullettoken="accesstoken"
@@ -102,6 +108,10 @@ telegramthreadid=""
telegramsilentnotification="false"
curlcustomstring=""
+## Stop | https://docs.linuxgsm.com/commands/start-stop-restart
+stoponlyifnoplayers="off"
+stoponlyifnoplayersallcommands="on"
+
## Updating | https://docs.linuxgsm.com/commands/update
updateonstart="off"
diff --git a/lgsm/data/almalinux-8.csv b/lgsm/data/almalinux-8.csv
index 2405a4b3e..e02ca7858 100644
--- a/lgsm/data/almalinux-8.csv
+++ b/lgsm/data/almalinux-8.csv
@@ -58,6 +58,7 @@ hz
ins
inss
ios
+jbep3
jc2
jc3
jk2
@@ -67,6 +68,7 @@ l4d
l4d2
mc,java-21-openjdk
mcb,libnsl
+mcv
mh
mohaa,compat-libstdc++-33.i686
mta,ncurses-compat-libs,libxml2
@@ -82,7 +84,6 @@ opfor
pc
pc2
pmc,java-21-openjdk
-ps,GConf2
pvkii
pvr,libcxx
pw
@@ -109,12 +110,14 @@ sm,telnet,expect
sof2
sol
squad
+squad44
st,libxml2
stn
sven
terraria
tf
tf2,libcurl.i686
+tf2c,libcurl.i686
tfc
ti
ts
diff --git a/lgsm/data/almalinux-9.csv b/lgsm/data/almalinux-9.csv
index 069e8e437..5a6d996e7 100644
--- a/lgsm/data/almalinux-9.csv
+++ b/lgsm/data/almalinux-9.csv
@@ -58,6 +58,7 @@ hz
ins
inss
ios
+jbep3
jc2
jc3
jk2
@@ -67,6 +68,7 @@ l4d
l4d2
mc,java-21-openjdk
mcb,libnsl
+mcv
mh
mohaa,compat-libstdc++-33.i686
mta,ncurses-compat-libs,libxml2
@@ -82,7 +84,6 @@ opfor
pc
pc2
pmc,java-21-openjdk
-ps,GConf2
pvkii
pvr,libcxx
pw
@@ -109,12 +110,14 @@ sm,telnet,expect
sof2
sol
squad
+squad44
st,libxml2
stn
sven
terraria
tf
tf2,libcurl.i686
+tf2c,libcurl.i686
tfc
ti
ts
diff --git a/lgsm/data/centos-7.csv b/lgsm/data/centos-7.csv
index 39af5868d..c5632722e 100644
--- a/lgsm/data/centos-7.csv
+++ b/lgsm/data/centos-7.csv
@@ -58,6 +58,7 @@ hz
ins
inss
ios
+jbep3
jc2
jc3
jk2
@@ -67,6 +68,7 @@ l4d
l4d2
mc,java-21-openjdk
mcb,libnsl
+mcv
mh
mohaa,compat-libstdc++-33.i686
mta,ncurses-libs,libxml2
@@ -82,7 +84,6 @@ opfor
pc
pc2
pmc,java-11-openjdk
-ps,GConf2
pvkii
pvr,libcxx
pw
@@ -109,12 +110,14 @@ sm,telnet,expect
sof2
sol
squad
+squad44
st,libxml2
stn
sven
terraria
tf
tf2,libcurl.i686
+tf2c,libcurl.i686
tfc
ti
ts
diff --git a/lgsm/data/centos-8.csv b/lgsm/data/centos-8.csv
index bcaf1e31d..0b0b766d0 100644
--- a/lgsm/data/centos-8.csv
+++ b/lgsm/data/centos-8.csv
@@ -58,6 +58,7 @@ hz
ins
inss
ios
+jbep3
jc2
jc3
jk2
@@ -67,6 +68,7 @@ l4d
l4d2
mc,java-21-openjdk
mcb,libnsl
+mcv
mh
mohaa,compat-libstdc++-33.i686
mta,ncurses-compat-libs,libxml2
@@ -82,7 +84,6 @@ opfor
pc
pc2
pmc,java-17-openjdk
-ps,GConf2
pvkii
pvr,libcxx
pw
@@ -109,12 +110,14 @@ sm,telnet,expect
sof2
sol
squad
+squad44
st,libxml2
stn
sven
terraria
tf
tf2,libcurl.i686
+tf2c,libcurl.i686
tfc
ti
ts
diff --git a/lgsm/data/centos-9.csv b/lgsm/data/centos-9.csv
index 446a55ebb..fd9c0fa39 100644
--- a/lgsm/data/centos-9.csv
+++ b/lgsm/data/centos-9.csv
@@ -58,6 +58,7 @@ hz
ins
inss
ios
+jbep3
jc2
jc3
jk2
@@ -67,6 +68,7 @@ l4d
l4d2
mc,java-17-openjdk
mcb,libnsl
+mcv
mh
mohaa,compat-libstdc++-33.i686
mta,ncurses-compat-libs,libxml2
@@ -82,7 +84,6 @@ opfor
pc
pc2
pmc,java-17-openjdk
-ps,GConf2
pvkii
pvr,libcxx
pw
@@ -109,12 +110,14 @@ sm,telnet,expect
sof2
sol
squad
+squad44
st,libxml2
stn
sven
terraria
tf
tf2,libcurl.i686
+tf2c,libcurl.i686
tfc
ti
ts
diff --git a/lgsm/data/debian-10.csv b/lgsm/data/debian-10.csv
index e0c6ea7e4..5b8d73a06 100644
--- a/lgsm/data/debian-10.csv
+++ b/lgsm/data/debian-10.csv
@@ -57,6 +57,7 @@ hz
ins
inss
ios
+jbep3
jc2
jc3
jk2
@@ -66,6 +67,7 @@ l4d
l4d2
mc,openjdk-11-jre
mcb
+mcv
mh
mohaa,libstdc++5:i386
mta,libncursesw5,libxml2-utils
@@ -115,6 +117,7 @@ sven,zlib1g:i386
terraria
tf
tf2,libcurl4-gnutls-dev:i386
+tf2c,libcurl4-gnutls-dev:i386
tfc
ti
ts
diff --git a/lgsm/data/debian-11.csv b/lgsm/data/debian-11.csv
index 0d2652293..adba97d27 100644
--- a/lgsm/data/debian-11.csv
+++ b/lgsm/data/debian-11.csv
@@ -58,6 +58,7 @@ hz
ins
inss
ios
+jbep3
jc2
jc3
jk2
@@ -67,6 +68,7 @@ l4d
l4d2
mc,openjdk-17-jre
mcb
+mcv
mh
mohaa,libstdc++5:i386
mta,libncursesw5,libxml2-utils
@@ -115,6 +117,7 @@ sven,zlib1g:i386
terraria
tf
tf2,libcurl4-gnutls-dev:i386
+tf2c,libcurl4-gnutls-dev:i386
tfc
ti
ts
diff --git a/lgsm/data/debian-12.csv b/lgsm/data/debian-12.csv
index e67a822b7..40e325b6c 100644
--- a/lgsm/data/debian-12.csv
+++ b/lgsm/data/debian-12.csv
@@ -58,6 +58,7 @@ hz
ins
inss
ios
+jbep3
jc2
jc3
jk2
@@ -67,6 +68,7 @@ l4d
l4d2
mc,openjdk-17-jre
mcb
+mcv
mh
mohaa,libstdc++5:i386
mta,libncursesw5,libxml2-utils
@@ -115,6 +117,7 @@ sven,libssl3:i386,zlib1g:i386
terraria
tf
tf2,libcurl4-gnutls-dev:i386
+tf2c,libcurl4-gnutls-dev:i386
tfc
ti
ts
@@ -127,7 +130,7 @@ ut2k4
ut3
ut99
vh,libc6-dev,libatomic1,libpulse-dev
-vints,dotnet-runtime-8.0
+vints,dotnet-runtime-10.0
vpmc,openjdk-17-jre
vs
wet
diff --git a/lgsm/data/debian-13.csv b/lgsm/data/debian-13.csv
index e7a622a7e..94c6cf1ae 100644
--- a/lgsm/data/debian-13.csv
+++ b/lgsm/data/debian-13.csv
@@ -16,7 +16,7 @@ bfv,libncurses5:i386,libstdc++5:i386
bmdm,libncurses5:i386
bo
bs
-bt,libicu-dev,dos2unix,libxml2-utils
+bt,libicu-dev,dos2unix,libxml2
btl
cc
ck,xvfb,libxi6
@@ -58,6 +58,7 @@ hz
ins
inss
ios
+jbep3
jc2
jc3
jk2
@@ -67,9 +68,10 @@ l4d
l4d2
mc,openjdk-25-jre
mcb
+mcv
mh
mohaa,libstdc++5:i386
-mta,libncursesw5,libxml2-utils
+mta,libncursesw6,libxml2
nd
nec
nmrih
@@ -102,19 +104,20 @@ sb
sbots
scpsl,mono-complete,libicu76
scpslsm,mono-complete
-sdtd,telnet,expect,libxml2-utils
+sdtd,telnet,expect,libxml2
sf
sfc
sm,telnet,expect
sof2
sol
squad
-st,libxml2-utils
+st,libxml2
stn
sven,libssl3:i386,zlib1g:i386
terraria
tf
tf2,libcurl4-gnutls-dev:i386
+tf2c,libcurl4-gnutls-dev:i386
tfc
ti
ts
@@ -127,12 +130,12 @@ ut2k4
ut3
ut99
vh,libc6-dev,libatomic1,libpulse-dev
-vints,dotnet-runtime-8.0
-vpmc,openjdk-21-jre
+vints,dotnet-runtime-10.0
+vpmc,openjdk-25-jre
vs
wet
wf
-wmc,openjdk21-jre
+wmc,openjdk-25-jre
wurm,xvfb
xnt
zmr
diff --git a/lgsm/data/debian-9.csv b/lgsm/data/debian-9.csv
index a111c6800..c0e990961 100644
--- a/lgsm/data/debian-9.csv
+++ b/lgsm/data/debian-9.csv
@@ -58,6 +58,7 @@ hz
ins
inss
ios
+jbep3
jc2
jc3
jk2
@@ -67,6 +68,7 @@ l4d
l4d2
mc,openjdk-8-jre
mcb
+mcv
mh
mohaa,libstdc++5:i386
mta,libncursesw5,libxml2-utils
@@ -115,6 +117,7 @@ sven,zlib1g:i386
terraria
tf
tf2,libcurl4-gnutls-dev:i386
+tf2c,libcurl4-gnutls-dev:i386
tfc
ti
ts
diff --git a/lgsm/data/gameicons/jbep3-icon.png b/lgsm/data/gameicons/jbep3-icon.png
new file mode 100644
index 000000000..609a0345f
Binary files /dev/null and b/lgsm/data/gameicons/jbep3-icon.png differ
diff --git a/lgsm/data/gameicons/mcv-icon.png b/lgsm/data/gameicons/mcv-icon.png
new file mode 100644
index 000000000..fefcc2346
Binary files /dev/null and b/lgsm/data/gameicons/mcv-icon.png differ
diff --git a/lgsm/data/gameicons/ps-icon.png b/lgsm/data/gameicons/ps-icon.png
deleted file mode 100644
index afe81e823..000000000
Binary files a/lgsm/data/gameicons/ps-icon.png and /dev/null differ
diff --git a/lgsm/data/gameicons/squad44-icon.png b/lgsm/data/gameicons/squad44-icon.png
new file mode 100644
index 000000000..0d2a6fc8e
Binary files /dev/null and b/lgsm/data/gameicons/squad44-icon.png differ
diff --git a/lgsm/data/gameicons/tf2c-icon.png b/lgsm/data/gameicons/tf2c-icon.png
new file mode 100644
index 000000000..f466347a1
Binary files /dev/null and b/lgsm/data/gameicons/tf2c-icon.png differ
diff --git a/lgsm/data/rhel-7.csv b/lgsm/data/rhel-7.csv
index 26420d76f..d7801771c 100644
--- a/lgsm/data/rhel-7.csv
+++ b/lgsm/data/rhel-7.csv
@@ -59,6 +59,7 @@ hz
ins
inss
ios
+jbep3
jc2
jc3
jk2
@@ -68,6 +69,7 @@ l4d
l4d2
mc,java-11-openjdk
mcb,libnsl
+mcv
mh
mohaa,compat-libstdc++-33.i686
mta,ncurses-libs,libxml2
@@ -83,7 +85,6 @@ opfor
pc
pc2
pmc,java-11-openjdk
-ps,GConf2
pvkii
pvr,libcxx
pz,java-11-openjdk rng-tools
@@ -109,12 +110,14 @@ sm,telnet,expect
sof2
sol
squad
+squad44
st,libxml2
stn
sven
terraria
tf
tf2,libcurl.i686
+tf2c,libcurl.i686
tfc
ti
ts
diff --git a/lgsm/data/rhel-8.csv b/lgsm/data/rhel-8.csv
index 9515a12ac..d65424265 100644
--- a/lgsm/data/rhel-8.csv
+++ b/lgsm/data/rhel-8.csv
@@ -58,6 +58,7 @@ hz
ins
inss
ios
+jbep3
jc2
jc3
jk2
@@ -67,6 +68,7 @@ l4d
l4d2
mc,java-21-openjdk
mcb,libnsl
+mcv
mh
mohaa,compat-libstdc++-33.i686
mta,ncurses-compat-libs,libxml2
@@ -82,7 +84,6 @@ opfor
pc
pc2
pmc,java-21-openjdk
-ps,GConf2
pvkii
pvr,libcxx
pw
@@ -109,12 +110,14 @@ sm,telnet,expect
sof2
sol
squad
+squad44
st,libxml2
stn
sven
terraria
tf
tf2,libcurl.i686
+tf2c,libcurl.i686
tfc
ti
ts
diff --git a/lgsm/data/rhel-9.csv b/lgsm/data/rhel-9.csv
index 069e8e437..5a6d996e7 100644
--- a/lgsm/data/rhel-9.csv
+++ b/lgsm/data/rhel-9.csv
@@ -58,6 +58,7 @@ hz
ins
inss
ios
+jbep3
jc2
jc3
jk2
@@ -67,6 +68,7 @@ l4d
l4d2
mc,java-21-openjdk
mcb,libnsl
+mcv
mh
mohaa,compat-libstdc++-33.i686
mta,ncurses-compat-libs,libxml2
@@ -82,7 +84,6 @@ opfor
pc
pc2
pmc,java-21-openjdk
-ps,GConf2
pvkii
pvr,libcxx
pw
@@ -109,12 +110,14 @@ sm,telnet,expect
sof2
sol
squad
+squad44
st,libxml2
stn
sven
terraria
tf
tf2,libcurl.i686
+tf2c,libcurl.i686
tfc
ti
ts
diff --git a/lgsm/data/rocky-8.csv b/lgsm/data/rocky-8.csv
index 9515a12ac..d65424265 100644
--- a/lgsm/data/rocky-8.csv
+++ b/lgsm/data/rocky-8.csv
@@ -58,6 +58,7 @@ hz
ins
inss
ios
+jbep3
jc2
jc3
jk2
@@ -67,6 +68,7 @@ l4d
l4d2
mc,java-21-openjdk
mcb,libnsl
+mcv
mh
mohaa,compat-libstdc++-33.i686
mta,ncurses-compat-libs,libxml2
@@ -82,7 +84,6 @@ opfor
pc
pc2
pmc,java-21-openjdk
-ps,GConf2
pvkii
pvr,libcxx
pw
@@ -109,12 +110,14 @@ sm,telnet,expect
sof2
sol
squad
+squad44
st,libxml2
stn
sven
terraria
tf
tf2,libcurl.i686
+tf2c,libcurl.i686
tfc
ti
ts
diff --git a/lgsm/data/rocky-9.csv b/lgsm/data/rocky-9.csv
index 069e8e437..5a6d996e7 100644
--- a/lgsm/data/rocky-9.csv
+++ b/lgsm/data/rocky-9.csv
@@ -58,6 +58,7 @@ hz
ins
inss
ios
+jbep3
jc2
jc3
jk2
@@ -67,6 +68,7 @@ l4d
l4d2
mc,java-21-openjdk
mcb,libnsl
+mcv
mh
mohaa,compat-libstdc++-33.i686
mta,ncurses-compat-libs,libxml2
@@ -82,7 +84,6 @@ opfor
pc
pc2
pmc,java-21-openjdk
-ps,GConf2
pvkii
pvr,libcxx
pw
@@ -109,12 +110,14 @@ sm,telnet,expect
sof2
sol
squad
+squad44
st,libxml2
stn
sven
terraria
tf
tf2,libcurl.i686
+tf2c,libcurl.i686
tfc
ti
ts
diff --git a/lgsm/data/serverlist.csv b/lgsm/data/serverlist.csv
index 2f964a30d..3ddc013c3 100644
--- a/lgsm/data/serverlist.csv
+++ b/lgsm/data/serverlist.csv
@@ -57,6 +57,7 @@ hz,hzserver,Humanitz,ubuntu-24.04
ins,insserver,Insurgency,ubuntu-24.04
inss,inssserver,Insurgency: Sandstorm,ubuntu-24.04
ios,iosserver,IOSoccer,ubuntu-24.04
+jbep3,jbep3server,Jabroni Brawl: Episode 3,ubuntu-24.04
jc2,jc2server,Just Cause 2,ubuntu-24.04
jc3,jc3server,Just Cause 3,ubuntu-24.04
jk2,jk2server,Jedi Knight II: Jedi Outcast,ubuntu-24.04
@@ -66,6 +67,7 @@ l4d,l4dserver,Left 4 Dead,ubuntu-24.04
l4d2,l4d2server,Left 4 Dead 2,ubuntu-24.04
mc,mcserver,Minecraft,ubuntu-24.04
mcb,mcbserver,Minecraft Bedrock,ubuntu-24.04
+mcv,mcvserver,Military Conflict: Vietnam,ubuntu-24.04
mh,mhserver,MORDHAU,ubuntu-24.04
mohaa,mohaaserver,Medal of Honor: Allied Assault,ubuntu-24.04
mta,mtaserver,Multi Theft Auto,ubuntu-24.04
diff --git a/lgsm/data/ubuntu-16.04.csv b/lgsm/data/ubuntu-16.04.csv
index 844903c3a..24fcf33e2 100644
--- a/lgsm/data/ubuntu-16.04.csv
+++ b/lgsm/data/ubuntu-16.04.csv
@@ -59,6 +59,7 @@ hz
ins
inss
ios
+jbep3
jc2
jc3
jk2
@@ -68,6 +69,7 @@ l4d
l4d2
mc,openjdk-8-jre
mcb
+mcv
mh
mohaa,libstdc++5:i386
mta
@@ -115,6 +117,7 @@ sven,zlib1g:i386
terraria
tf
tf2,libcurl4-gnutls-dev:i386
+tf2c,libcurl4-gnutls-dev:i386
tfc
ti
ts
diff --git a/lgsm/data/ubuntu-18.04.csv b/lgsm/data/ubuntu-18.04.csv
index b058c3024..b283b629a 100644
--- a/lgsm/data/ubuntu-18.04.csv
+++ b/lgsm/data/ubuntu-18.04.csv
@@ -59,6 +59,7 @@ hz
ins
inss
ios
+jbep3
jc2
jc3
jk2
@@ -68,6 +69,7 @@ l4d
l4d2
mc,openjdk-11-jre
mcb
+mcv
mh
mohaa,libstdc++5:i386
mta,libncursesw5,libxml2-utils
@@ -115,6 +117,7 @@ sven,zlib1g:i386
terraria
tf
tf2,libcurl4-gnutls-dev:i386
+tf2c,libcurl4-gnutls-dev:i386
tfc
ti
ts
diff --git a/lgsm/data/ubuntu-20.04.csv b/lgsm/data/ubuntu-20.04.csv
index dc54ea10f..b086d0095 100644
--- a/lgsm/data/ubuntu-20.04.csv
+++ b/lgsm/data/ubuntu-20.04.csv
@@ -58,6 +58,7 @@ hz
ins
inss
ios
+jbep3
jc2
jc3
jk2
@@ -67,6 +68,7 @@ l4d
l4d2
mc,openjdk-21-jre
mcb
+mcv
mh
mohaa,libstdc++5:i386
mta,libncursesw5,libxml2-utils
@@ -115,6 +117,7 @@ sven,zlib1g:i386
terraria
tf
tf2,libcurl4-gnutls-dev:i386
+tf2c,libcurl4-gnutls-dev:i386
tfc
ti
ts
diff --git a/lgsm/data/ubuntu-22.04.csv b/lgsm/data/ubuntu-22.04.csv
index 46c036e1b..93bfbd4cf 100644
--- a/lgsm/data/ubuntu-22.04.csv
+++ b/lgsm/data/ubuntu-22.04.csv
@@ -58,6 +58,7 @@ hz
ins
inss
ios
+jbep3
jc2
jc3
jk2
@@ -67,6 +68,7 @@ l4d
l4d2
mc,openjdk-21-jre
mcb
+mcv
mh
mohaa,libstdc++5:i386
mta,libncursesw5,libxml2-utils
@@ -115,6 +117,7 @@ sven,zlib1g:i386
terraria
tf
tf2,libcurl4-gnutls-dev:i386
+tf2c,libcurl4-gnutls-dev:i386
tfc
ti
ts
diff --git a/lgsm/data/ubuntu-23.04.csv b/lgsm/data/ubuntu-23.04.csv
index ca84edf29..cb871bde0 100644
--- a/lgsm/data/ubuntu-23.04.csv
+++ b/lgsm/data/ubuntu-23.04.csv
@@ -58,6 +58,7 @@ hz
ins
inss
ios
+jbep3
jc2
jc3
jk2
@@ -67,6 +68,7 @@ l4d
l4d2
mc,openjdk-21-jre
mcb
+mcv
mh
mohaa,libstdc++5:i386
mta,libncursesw5,libxml2-utils
@@ -115,6 +117,7 @@ sven,zlib1g:i386
terraria
tf
tf2,libcurl4-gnutls-dev:i386
+tf2c,libcurl4-gnutls-dev:i386
tfc
ti
ts
diff --git a/lgsm/data/ubuntu-23.10.csv b/lgsm/data/ubuntu-23.10.csv
index ca84edf29..cb871bde0 100644
--- a/lgsm/data/ubuntu-23.10.csv
+++ b/lgsm/data/ubuntu-23.10.csv
@@ -58,6 +58,7 @@ hz
ins
inss
ios
+jbep3
jc2
jc3
jk2
@@ -67,6 +68,7 @@ l4d
l4d2
mc,openjdk-21-jre
mcb
+mcv
mh
mohaa,libstdc++5:i386
mta,libncursesw5,libxml2-utils
@@ -115,6 +117,7 @@ sven,zlib1g:i386
terraria
tf
tf2,libcurl4-gnutls-dev:i386
+tf2c,libcurl4-gnutls-dev:i386
tfc
ti
ts
diff --git a/lgsm/data/ubuntu-24.04.csv b/lgsm/data/ubuntu-24.04.csv
index ff95bec14..0e010abd6 100644
--- a/lgsm/data/ubuntu-24.04.csv
+++ b/lgsm/data/ubuntu-24.04.csv
@@ -58,6 +58,7 @@ hz
ins
inss
ios
+jbep3
jc2
jc3
jk2
@@ -67,6 +68,7 @@ l4d
l4d2
mc,openjdk-25-jre
mcb
+mcv
mh
mohaa,libstdc++5:i386
mta,libxml2-utils
@@ -81,12 +83,11 @@ onset,libmariadb-dev
opfor
pc
pc2
-pmc,openjdk-21-jre
-ps
+pmc,openjdk-25-jre
pvkii
pvr,libc++1
pw
-pz,openjdk-21-jre,rng-tools5
+pz,openjdk-25-jre,rng-tools5
q2
q3
q4
@@ -96,7 +97,7 @@ ricochet
ro
rtcw
rust,lib32z1
-rw,openjdk-21-jre
+rw,openjdk-25-jre
samp
sb
sbots
@@ -109,12 +110,14 @@ sm,telnet,expect
sof2
sol
squad
+squad44
st,libxml2-utils
stn
sven,zlib1g:i386
terraria
tf
tf2,libcurl4-gnutls-dev:i386
+tf2c,libcurl4-gnutls-dev:i386
tfc
ti
ts
@@ -127,12 +130,12 @@ ut2k4
ut3
ut99
vh,libc6-dev,libatomic1,libpulse-dev
-vints,dotnet-runtime-8.0
-vpmc,openjdk-21-jre
+vints,dotnet-runtime-10.0
+vpmc,openjdk-25-jre
vs
wet
wf
-wmc,openjdk-21-jre
+wmc,openjdk-25-jre
wurm,xvfb
xnt
zmr
diff --git a/lgsm/data/ubuntu-26.04.csv b/lgsm/data/ubuntu-26.04.csv
new file mode 100644
index 000000000..0e010abd6
--- /dev/null
+++ b/lgsm/data/ubuntu-26.04.csv
@@ -0,0 +1,142 @@
+all,bc,binutils,bsdmainutils,bzip2,ca-certificates,cpio,curl,distro-info,file,gzip,hostname,jq,lib32gcc-s1,lib32stdc++6,netcat-openbsd,pigz,python3,tar,tmux,unzip,util-linux,uuid-runtime,wget,xz-utils
+steamcmd,lib32gcc-s1,lib32stdc++6,libsdl2-2.0-0:i386,steamcmd
+ac
+ahl
+ahl2
+ark
+arma3
+armar,libcurl4t64
+ats
+av
+bb
+bb2,libcurl4-gnutls-dev:i386
+bd
+bf1942
+bfv,libstdc++5:i386
+bmdm
+bo
+bs
+bt,libicu-dev,dos2unix,libxml2-utils
+btl
+cc
+ck,xvfb,libxi6
+cmw
+cod,libstdc++5:i386
+cod2,libstdc++5:i386
+cod4
+coduo,libstdc++5:i386
+codwaw
+col
+cs
+cs2
+cscz
+csgo
+css
+ct
+dab
+dayz
+dmc
+dod
+dodr
+dods
+doi
+dst,libcurl4-gnutls-dev:i386
+dys
+eco,libgdiplus
+em
+etl
+ets2
+fctr
+fof
+gmod
+hcu
+hl2dm
+hldm
+hldms
+hw,lib32z1
+hz
+ins
+inss
+ios
+jbep3
+jc2
+jc3
+jk2
+kf
+kf2
+l4d
+l4d2
+mc,openjdk-25-jre
+mcb
+mcv
+mh
+mohaa,libstdc++5:i386
+mta,libxml2-utils
+nd
+nec
+nmrih
+ns
+ns2,speex
+ns2c,speex:i386
+ohd
+onset,libmariadb-dev
+opfor
+pc
+pc2
+pmc,openjdk-25-jre
+pvkii
+pvr,libc++1
+pw
+pz,openjdk-25-jre,rng-tools5
+q2
+q3
+q4
+ql
+qw
+ricochet
+ro
+rtcw
+rust,lib32z1
+rw,openjdk-25-jre
+samp
+sb
+sbots
+scpsl,mono-complete
+scpslsm,mono-complete
+sdtd,telnet,expect,libxml2-utils
+sf
+sfc
+sm,telnet,expect
+sof2
+sol
+squad
+squad44
+st,libxml2-utils
+stn
+sven,zlib1g:i386
+terraria
+tf
+tf2,libcurl4-gnutls-dev:i386
+tf2c,libcurl4-gnutls-dev:i386
+tfc
+ti
+ts
+ts3
+tu
+tw
+unt
+ut
+ut2k4
+ut3
+ut99
+vh,libc6-dev,libatomic1,libpulse-dev
+vints,dotnet-runtime-10.0
+vpmc,openjdk-25-jre
+vs
+wet
+wf
+wmc,openjdk-25-jre
+wurm,xvfb
+xnt
+zmr
+zps
diff --git a/lgsm/modules/alert.sh b/lgsm/modules/alert.sh
index ac7d92d83..b256390df 100755
--- a/lgsm/modules/alert.sh
+++ b/lgsm/modules/alert.sh
@@ -379,6 +379,25 @@ elif [ -z "${slacktoken}" ] && [ "${commandname}" == "TEST-ALERT" ]; then
fn_script_error "Slack token not set"
fi
+if [ "${matrixalert}" == "on" ] && [ -n "${matrixhomeserver}" ] && [ -n "${matrixtoken}" ] && [ -n "${matrixroom}" ]; then
+ alert_matrix.sh
+elif [ "${matrixalert}" != "on" ] && [ "${commandname}" == "TEST-ALERT" ]; then
+ fn_print_warn_nl "Matrix alerts not enabled"
+ fn_script_log_warn "Matrix alerts not enabled"
+elif [ -z "${matrixhomeserver}" ] && [ "${commandname}" == "TEST-ALERT" ]; then
+ fn_print_error_nl "Matrix homeserver not set"
+ echo -e "* https://docs.linuxgsm.com/alerts/matrix"
+ fn_script_error "Matrix homeserver not set"
+elif [ -z "${matrixtoken}" ] && [ "${commandname}" == "TEST-ALERT" ]; then
+ fn_print_error_nl "Matrix token not set"
+ echo -e "* https://docs.linuxgsm.com/alerts/matrix"
+ fn_script_error "Matrix token not set"
+elif [ -z "${matrixroom}" ] && [ "${commandname}" == "TEST-ALERT" ]; then
+ fn_print_error_nl "Matrix room not set"
+ echo -e "* https://docs.linuxgsm.com/alerts/matrix"
+ fn_script_error "Matrix room not set"
+fi
+
if [ "${ntfyalert}" == "on" ] && [ -n "${ntfytopic}" ]; then
alert_ntfy.sh
elif [ "${ntfyalert}" != "on" ] && [ "${commandname}" == "TEST-ALERT" ]; then
diff --git a/lgsm/modules/alert_matrix.sh b/lgsm/modules/alert_matrix.sh
new file mode 100755
index 000000000..34d226f1f
--- /dev/null
+++ b/lgsm/modules/alert_matrix.sh
@@ -0,0 +1,70 @@
+#!/bin/bash
+# LinuxGSM alert_matrix.sh module
+# Author: Daniel Gibbs (Original Structure)
+# Contributors: https://linuxgsm.com/contrib
+# Website: https://linuxgsm.com
+# Description: Sends Matrix alert.
+
+moduleselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
+
+matrixbase="${matrixhomeserver}"
+if [[ "${matrixbase}" != http://* ]] && [[ "${matrixbase}" != https://* ]]; then
+ matrixbase="https://${matrixbase}"
+fi
+matrixbase="${matrixbase%/}"
+
+# matrixroom must be the internal room ID (e.g. !abc123:matrix.org), not the room alias (#room:matrix.org).
+matrixroomencoded="$(jq -rn --arg room "${matrixroom}" '$room|@uri')"
+matrixtxnid="$(date +%s%N)"
+matrixurl="${matrixbase}/_matrix/client/v3/rooms/${matrixroomencoded}/send/m.room.message/${matrixtxnid}"
+
+message="${alerttitle}
+
+Server Name
+${servername}
+
+Information
+${alertmessage}
+
+Game
+${gamename}
+
+Server IP
+${alertip}:${port}
+
+Server Time
+$(date)"
+
+if [ -n "${querytype}" ]; then
+ message+="
+
+Is my Game Server Online?
+https://ismygameserver.online/${imgsoquerytype}/${alertip}:${queryport}"
+fi
+
+if [ -n "${alerturl}" ]; then
+ message+="
+
+More info
+${alerturl}"
+fi
+
+json="$(jq -cn --arg body "${message}" '{msgtype: "m.notice", body: $body}')"
+
+fn_print_dots "Sending Matrix alert"
+
+matrixsend=$(curl --connect-timeout 10 -sSL -X PUT \
+ -H "Authorization: Bearer ${matrixtoken}" \
+ -H "Content-Type: application/json" \
+ -d "${json}" \
+ "${matrixurl}")
+exitcode=$?
+
+matrixeventid="$(echo "${matrixsend}" | jq -r '.event_id // empty' 2> /dev/null)"
+if [ "${exitcode}" -eq 0 ] && [ -n "${matrixeventid}" ]; then
+ fn_print_ok_nl "Sending Matrix alert"
+ fn_script_log_pass "Sending Matrix alert"
+else
+ fn_print_fail_nl "Sending Matrix alert: ${matrixsend}"
+ fn_script_log_fail "Sending Matrix alert: ${matrixsend}"
+fi
diff --git a/lgsm/modules/check_deps.sh b/lgsm/modules/check_deps.sh
index 6d572fd40..b03189897 100755
--- a/lgsm/modules/check_deps.sh
+++ b/lgsm/modules/check_deps.sh
@@ -8,15 +8,28 @@
moduleselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
fn_install_dotnet_repo() {
+ local dotnetpackage
+ dotnetpackage="dotnet-runtime-7.0"
+
+ for dep in "${array_deps_missing[@]}"; do
+ if [[ "${dep}" == dotnet-runtime-* ]]; then
+ dotnetpackage="${dep}"
+ break
+ fi
+ done
+
if [ "${distroid}" == "ubuntu" ]; then
- # if package dotnet-runtime-7.0 is unavailable in ubuntu repos, add the microsoft repo.
- if ! apt-cache show dotnet-runtime-7.0 > /dev/null 2>&1; then
+ # If the required .NET package is unavailable in Ubuntu repos, add the Microsoft repo.
+ if ! apt-cache show "${dotnetpackage}" > /dev/null 2>&1; then
fn_fetch_file "https://packages.microsoft.com/config/ubuntu/${distroversion}/packages-microsoft-prod.deb" "" "" "" "/tmp" "packages-microsoft-prod.deb" "" "" "" ""
sudo dpkg -i /tmp/packages-microsoft-prod.deb
fi
elif [ "${distroid}" == "debian" ]; then
- fn_fetch_file "https://packages.microsoft.com/config/debian/${distroversion}/packages-microsoft-prod.deb" "" "" "" "/tmp" "packages-microsoft-prod.deb" "" "" "" ""
- sudo dpkg -i /tmp/packages-microsoft-prod.deb
+ # If the required .NET package is unavailable in Debian repos, add the Microsoft repo.
+ if ! apt-cache show "${dotnetpackage}" > /dev/null 2>&1; then
+ fn_fetch_file "https://packages.microsoft.com/config/debian/${distroversion}/packages-microsoft-prod.deb" "" "" "" "/tmp" "packages-microsoft-prod.deb" "" "" "" ""
+ sudo dpkg -i /tmp/packages-microsoft-prod.deb
+ fi
fi
}
@@ -113,6 +126,9 @@ fn_deps_email() {
array_deps_required+=(exim4)
elif [ -d /etc/sendmail ]; then
array_deps_required+=(sendmail)
+ elif [ "$(command -v apt 2> /dev/null)" ] && [ -d /etc/nullmailer ]; then
+ # 'mailutils' provides the 'mail' binary, 'nullmailer' is the MTA
+ array_deps_required+=(mailutils nullmailer)
elif [ "$(command -v yum 2> /dev/null)" ] || [ "$(command -v dnf 2> /dev/null)" ]; then
array_deps_required+=(s-nail postfix)
elif [ "$(command -v apt 2> /dev/null)" ]; then
@@ -281,10 +297,10 @@ fn_deps_detector() {
depstatus=1
monoinstalled=false
fi
- # .NET Core: A .NET Core repo needs to be installed.
- elif [ "${deptocheck}" == "dotnet-runtime-7.0" ]; then
- # .NET is not installed.
- if dotnet --list-runtimes | grep -q "Microsoft.NETCore.App 7.0"; then
+ # .NET runtime: check installed runtime version for any dotnet-runtime-X.Y package.
+ elif [[ "${deptocheck}" =~ ^dotnet-runtime-([0-9]+\.[0-9]+)$ ]]; then
+ dotnetrequired="${BASH_REMATCH[1]}"
+ if [ "$(command -v dotnet 2> /dev/null)" ] && dotnet --list-runtimes | grep -q "Microsoft.NETCore.App ${dotnetrequired}"; then
depstatus=0
dotnetinstalled=true
else
@@ -362,7 +378,7 @@ if [ -n "${distrosupport}" ]; then
fi
# These titles are only supported up to Ubuntu 22.04 (Jammy) and Debian 12 (Bookworm).
-if { [ "${distroid}" == "ubuntu" ] && dpkg --compare-versions "${distroversion}" "gt" "22.04"; } || { [ "${distroidlike}" == "debian" ] && dpkg --compare-versions "${distroversion}" "gt" "12"; }; then
+if { [ "${distroid}" == "ubuntu" ] && dpkg --compare-versions "${distroversion}" "gt" "22.04"; } || { [ "${distroid}" == "debian" ] && dpkg --compare-versions "${distroversion}" "gt" "12"; }; then
if [ "${shortname}" == "bf1942" ] || [ "${shortname}" == "bfv" ]; then
fn_print_failure_nl "${gamename} is not supported on ${distroname} (requires Ubuntu <= 22.04 or Debian <= 12)."
fn_script_log_fail "${gamename} is not supported on ${distroname}."
@@ -370,8 +386,8 @@ if { [ "${distroid}" == "ubuntu" ] && dpkg --compare-versions "${distroversion}"
fi
fi
-# These titles are only supported up to Ubuntu 20.04 and Debian 11 (and Debian-like derivatives).
-if { [ "${distroid}" == "ubuntu" ] && dpkg --compare-versions "${distroversion}" "gt" "20.04"; } || { [ "${distroidlike}" == "debian" ] && dpkg --compare-versions "${distroversion}" "gt" "11"; }; then
+# These titles are only supported up to Ubuntu 20.04 and Debian 11.
+if { [ "${distroid}" == "ubuntu" ] && dpkg --compare-versions "${distroversion}" "gt" "20.04"; } || { [ "${distroid}" == "debian" ] && dpkg --compare-versions "${distroversion}" "gt" "11"; }; then
if [ "${shortname}" == "onset" ] || [ "${shortname}" == "btl" ]; then
fn_print_failure_nl "${gamename} is not supported on ${distroname} (requires Ubuntu <= 20.04 or Debian <= 11)."
fn_script_log_fail "${gamename} is not supported on ${distroname}."
@@ -379,6 +395,15 @@ if { [ "${distroid}" == "ubuntu" ] && dpkg --compare-versions "${distroversion}"
fi
fi
+# Vintage Story tracks newer .NET runtimes; older distro releases may not ship required packages.
+if [ "${shortname}" == "vints" ]; then
+ if { [ "${distroid}" == "ubuntu" ] && dpkg --compare-versions "${distroversion}" "lt" "24.04"; } || { [ "${distroid}" == "debian" ] && dpkg --compare-versions "${distroversion}" "lt" "12"; } || [ "${distroid}" == "centos" ] || [ "${distroid}" == "rhel" ] || [ "${distroid}" == "rocky" ] || [ "${distroid}" == "almalinux" ]; then
+ fn_print_warning_nl "${gamename} may require newer .NET runtimes than ${distroname} provides."
+ echo -e "If startup fails due to missing .NET runtime, upgrading to Ubuntu 24.04+ or Debian 12+ is recommended."
+ fn_script_log_warn "${gamename} may require newer .NET runtimes than ${distroname} provides."
+ fi
+fi
+
if [ ! -f "${tmpdir}/dependency-no-check.tmp" ] && [ ! -f "${datadir}/${distroid}-${distroversioncsv}.csv" ]; then
# Check that the distro dependency csv file exists.
fn_check_file_github "lgsm/data" "${distroid}-${distroversioncsv}.csv"
diff --git a/lgsm/modules/check_gamedig.sh b/lgsm/modules/check_gamedig.sh
index 0942ac42a..72d3700fe 100755
--- a/lgsm/modules/check_gamedig.sh
+++ b/lgsm/modules/check_gamedig.sh
@@ -3,7 +3,7 @@
# Author: Daniel Gibbs
# Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com
-# Description: Installs nodejs and gamedig
+# Description: Installs Node.js and gamedig
moduleselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
@@ -18,4 +18,6 @@ elif [ "$(command -v node)" ] && [ "$(command -v npm)" ] && [ "$(node -v | cut -
cd "${lgsmdir}" || exit
curl -s -L -o package.json "https://raw.githubusercontent.com/${githubuser}/${githubrepo}/${githubbranch}/package.json"
npm update > /dev/null 2>&1
+else
+ fn_script_log_info "Install Node.js and NPM to enable Gamedig"
fi
diff --git a/lgsm/modules/check_permissions.sh b/lgsm/modules/check_permissions.sh
index 73fba983d..3dc521da7 100755
--- a/lgsm/modules/check_permissions.sh
+++ b/lgsm/modules/check_permissions.sh
@@ -24,7 +24,7 @@ fn_check_ownership() {
fi
fi
if [ -d "${serverfiles}" ]; then
- if [ "$(find "${serverfiles}" -not -name '*.swp' -not -user "$(whoami)" | wc -l)" -ne "0" ]; then
+ if [ "$(find "${serverfiles}" -not -path "*/steamapps/compatdata/*" -not -name '*.swp' -not -user "$(whoami)" | wc -l)" -ne "0" ]; then
filesownissue=1
fi
fi
@@ -42,7 +42,7 @@ fn_check_ownership() {
find "${lgsmdir}" -not -user "$(whoami)" -printf "%u\t%g\t%p\n"
fi
if [ "${filesownissue}" == "1" ]; then
- find "${serverfiles}" -not -user "$(whoami)" -printf "%u\t%g\t%p\n"
+ find "${serverfiles}" -not -path "*/steamapps/compatdata/*" -not -user "$(whoami)" -printf "%u\t%g\t%p\n"
fi
} | column -s $'\t' -t | tee -a "${lgsmlog}"
diff --git a/lgsm/modules/check_players_online.sh b/lgsm/modules/check_players_online.sh
new file mode 100755
index 000000000..b38de1f70
--- /dev/null
+++ b/lgsm/modules/check_players_online.sh
@@ -0,0 +1,34 @@
+#!/bin/bash
+# LinuxGSM check_players_online.sh module
+# Author: Daniel Gibbs
+# Contributors: https://linuxgsm.com/contrib
+# Website: https://linuxgsm.com
+# Description: Queries the server with gamedig and sets ${playersonline} to the
+# current player count when players are connected (empty otherwise).
+# Used by the stoponlyifnoplayers feature to postpone stop/restart.
+
+moduleselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
+
+playersonline=""
+if [ "${stoponlyifnoplayers}" == "on" ]; then
+ if [ "${querymode}" == "2" ] || [ "${querymode}" == "3" ]; then
+ querysucceeded="0"
+ for queryip in "${queryips[@]}"; do
+ query_gamedig.sh
+ if [ "${querystatus}" == "0" ]; then
+ querysucceeded="1"
+ if [ -n "${gdplayers}" ] && [ "${gdplayers}" -ne 0 ]; then
+ playersonline="${gdplayers}"
+ break
+ fi
+ fi
+ done
+ # The query failed for every configured IP, so the player count could not be
+ # determined. Fail open (proceed as if empty) rather than block the server
+ # indefinitely, but warn clearly since the safety check did not actually run.
+ if [ "${querysucceeded}" == "0" ]; then
+ fn_print_warn_nl "Unable to determine player count: stoponlyifnoplayers check skipped"
+ fn_script_log_warn "Unable to determine player count via gamedig: stoponlyifnoplayers check skipped"
+ fi
+ fi
+fi
diff --git a/lgsm/modules/check_status.sh b/lgsm/modules/check_status.sh
index e017b89ec..98d2a3772 100755
--- a/lgsm/modules/check_status.sh
+++ b/lgsm/modules/check_status.sh
@@ -7,4 +7,4 @@
moduleselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
-status=$(tmux -L "${socketname}" list-sessions -F "#{session_name}" 2> /dev/null | grep -Ecx "^${sessionname}")
+status=$(TERM=screen tmux -L "${socketname}" list-sessions -F "#{session_name}" 2> /dev/null | grep -Ecx "^${sessionname}")
diff --git a/lgsm/modules/command_check_update.sh b/lgsm/modules/command_check_update.sh
index 6e429512a..93a770e79 100755
--- a/lgsm/modules/command_check_update.sh
+++ b/lgsm/modules/command_check_update.sh
@@ -30,6 +30,8 @@ elif [ "${shortname}" == "jk2" ]; then
update_jk2.sh
elif [ "${shortname}" == "vints" ]; then
update_vints.sh
+elif [ "${shortname}" == "bb" ]; then
+ update_bb.sh
elif [ "${shortname}" == "ut99" ]; then
update_ut99.sh
elif [ "${shortname}" == "xnt" ]; then
diff --git a/lgsm/modules/command_monitor.sh b/lgsm/modules/command_monitor.sh
index 7c813aed7..0a80fcbf7 100755
--- a/lgsm/modules/command_monitor.sh
+++ b/lgsm/modules/command_monitor.sh
@@ -109,6 +109,26 @@ fn_monitor_check_stopping() {
fi
}
+fn_monitor_check_restart_request() {
+ if [ -f "${lockdir}/${selfname}-restart-request.lock" ]; then
+ fn_print_dots "Checking restart: "
+ fn_print_checking_eol
+ fn_print_info "Checking restart: Restart requested: "
+ fn_print_info_eol_nl
+ fn_script_log_info "Checking restart: Restart requested"
+ check_players_online.sh
+ if [ -n "${playersonline}" ]; then
+ fn_print_info_nl "${playersonline} players are on the server: restart postponed"
+ fn_script_log_info "${playersonline} players are on the server: restart postponed"
+ echo "${playersonline}" > "${lockdir:?}/${selfname}-player-numbers.lock"
+ date '+%s' > "${lockdir:?}/${selfname}-restart-request.lock"
+ core_exit.sh
+ fi
+ command_restart.sh
+ core_exit.sh
+ fi
+}
+
fn_monitor_check_backup() {
# Remove stale lockfile.
if [ -f "${lockdir}/backup.lock" ]; then
@@ -405,6 +425,7 @@ fn_monitor_check_monitoring
fn_monitor_check_starting
fn_monitor_check_stopping
fn_monitor_check_session
+fn_monitor_check_restart_request
# Monitor will not continue if session only check.
if [ "${querymode}" != "1" ]; then
@@ -417,4 +438,5 @@ if [ "${querymode}" != "1" ]; then
fn_monitor_loop
fi
+
core_exit.sh
diff --git a/lgsm/modules/command_restart.sh b/lgsm/modules/command_restart.sh
index 0a7f9b5f0..245c0d52d 100755
--- a/lgsm/modules/command_restart.sh
+++ b/lgsm/modules/command_restart.sh
@@ -12,6 +12,17 @@ fn_firstcommand_set
check.sh
info_game.sh
+check_players_online.sh
+if [ -n "${playersonline}" ]; then
+ fn_print_info_nl "${playersonline} players are on the server: restart postponed"
+ fn_script_log_info "${playersonline} players are on the server: restart postponed"
+ echo "${playersonline}" > "${lockdir:?}/${selfname}-player-numbers.lock"
+ date '+%s' > "${lockdir:?}/${selfname}-restart-request.lock"
+ core_exit.sh
+fi
+# Clear any pending restart request now that the restart is actually proceeding,
+# so a stale lock doesn't trigger a repeat restart on the next monitor run.
+rm -f "${lockdir:?}/${selfname}-restart-request.lock"
exitbypass=1
command_stop.sh
command_start.sh
diff --git a/lgsm/modules/command_send.sh b/lgsm/modules/command_send.sh
index 20ef188e3..8b8a1a252 100755
--- a/lgsm/modules/command_send.sh
+++ b/lgsm/modules/command_send.sh
@@ -27,7 +27,7 @@ if [ "${status}" != "0" ]; then
echo ""
fn_print_dots "Sending command to console: \"${commandtosend}\""
fn_print_ok_nl "Sending command to console: \"${commandtosend}\""
- tmux -L "${socketname}" send-keys -t "${sessionname}" "${commandtosend}" ENTER
+ TERM=screen tmux -L "${socketname}" send-keys -t "${sessionname}" "${commandtosend}" ENTER
fn_script_log_pass "Command \"${commandtosend}\" sent to console"
else
fn_print_error_nl "Unable to send command to console. Server not running"
diff --git a/lgsm/modules/command_start.sh b/lgsm/modules/command_start.sh
index a4e07b44b..43b7a3858 100755
--- a/lgsm/modules/command_start.sh
+++ b/lgsm/modules/command_start.sh
@@ -15,7 +15,7 @@ fn_firstcommand_set
# Used to allow update to detect JK2MV server version.
fn_start_jk2() {
fn_start_tmux
- tmux -L "${socketname}" end -t "${sessionname}" version ENTER > /dev/null 2>&1
+ TERM=screen tmux -L "${socketname}" end -t "${sessionname}" version ENTER > /dev/null 2>&1
}
fn_start_tmux() {
@@ -67,7 +67,7 @@ fn_start_tmux() {
cd "${executabledir}" || exit
fi
- tmux -L "${socketname}" new-session -d -x "${sessionwidth}" -y "${sessionheight}" -s "${sessionname}" "${preexecutable} ${executable} ${startparameters}" 2> "${lgsmlogdir}/.${selfname}-tmux-error.tmp"
+ TERM=screen tmux -L "${socketname}" new-session -d -x "${sessionwidth}" -y "${sessionheight}" -s "${sessionname}" "${preexecutable} ${executable} ${startparameters}" 2> "${lgsmlogdir}/.${selfname}-tmux-error.tmp"
# Create logfile.
touch "${consolelog}"
@@ -82,9 +82,9 @@ fn_start_tmux() {
if [ "${consolelogging}" == "on" ] || [ -z "${consolelogging}" ]; then
# timestamp will break mcb update check.
if [ "${logtimestamp}" == "on" ] && [ "${shortname}" != "mcb" ]; then
- tmux -L "${socketname}" pipe-pane -o -t "${sessionname}" "exec bash -c \"cat | $addtimestamp\" >> '${consolelog}'"
+ TERM=screen tmux -L "${socketname}" pipe-pane -o -t "${sessionname}" "exec bash -c \"cat | $addtimestamp\" >> '${consolelog}'"
else
- tmux -L "${socketname}" pipe-pane -o -t "${sessionname}" "exec cat >> '${consolelog}'"
+ TERM=screen tmux -L "${socketname}" pipe-pane -o -t "${sessionname}" "exec cat >> '${consolelog}'"
fi
else
echo -e "Console logging disabled in settings" >> "${consolelog}"
diff --git a/lgsm/modules/command_stop.sh b/lgsm/modules/command_stop.sh
index ab827314d..7bc408065 100755
--- a/lgsm/modules/command_stop.sh
+++ b/lgsm/modules/command_stop.sh
@@ -10,12 +10,28 @@ commandaction="Stopping"
moduleselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
fn_firstcommand_set
+# Only stop the server if there are no players online.
+# An explicit stop or restart always respects players when the feature is on.
+# Other commands that stop the server as a side effect (e.g. update) only respect
+# players when stoponlyifnoplayersallcommands is on.
+fn_stop_players_online() {
+ if [ "${firstcommandname}" == "STOP" ] || [ "${firstcommandname}" == "RESTART" ] || [ "${stoponlyifnoplayersallcommands}" == "on" ]; then
+ check_players_online.sh
+ if [ -n "${playersonline}" ]; then
+ fn_print_info_nl "${playersonline} players are on the server: stop prevented"
+ fn_script_log_info "${playersonline} players are on the server: stop prevented"
+ echo "${playersonline}" > "${lockdir:?}/${selfname}-player-numbers.lock"
+ core_exit.sh
+ fi
+ fi
+}
+
# Attempts graceful shutdown by sending 'CTRL+c'.
fn_stop_graceful_ctrlc() {
fn_print_dots "Graceful: CTRL+c"
fn_script_log_info "Graceful: CTRL+c"
# Sends CTRL+c.
- tmux -L "${socketname}" send-keys -t "${sessionname}" C-c > /dev/null 2>&1
+ TERM=screen tmux -L "${socketname}" send-keys -t "${sessionname}" C-c > /dev/null 2>&1
# Waits up to 30 seconds giving the server time to shutdown gracefully.
for seconds in {1..30}; do
check_status.sh
@@ -47,7 +63,7 @@ fn_stop_graceful_cmd() {
fn_print_dots "Graceful: sending \"${1}\""
fn_script_log_info "Graceful: sending \"${1}\""
# Sends specific stop command.
- tmux -L "${socketname}" send -t "${sessionname}" ENTER "${1}" ENTER > /dev/null 2>&1
+ TERM=screen tmux -L "${socketname}" 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
@@ -79,7 +95,7 @@ fn_stop_graceful_goldsrc() {
fn_print_dots "Graceful: sending \"quit\""
fn_script_log_info "Graceful: sending \"quit\""
# sends quit
- tmux -L "${socketname}" send -t "${sessionname}" quit ENTER > /dev/null 2>&1
+ TERM=screen tmux -L "${socketname}" send -t "${sessionname}" quit ENTER > /dev/null 2>&1
# Waits 3 seconds as goldsrc servers restart with the quit command.
for seconds in {1..3}; do
fn_sleep_time_1
@@ -289,10 +305,10 @@ fn_stop_graceful_avorion() {
fn_print_dots "Graceful: /save /stop"
fn_script_log_info "Graceful: /save /stop"
# Sends /save.
- tmux -L "${socketname}" send-keys -t "${sessionname}" /save ENTER > /dev/null 2>&1
+ TERM=screen tmux -L "${socketname}" send-keys -t "${sessionname}" /save ENTER > /dev/null 2>&1
fn_sleep_time_5
# Sends /quit.
- tmux -L "${socketname}" send-keys -t "${sessionname}" /stop ENTER > /dev/null 2>&1
+ TERM=screen tmux -L "${socketname}" send-keys -t "${sessionname}" /stop ENTER > /dev/null 2>&1
# Waits up to 30 seconds giving the server time to shutdown gracefully.
for seconds in {1..30}; do
check_status.sh
@@ -351,7 +367,7 @@ fn_stop_tmux() {
fn_print_dots "${servername}"
fn_script_log_info "tmux kill-session: ${sessionname}: ${servername}"
# Kill tmux session.
- tmux -L "${socketname}" kill-session -t "${sessionname}" > /dev/null 2>&1
+ TERM=screen tmux -L "${socketname}" kill-session -t "${sessionname}" > /dev/null 2>&1
fn_sleep_time_1
check_status.sh
if [ "${status}" == "0" ]; then
@@ -373,6 +389,7 @@ fn_stop_pre_check() {
fn_print_skip_nl "${servername} is already stopped"
fn_script_log_info "${servername} is already stopped"
else
+ fn_stop_players_online
# Select graceful shutdown.
fn_stop_graceful_select
# Check status again, a kill tmux session if graceful shutdown failed.
diff --git a/lgsm/modules/command_update.sh b/lgsm/modules/command_update.sh
index 996d402a4..a7cfc1b12 100755
--- a/lgsm/modules/command_update.sh
+++ b/lgsm/modules/command_update.sh
@@ -31,6 +31,8 @@ elif [ "${shortname}" == "jk2" ]; then
update_jk2.sh
elif [ "${shortname}" == "vints" ]; then
update_vints.sh
+elif [ "${shortname}" == "bb" ]; then
+ update_bb.sh
elif [ "${shortname}" == "ut99" ]; then
update_ut99.sh
elif [ "${shortname}" == "xnt" ]; then
diff --git a/lgsm/modules/command_update_linuxgsm.sh b/lgsm/modules/command_update_linuxgsm.sh
index 3fd4cc681..80ff74cfb 100755
--- a/lgsm/modules/command_update_linuxgsm.sh
+++ b/lgsm/modules/command_update_linuxgsm.sh
@@ -188,7 +188,7 @@ if [ -f "${datadir}/${distroid}-${distroversioncsv}.csv" ]; then
fn_print_update_eol_nl
fn_script_log "Checking ${remotereponame} ${distroid}-${distroversioncsv}.csv"
rm -f "${datadir:?}/${distroid}-${distroversioncsv}.csv"
- fn_fetch_file_github "${datadir}" "${distroid}-${distroversioncsv}.csv" "${datadir}" "nochmodx" "norun" "noforce" "nohash"
+ fn_fetch_file_github "lgsm/data" "${distroid}-${distroversioncsv}.csv" "${datadir}" "nochmodx" "norun" "noforce" "nohash"
else
fn_print_skip_eol_nl
fn_script_log_pass "Checking ${remotereponame} ${distroid}-${distroversioncsv}.csv"
diff --git a/lgsm/modules/core_dl.sh b/lgsm/modules/core_dl.sh
index 4730c0cff..c3194a915 100755
--- a/lgsm/modules/core_dl.sh
+++ b/lgsm/modules/core_dl.sh
@@ -139,6 +139,12 @@ fn_dl_steamcmd() {
fn_print_failure_nl "${commandaction} ${selfname}: ${remotelocation}: Not enough disk space to download server files"
fn_script_log_fail "${commandaction} ${selfname}: ${remotelocation}: Not enough disk space to download server files"
core_exit.sh
+ # Invalid platform for app/update request.
+ elif [ -n "$(grep -i "Invalid platform" "${steamcmdlog}" | tail -1)" ]; then
+ fn_print_failure_nl "${commandaction} ${selfname}: ${remotelocation}: Invalid platform for AppID ${appid}"
+ fn_print_nl "Check steamcmdforcewindows setting and system architecture (x86_64 required for most servers)"
+ fn_script_log_fail "${commandaction} ${selfname}: ${remotelocation}: Invalid platform for AppID ${appid}"
+ 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"
diff --git a/lgsm/modules/core_modules.sh b/lgsm/modules/core_modules.sh
index 10d408449..9d72f5ce7 100755
--- a/lgsm/modules/core_modules.sh
+++ b/lgsm/modules/core_modules.sh
@@ -8,7 +8,7 @@
moduleselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
-modulesversion="v26.1.0"
+modulesversion="v26.2.0"
# Core
@@ -233,6 +233,11 @@ check_permissions.sh() {
fn_fetch_module
}
+check_players_online.sh() {
+ modulefile="${FUNCNAME[0]}"
+ fn_fetch_module
+}
+
check_root.sh() {
modulefile="${FUNCNAME[0]}"
fn_fetch_module
@@ -590,6 +595,11 @@ alert_ifttt.sh() {
fn_fetch_module
}
+alert_matrix.sh() {
+ modulefile="${FUNCNAME[0]}"
+ fn_fetch_module
+}
+
alert_ntfy.sh() {
modulefile="${FUNCNAME[0]}"
fn_fetch_module
@@ -710,6 +720,11 @@ update_ut99.sh() {
fn_fetch_module
}
+update_bb.sh() {
+ modulefile="${FUNCNAME[0]}"
+ fn_fetch_module
+}
+
update_vints.sh() {
modulefile="${FUNCNAME[0]}"
fn_fetch_module
diff --git a/lgsm/modules/core_steamcmd.sh b/lgsm/modules/core_steamcmd.sh
index d265f577d..463a1f7da 100755
--- a/lgsm/modules/core_steamcmd.sh
+++ b/lgsm/modules/core_steamcmd.sh
@@ -427,4 +427,21 @@ fn_check_steamcmd_appmanifest() {
fn_dl_steamcmd
fi
fi
+
+ # GoldSrc can occasionally report success while core HL1 files are incomplete.
+ if [ "${engine}" == "goldsrc" ]; then
+ if [ ! -f "${serverfiles}/hlds_run" ] || [ ! -f "${serverfiles}/engine_i486.so" ] || [ ! -d "${serverfiles}/valve" ]; then
+ fn_print_error_nl "Core HL1 files missing after GoldSrc update"
+ fn_script_log_error "Core HL1 files missing after GoldSrc update"
+ fn_print_info_nl "Forcing update to correct issue"
+ fn_script_log_info "Forcing update to correct issue"
+ fn_dl_steamcmd
+
+ if [ ! -f "${serverfiles}/hlds_run" ] || [ ! -f "${serverfiles}/engine_i486.so" ] || [ ! -d "${serverfiles}/valve" ]; then
+ fn_print_fail_nl "Core HL1 files are still missing after retry"
+ fn_script_log_fail "Core HL1 files are still missing after retry"
+ core_exit.sh
+ fi
+ fi
+ fi
}
diff --git a/lgsm/modules/fix_steamcmd.sh b/lgsm/modules/fix_steamcmd.sh
index 0ba5c85b2..36bc378ac 100755
--- a/lgsm/modules/fix_steamcmd.sh
+++ b/lgsm/modules/fix_steamcmd.sh
@@ -113,6 +113,31 @@ if [ ! -f "${steamclientsdk32}" ]; then
fn_fix_msg_end
fi
+# Helps fix: WARNING: Failed to load 32-bit libtinfo.so.5 or libncurses.so.5.
+# On distros that ship libtinfo.so.6 (e.g. Ubuntu 22.04+, Debian 12+) but not
+# libtinfo.so.5, SteamCMD prints this warning and loses readline support.
+# Creating a symlink from .so.5 -> .so.6 resolves the warning without root.
+for libtinfo32dir in "${HOME}/.steam/steamcmd" "${steamcmddir}" "${HOME}/.local/share/Steam/steamcmd"; do
+ if [ -d "${libtinfo32dir}" ]; then
+ libtinfo32so="${libtinfo32dir}/libtinfo.so.5"
+ # Also repair broken symlinks (! -e catches missing target, -L catches dangling link)
+ if [ ! -e "${libtinfo32so}" ]; then
+ # Find the .so.6 in the system 32-bit lib paths
+ for libtinfo32so6 in /lib/i386-linux-gnu/libtinfo.so.6 /usr/lib/i386-linux-gnu/libtinfo.so.6 /lib32/libtinfo.so.6; do
+ if [ -f "${libtinfo32so6}" ]; then
+ fixname="libtinfo.so.5 32-bit symlink"
+ fn_fix_msg_start
+ mkdir -p "${libtinfo32dir}"
+ ln -sf "${libtinfo32so6}" "${libtinfo32so}"
+ exitcode=$?
+ fn_fix_msg_end
+ break
+ fi
+ done
+ fi
+ fi
+done
+
# steamclient.so fixes
if [ "${shortname}" == "bo" ]; then
fn_fix_steamclient_so "32" "${serverfiles}/BODS_Data/Plugins/x86"
diff --git a/lgsm/modules/fix_vh.sh b/lgsm/modules/fix_vh.sh
index c6564eb19..600988be6 100755
--- a/lgsm/modules/fix_vh.sh
+++ b/lgsm/modules/fix_vh.sh
@@ -29,12 +29,11 @@ if [ -f "${modsinstalledlistfullpath}" ]; then
fn_print_info_nl "BepInEx install detected, applying start exports"
fn_script_log_info "BepInEx install detected, applying start exports"
# exports for BepInEx framework from script start_server_bepinex.sh
- export DOORSTOP_ENABLE=TRUE
- export DOORSTOP_INVOKE_DLL_PATH=./BepInEx/core/BepInEx.Preloader.dll
- export DOORSTOP_CORLIB_OVERRIDE_PATH=./unstripped_corlib
+ export DOORSTOP_ENABLED=1
+ export DOORSTOP_TARGET_ASSEMBLY=./BepInEx/core/BepInEx.Preloader.dll
export LD_LIBRARY_PATH="./doorstop_libs:${LD_LIBRARY_PATH}"
- export LD_PRELOAD="libdoorstop_x64.so:${LD_PRELOAD}"
+ preexecutable="LD_PRELOAD=\"libdoorstop_x64.so:${LD_PRELOAD}\" ${preexecutable}"
export SteamAppId=892970
fi
diff --git a/lgsm/modules/info_distro.sh b/lgsm/modules/info_distro.sh
index 1d74ac635..4ece95e4d 100755
--- a/lgsm/modules/info_distro.sh
+++ b/lgsm/modules/info_distro.sh
@@ -11,7 +11,7 @@ moduleselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
### Game Server pid
if [ "${status}" == "1" ]; then
- gameserverpid="$(tmux -L "${socketname}" list-sessions -F "#{session_name} #{pane_pid}" | grep "^${sessionname} " | awk '{print $NF}')"
+ gameserverpid="$(TERM=screen tmux -L "${socketname}" list-sessions -F "#{session_name} #{pane_pid}" | grep "^${sessionname} " | awk '{print $NF}')"
if [ "${engine}" == "source" ]; then
srcdslinuxpid="$(pgrep -P "${gameserverpid}" -x srcds_linux 2> /dev/null | head -n 1)"
elif [ "${engine}" == "goldsrc" ]; then
diff --git a/lgsm/modules/install_config.sh b/lgsm/modules/install_config.sh
index 4b8148ce9..e25b8de5c 100755
--- a/lgsm/modules/install_config.sh
+++ b/lgsm/modules/install_config.sh
@@ -530,6 +530,9 @@ elif [ "${shortname}" == "ios" ]; then
fn_default_config_remote
fn_set_config_vars
fn_list_config_locations
+elif [ "${shortname}" == "jbep3" ]; then
+ fn_default_config_local
+ fn_list_config_locations
elif [ "${shortname}" == "jc2" ]; then
array_configs+=(config.lua)
fn_default_config_remote
@@ -565,6 +568,11 @@ elif [ "${shortname}" == "mcb" ]; then
fn_default_config_remote
fn_set_config_vars
fn_list_config_locations
+elif [ "${shortname}" == "mcv" ]; then
+ array_configs+=(server.cfg)
+ fn_default_config_remote
+ fn_set_config_vars
+ fn_list_config_locations
elif [ "${shortname}" == "mohaa" ]; then
array_configs+=(server.cfg)
fn_default_config_remote
diff --git a/lgsm/modules/install_server_files.sh b/lgsm/modules/install_server_files.sh
index 8a993b45c..e5f10739d 100755
--- a/lgsm/modules/install_server_files.sh
+++ b/lgsm/modules/install_server_files.sh
@@ -32,14 +32,7 @@ fn_install_server_files() {
run="norun"
force="noforce"
md5="e3b4962cdd9d41e23c6fed65101bccde"
- elif [ "${shortname}" == "bb" ]; then
- remote_fileurl="http://linuxgsm.download/BrainBread/brainbread-v1.2-linuxserver.tar.xz"
- local_filedir="${tmpdir}"
- local_filename="brainbread-v1.2-linuxserver.tar.xz"
- chmodx="nochmodx"
- run="norun"
- force="noforce"
- md5="55f227183b736397806d5b6db6143f15"
+
elif [ "${shortname}" == "cod" ]; then
remote_fileurl="http://linuxgsm.download/CallOfDuty/cod-lnxded-1.5b-full.tar.xz"
local_filedir="${tmpdir}"
@@ -267,6 +260,8 @@ elif [ "${shortname}" == "jk2" ]; then
update_jk2.sh
elif [ "${shortname}" == "vints" ]; then
update_vints.sh
+elif [ "${shortname}" == "bb" ]; then
+ update_bb.sh
elif [ "${shortname}" == "ut99" ]; then
fn_install_server_files
update_ut99.sh
@@ -274,7 +269,7 @@ elif [ "${shortname}" == "xnt" ]; then
update_xnt.sh
elif [ "${shortname}" == "etl" ]; then
update_etl.sh
-elif [ -z "${appid}" ] || [ "${shortname}" == "ahl" ] || [ "${shortname}" == "bb" ] || [ "${shortname}" == "q4" ] || [ "${shortname}" == "ns" ] || [ "${shortname}" == "sfc" ] || [ "${shortname}" == "ts" ] || [ "${shortname}" == "vs" ] || [ "${shortname}" == "zmr" ]; then
+elif [ -z "${appid}" ] || [ "${shortname}" == "ahl" ] || [ "${shortname}" == "q4" ] || [ "${shortname}" == "ns" ] || [ "${shortname}" == "sfc" ] || [ "${shortname}" == "ts" ] || [ "${shortname}" == "vs" ] || [ "${shortname}" == "zmr" ]; then
if [ "${shortname}" == "ut" ]; then
install_eula.sh
fi
diff --git a/lgsm/modules/mods_core.sh b/lgsm/modules/mods_core.sh
index bed0f9f49..3a14fcb84 100755
--- a/lgsm/modules/mods_core.sh
+++ b/lgsm/modules/mods_core.sh
@@ -29,6 +29,15 @@ fn_mod_install_files() {
mkdir -p "${extractdest}"
fi
fn_dl_extract "${modstmpdir}" "${modfilename}" "${extractdest}"
+ # If modsubdirs names a specific subfolder, use its contents as the install root.
+ if [ "${modsubdirs}" != "0" ] && [ -d "${extractdest}/${modsubdirs}" ]; then
+ local tmpsubdir
+ tmpsubdir=$(mktemp -d)
+ mv "${extractdest}/${modsubdirs}" "${tmpsubdir}/"
+ rm -rf "${extractdest}"
+ mv "${tmpsubdir}/${modsubdirs}" "${extractdest}"
+ rm -rf "${tmpsubdir}"
+ fi
}
# Convert mod files to lowercase if needed.
diff --git a/lgsm/modules/mods_list.sh b/lgsm/modules/mods_list.sh
index b3f9877f1..39eca5e42 100755
--- a/lgsm/modules/mods_list.sh
+++ b/lgsm/modules/mods_list.sh
@@ -19,40 +19,40 @@ metamodlatestfile="metamod-${metamodversion}.zip"
metamoddownloadurl="https://www.amxmodx.org/release/${metamodlatestfile}"
metamodurl="${metamoddownloadurl}"
# AMX Mod X: Base
-amxxbaseversion="1.8.2"
+amxxbaseversion="1.9.0-git5303"
amxxbasemod="base"
amxxbaselatestfile="amxmodx-${amxxbaseversion}-${amxxbasemod}-linux.tar.gz"
-amxxbasedownloadurl="https://www.amxmodx.org/release/${amxxbaselatestfile}"
+amxxbasedownloadurl="https://github.com/alliedmodders/amxmodx/releases/download/1.9.0.5303/${amxxbaselatestfile}"
amxxbaseurl="${amxxbasedownloadurl}"
# AMX Mod X: Counter-Strike
-amxxcsversion="1.8.2"
+amxxcsversion="1.9.0-git5303"
amxxcsmod="cstrike"
amxxcslatestfile="amxmodx-${amxxbaseversion}-${amxxcsmod}-linux.tar.gz"
-amxxcsdownloadurl="https://www.amxmodx.org/release/${amxxcslatestfile}"
+amxxcsdownloadurl="https://github.com/alliedmodders/amxmodx/releases/download/1.9.0.5303/${amxxcslatestfile}"
amxxcsurl="${amxxcsdownloadurl}"
# AMX Mod X: Day of Defeat
-amxxdodversion="1.8.2"
+amxxdodversion="1.9.0-git5303"
amxxdodmod="dod"
amxxdodlatestfile="amxmodx-${amxxdodversion}-${amxxdodmod}-linux.tar.gz"
-amxxdoddownloadurl="https://www.amxmodx.org/release/${amxxdodlatestfile}"
+amxxdoddownloadurl="https://github.com/alliedmodders/amxmodx/releases/download/1.9.0.5303/${amxxdodlatestfile}"
amxxdodurl="${amxxdoddownloadurl}"
# AMX Mod X: Team Fortress Classic
-amxxtfcversion="1.8.2"
+amxxtfcversion="1.9.0-git5303"
amxxtfcmod="tfc"
amxxtfclatestfile="amxmodx-${amxxtfcversion}-${amxxtfcmod}-linux.tar.gz"
-amxxtfcdownloadurl="https://www.amxmodx.org/release/${amxxtfclatestfile}"
+amxxtfcdownloadurl="https://github.com/alliedmodders/amxmodx/releases/download/1.9.0.5303/${amxxtfclatestfile}"
amxxtfcurl="${amxxtfcdownloadurl}"
# AMX Mod X: Natural Selection
-amxxnsversion="1.8.2"
+amxxnsversion="1.9.0-git5303"
amxxnsmod="ns"
amxxnslatestfile="amxmodx-${amxxnsversion}-${amxxnsmod}-linux.tar.gz"
-amxxnsdownloadurl="https://www.amxmodx.org/release/${amxxnslatestfile}"
+amxxnsdownloadurl="https://github.com/alliedmodders/amxmodx/releases/download/1.9.0.5303/${amxxnslatestfile}"
amxxnsurl="${amxxnsdownloadurl}"
# AMX Mod X: The Specialists
-amxxtsversion="1.8.2"
+amxxtsversion="1.9.0-git5303"
amxxtsmod="ts"
amxxtslatestfile="amxmodx-${amxxtsversion}-${amxxtsmod}-linux.tar.gz"
-amxxtsdownloadurl="https://www.amxmodx.org/release/${amxxtslatestfile}"
+amxxtsdownloadurl="https://github.com/alliedmodders/amxmodx/releases/download/1.9.0.5303/${amxxtslatestfile}"
amxxtsurl="${amxxtsdownloadurl}"
# Metamod:Source
metamodsourceversion="1.12"
@@ -122,7 +122,7 @@ modseparator="MOD"
# [2] | "Pretty Name": the common name people use to call the mod that will be displayed to the user
# [3] | "URL": link to the mod archive file; can be a variable previously defined while scraping a URL
# [4] | "filename": the output filename
-# [5] | "modsubdirs": in how many subdirectories is the mod (none is 0) (not used at release, but could be in the future)
+# [5] | "modsubdirs": name of a subfolder within the archive to extract as the install root (use "0" to extract all contents)
# [6] | "LowercaseOn/Off": LowercaseOff or LowercaseOn: enable/disable converting extracted files and directories to lowercase (some games require it)
# [7] | "modinstalldir": the directory in which to install the mode (use LGSM dir variables such as ${systemdir})
# [8] | "/files/to/keep;", files & directories that should not be overwritten upon update, separated and ended with a semicolon; you can also use "OVERWRITE" value to ignore the value or "NOUPDATE" to disallow updating; for files to keep upon uninstall, see fn_mod_tidy_files_list from mods_core.sh
@@ -208,7 +208,7 @@ mod_info_sdtdoxide=(MOD "sdtdoxide" "Oxide for 7 Days To Die" "${oxidesdtdlatest
mod_info_valheimplus=(MOD "valheimplus" "Valheim PLUS" "${valheimpluslatestlink}" "ValheimPlus.tar.gz" "0" "LowercaseOff" "${systemdir}" "OVERWRITE" "ENGINES" "Valheim;" "NOTGAMES" "https://github.com/Grantapher/ValheimPlus.git" "Mod to improve Valheim gameplay")
# BepInEx Valheim
-mod_info_bepinexvh=(MOD "bepinexvh" "BepInEx Valheim" "${bepinexvhlatestlink}" "denikson-BepInExPack_Valheim.zip" "0" "LowercaseOff" "${systemdir}" "OVERWRITE" "ENGINES" "Valheim;" "NOTGAMES" "https://valheim.thunderstore.io/package/denikson/BepInExPack_Valheim/" "Unity / XNA game patcher and plugin framework")
+mod_info_bepinexvh=(MOD "bepinexvh" "BepInEx Valheim" "${bepinexvhlatestlink}" "denikson-BepInExPack_Valheim.zip" "BepInExPack_Valheim" "LowercaseOff" "${systemdir}" "OVERWRITE" "ENGINES" "Valheim;" "NOTGAMES" "https://valheim.thunderstore.io/package/denikson/BepInExPack_Valheim/" "Unity / XNA game patcher and plugin framework")
# REQUIRED: Set all mods info into the global array
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_prac[@]}" "${mod_info_pug[@]}" "${mod_info_dhook[@]}" "${mod_info_movement[@]}" "${mod_info_cleaner[@]}" "${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_rustcarbon[@]}" "${mod_info_rustoxide[@]}" "${mod_info_hwoxide[@]}" "${mod_info_sdtdoxide[@]}" "${mod_info_advduplicator[@]}" "${mod_info_trackassemblytool[@]}" "${mod_info_physpropertiesadv[@]}" "${mod_info_controlsystemse2[@]}" "${mod_info_e2pistontiming[@]}" "${mod_info_propcannontool[@]}" "${mod_info_gearassemblytool[@]}" "${mod_info_spinnertool[@]}" "${mod_info_surfacefrictiontool[@]}" "${mod_info_magneticdipole[@]}" "${mod_info_environmentorganizer[@]}" "${mod_info_precision_alignment[@]}" "${mod_info_improved_stacker[@]}" "${mod_info_improved_weight[@]}" "${mod_info_improved_antinoclip[@]}" "${mod_info_laserstool[@]}" "${mod_info_valheimplus[@]}" "${mod_info_bepinexvh[@]}")
diff --git a/lgsm/modules/update_bb.sh b/lgsm/modules/update_bb.sh
new file mode 100644
index 000000000..1f2f12ce8
--- /dev/null
+++ b/lgsm/modules/update_bb.sh
@@ -0,0 +1,175 @@
+#!/bin/bash
+# LinuxGSM update_bb.sh module
+# Author: Daniel Gibbs
+# Contributors: https://linuxgsm.com/contrib
+# Website: https://linuxgsm.com
+# Description: Handles updating of BrainBread servers.
+
+moduleselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
+
+fn_update_dl() {
+ # Download and extract files to serverfiles.
+ fn_fetch_file "${remotebuildurl}" "" "" "" "${tmpdir}" "${remotebuildfilename}" "nochmodx" "norun" "force" "${remotebuildhash}"
+ fn_dl_extract "${tmpdir}" "${remotebuildfilename}" "${serverfiles}"
+ echo "${remotebuild}" > "${serverfiles}/build.txt"
+ fn_clear_tmp
+}
+
+fn_update_localbuild() {
+ # Gets local build info.
+ fn_print_dots "Checking local build: ${remotelocation}"
+ # Uses build file to get local build.
+ localbuild=$(head -n 1 "${serverfiles}/build.txt" 2> /dev/null)
+ if [ -z "${localbuild}" ]; then
+ fn_print_error "Checking local build: ${remotelocation}: missing local build info"
+ fn_script_log_error "Missing local build info"
+ fn_script_log_error "Set localbuild to 0"
+ localbuild="0"
+ else
+ fn_print_ok "Checking local build: ${remotelocation}"
+ fn_script_log_pass "Checking local build"
+ fi
+}
+
+fn_update_remotebuild() {
+ # Gets remote build info.
+ apiurl="https://api.github.com/repos/IronOak-Studios/BrainBread/releases/latest"
+ remotebuildresponse=$(curl -s "${apiurl}")
+ remotebuildfilename=$(echo "${remotebuildresponse}" | jq -r '.assets[] | select(.name | test("linuxserver\\.tar\\.gz$")) | .name' | head -n 1)
+ remotebuildurl=$(echo "${remotebuildresponse}" | jq -r '.assets[] | select(.name | test("linuxserver\\.tar\\.gz$")) | .browser_download_url' | head -n 1)
+ remotebuildhash=$(echo "${remotebuildresponse}" | jq -r '.assets[] | select(.name | test("linuxserver\\.tar\\.gz$")) | .digest' | sed 's/^sha256://g' | head -n 1)
+ remotebuild=$(echo "${remotebuildresponse}" | jq -r '.tag_name')
+ if [ -z "${remotebuildhash}" ] || [ "${remotebuildhash}" == "null" ]; then
+ remotebuildhash="nohash"
+ fi
+
+ if [ "${firstcommandname}" != "INSTALL" ]; then
+ fn_print_dots "Checking remote build: ${remotelocation}"
+ # Checks if remotebuild variable has been set.
+ if [ -z "${remotebuild}" ] || [ "${remotebuild}" == "null" ] || [ -z "${remotebuildurl}" ] || [ "${remotebuildurl}" == "null" ] || [ -z "${remotebuildfilename}" ] || [ "${remotebuildfilename}" == "null" ]; then
+ fn_print_fail "Checking remote build: ${remotelocation}"
+ fn_script_log_fail "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" ] || [ -z "${remotebuildurl}" ] || [ "${remotebuildurl}" == "null" ] || [ -z "${remotebuildfilename}" ] || [ "${remotebuildfilename}" == "null" ]; then
+ fn_print_failure "Unable to get remote build"
+ fn_script_log_fail "Unable to get remote build"
+ core_exit.sh
+ fi
+ fi
+}
+
+fn_update_compare() {
+ fn_print_dots "Checking for update: ${remotelocation}"
+ # Update has been found or force update.
+ if [ "${localbuild}" != "${remotebuild}" ] || [ "${forceupdate}" == "1" ]; then
+ # Create update lockfile.
+ date '+%s' > "${lockdir:?}/update.lock"
+ fn_print_ok_nl "Checking for update: ${remotelocation}"
+ fn_print "\n"
+ fn_print_nl "${bold}${underline}Update${default} available"
+ fn_print_nl "* Local build: ${red}${localbuild}${default}"
+ fn_print_nl "* Remote build: ${green}${remotebuild}${default}"
+ if [ -n "${branch}" ]; then
+ fn_print_nl "* Branch: ${branch}"
+ fi
+ if [ -f "${rootdir}/.dev-debug" ]; then
+ fn_print_nl "Remote build info"
+ fn_print_nl "* apiurl: ${apiurl}"
+ fn_print_nl "* remotebuildfilename: ${remotebuildfilename}"
+ fn_print_nl "* remotebuildurl: ${remotebuildurl}"
+ fn_print_nl "* remotebuildhash: ${remotebuildhash}"
+ fn_print_nl "* remotebuild: ${remotebuild}"
+ fi
+ fn_print "\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
+ fn_script_log_info "${localbuild} > ${remotebuild}"
+
+ if [ "${commandname}" == "UPDATE" ]; then
+ date +%s > "${lockdir:?}/last-updated.lock"
+ unset updateonstart
+ check_status.sh
+ # If server stopped.
+ if [ "${status}" == "0" ]; then
+ fn_update_dl
+ if [ "${localbuild}" == "0" ]; then
+ exitbypass=1
+ command_start.sh
+ fn_firstcommand_reset
+ exitbypass=1
+ fn_sleep_time_5
+ 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_dl
+ exitbypass=1
+ command_start.sh
+ fn_firstcommand_reset
+ fi
+ unset exitbypass
+ alert="update"
+ elif [ "${commandname}" == "CHECK-UPDATE" ]; then
+ alert="check-update"
+ fi
+ alert.sh
+ else
+ fn_print_ok_nl "Checking for update: ${remotelocation}"
+ fn_print "\n"
+ fn_print_nl "${bold}${underline}No update${default} available"
+ fn_print_nl "* Local build: ${green}${localbuild}${default}"
+ fn_print_nl "* Remote build: ${green}${remotebuild}${default}"
+ if [ -n "${branch}" ]; then
+ fn_print_nl "* Branch: ${branch}"
+ fi
+ fn_print "\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 [ -f "${rootdir}/.dev-debug" ]; then
+ fn_print_nl "Remote build info"
+ fn_print_nl "* apiurl: ${apiurl}"
+ fn_print_nl "* remotebuildfilename: ${remotebuildfilename}"
+ fn_print_nl "* remotebuildurl: ${remotebuildurl}"
+ fn_print_nl "* remotebuildhash: ${remotebuildhash}"
+ fn_print_nl "* remotebuild: ${remotebuild}"
+ fi
+ fi
+}
+
+# The location where the builds are checked and downloaded.
+remotelocation="github.com"
+
+if [ "${firstcommandname}" == "INSTALL" ]; then
+ fn_update_remotebuild
+ fn_update_dl
+else
+ # BrainBread requires both Steam app updates and GitHub package updates.
+ 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_localbuild
+ fn_update_remotebuild
+ fn_update_compare
+fi
diff --git a/lgsm/modules/update_xnt.sh b/lgsm/modules/update_xnt.sh
index 904b7b1a4..e6f88cc27 100755
--- a/lgsm/modules/update_xnt.sh
+++ b/lgsm/modules/update_xnt.sh
@@ -20,7 +20,7 @@ fn_update_localbuild() {
check_status.sh
# Send version command to Xonotic server.
if [ "${status}" != "0" ]; then
- tmux -L "${socketname}" send-keys -t "${sessionname}" "version" C-m > /dev/null 2>&1
+ TERM=screen tmux -L "${socketname}" send-keys -t "${sessionname}" "version" C-m > /dev/null 2>&1
fn_sleep_time_1
else
exitbypass=1
@@ -28,7 +28,7 @@ fn_update_localbuild() {
fn_firstcommand_reset
exitbypass=1
fn_sleep_time_5
- tmux -L "${socketname}" send-keys -t "${sessionname}" "version" C-m > /dev/null 2>&1
+ TERM=screen tmux -L "${socketname}" send-keys -t "${sessionname}" "version" C-m > /dev/null 2>&1
exitbypass=1
command_stop.sh
unset exitbypass
diff --git a/linuxgsm.sh b/linuxgsm.sh
index f664749e6..9274a071b 100755
--- a/linuxgsm.sh
+++ b/linuxgsm.sh
@@ -24,7 +24,7 @@ if [ -f ".dev-debug" ]; then
set -x
fi
-version="v26.1.0"
+version="v26.2.0"
shortname="core"
gameservername="core"
commandname="CORE"