From 693b090d60ff428f69d466eb14747bc2146de4dc Mon Sep 17 00:00:00 2001
From: MicLieg <38057464+MicLieg@users.noreply.github.com>
Date: Thu, 7 Mar 2024 02:13:35 +0100
Subject: [PATCH 1/3] Add .editorconfig, .gitignore, and
.vscode/extensions.json files
---
.editorconfig | 18 ++++++++++++++++++
.gitignore | 1 +
.markdownlint.json | 9 +++++++++
.vscode/extensions.json | 8 ++++++++
4 files changed, 36 insertions(+)
create mode 100644 .editorconfig
create mode 100644 .gitignore
create mode 100644 .markdownlint.json
create mode 100644 .vscode/extensions.json
diff --git a/.editorconfig b/.editorconfig
new file mode 100644
index 0000000..9d741bd
--- /dev/null
+++ b/.editorconfig
@@ -0,0 +1,18 @@
+# EditorConfig helps developers define and maintain consistent coding styles between different editors and IDEs.
+# Atom: Please assure your Atom's config setting Tab Type is set to auto, otherwise Atom-EditorConfig may not work as expected. Also disable whitespace package.
+# http://editorconfig.org/
+
+root = true
+
+[*]
+charset = utf-8
+indent_style = tab
+indent_size = 4
+trim_trailing_whitespace = true
+end_of_line = lf
+insert_final_newline = true
+
+# MARKDOWN Files
+[*.{md}]
+indent_style = space
+indent_size = 4
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..c6f9a44
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1 @@
+.vscode/settings.json
diff --git a/.markdownlint.json b/.markdownlint.json
new file mode 100644
index 0000000..d3f9e5f
--- /dev/null
+++ b/.markdownlint.json
@@ -0,0 +1,9 @@
+{
+ "MD013": false,
+ "MD030": {
+ "ul_single": 3,
+ "ol_single": 1,
+ "ul_multi": 3,
+ "ol_multi": 1
+ }
+ }
diff --git a/.vscode/extensions.json b/.vscode/extensions.json
new file mode 100644
index 0000000..21a9ce2
--- /dev/null
+++ b/.vscode/extensions.json
@@ -0,0 +1,8 @@
+{
+ "recommendations": [
+ "editorconfig.editorconfig",
+ "yzhang.markdown-all-in-one",
+ "DavidAnson.vscode-markdownlint",
+ "esbenp.prettier-vscode"
+ ]
+}
From bced8235fe8f296fc7cc8bbe18dc0a9cd0a95a34 Mon Sep 17 00:00:00 2001
From: MicLieg <38057464+MicLieg@users.noreply.github.com>
Date: Thu, 8 Aug 2024 00:33:58 +0200
Subject: [PATCH 2/3] Added markdownlint config
---
.markdownlint.json | 42 ++++++++++++++++++++++++++++++++++--------
1 file changed, 34 insertions(+), 8 deletions(-)
diff --git a/.markdownlint.json b/.markdownlint.json
index d3f9e5f..5d376cd 100644
--- a/.markdownlint.json
+++ b/.markdownlint.json
@@ -1,9 +1,35 @@
{
- "MD013": false,
- "MD030": {
- "ul_single": 3,
- "ol_single": 1,
- "ul_multi": 3,
- "ol_multi": 1
- }
- }
+ "no-duplicate-heading": false,
+ "no-inline-html": {
+ "allowed_elements": [
+ "figure",
+ "figcaption",
+ "img",
+ "p"
+ ]
+ },
+ "no-bare-urls": false,
+ "comment": "The following entries disable rules that may conflict with Prettier see https://github.com/DavidAnson/markdownlint/blob/v0.34.0/style/prettier.json",
+ "blanks-around-fences": false,
+ "blanks-around-headings": false,
+ "blanks-around-lists": false,
+ "code-fence-style": false,
+ "emphasis-style": false,
+ "heading-start-left": false,
+ "hr-style": false,
+ "line-length": false,
+ "list-indent": false,
+ "list-marker-space": false,
+ "no-blanks-blockquote": false,
+ "no-hard-tabs": false,
+ "no-missing-space-atx": false,
+ "no-missing-space-closed-atx": false,
+ "no-multiple-blanks": false,
+ "no-multiple-space-atx": false,
+ "no-multiple-space-blockquote": false,
+ "no-multiple-space-closed-atx": false,
+ "no-trailing-spaces": false,
+ "ol-prefix": false,
+ "strong-style": false,
+ "ul-indent": false
+}
From bf79e53134a68947f2672553daff0a01ee3528e5 Mon Sep 17 00:00:00 2001
From: MicLieg <38057464+MicLieg@users.noreply.github.com>
Date: Thu, 8 Aug 2024 00:34:28 +0200
Subject: [PATCH 3/3] Fixed markdownlint errors
---
README.md | 6 +-
SUMMARY.md | 202 +++---
alerts/README.md | 6 +-
alerts/discord.md | 4 +-
alerts/ifttt.md | 16 +-
alerts/pushbullet.md | 4 +-
alerts/pushover.md | 8 +-
alerts/rocket.chat.md | 9 +-
alerts/slack.md | 5 +-
alerts/telegram.md | 57 +-
commands/README.md | 4 +-
commands/backup.md | 5 +-
commands/change-password.md | 3 +-
commands/check-update.md | 4 +-
commands/console.md | 1 -
commands/debug.md | 3 +-
commands/details.md | 29 +-
commands/fastdl.md | 27 +-
commands/force-update.md | 1 -
commands/install.md | 22 +-
commands/map-compressor.md | 9 +-
commands/mods.md | 83 ++-
commands/monitor.md | 5 +-
commands/skeleton.md | 3 -
commands/start-stop-restart.md | 1 -
commands/test-alert.md | 1 -
commands/update-lgsm.md | 1 -
commands/update.md | 1 -
commands/validate.md | 1 -
configuration/README.md | 3 -
configuration/cronjobs.md | 23 +-
configuration/game-server-config.md | 2 +-
configuration/ip-address-configuration.md | 2 +-
configuration/linuxgsm-config.md | 32 +-
configuration/linuxgsm-stats.md | 25 +-
configuration/multiple-game-servers.md | 64 +-
configuration/running-on-boot.md | 1 -
configuration/start-parameters.md | 22 +-
developers/README.md | 3 -
developers/branching.md | 5 +-
developers/developer-commands.md | 15 +-
developers/developing-lgsm.md | 175 +++---
developers/development-workflow.md | 3 -
developers/linuxgsm-exit-codes.md | 43 +-
developers/query_gsquery.py.md | 3 +-
developers/syntax-and-conventions.md | 25 +-
features/README.md | 3 -
features/ansi-colors.md | 1 -
features/logging.md | 19 +-
features/message-display-time.md | 1 -
features/stop-mode.md | 3 -
game-servers/7-days-to-die.md | 4 +-
game-servers/README.md | 39 +-
game-servers/ark-survival-evolved.md | 124 ++--
game-servers/arma-3.md | 34 +-
game-servers/call-of-duty-4.md | 26 +-
game-servers/counter-strike-2.md | 50 +-
.../counter-strike-global-offensive.md | 54 +-
.../counter-strike-global-offensive/README.md | Bin 1383 -> 1367 bytes
.../installing-sourcemod-on-cs-go-server.md | 21 +-
.../sourcemod-csgo-server.md | 23 +-
game-servers/dont-starve-together.md | 21 +-
game-servers/factorio.md | 19 +-
game-servers/garrys-mod/README.md | 23 +-
game-servers/insurgency-sandstorm.md | 14 +-
game-servers/killing-floor-2.md | 23 +-
game-servers/memories-of-mars.md | 36 +-
game-servers/minecraft.md | 5 +-
game-servers/multi-theft-auto.md | 3 +-
game-servers/rust.md | 582 +++++++++---------
game-servers/sven-co-op.md | 13 +-
game-servers/sven-co-op/README.md | 13 +-
.../make-webserver-case-insensitive.md | Bin 1741 -> 1760 bytes
game-servers/teamspeak-3.md | 41 +-
game-servers/the-front-wip.md | 3 +-
game-servers/unreal-tournament-2004.md | 3 +-
game-servers/unreal-tournament-3.md | 117 ++--
game-servers/unreal-tournament-99.md | 20 +-
game-servers/valheim.md | 6 +-
guides/README.md | 1 -
guides/make-webserver-case-insensitive.md | Bin 1718 -> 1704 bytes
guides/sourcemod-csgo-server.md | 20 +-
linux/README.md | 3 -
linux/distro.md | 26 +-
linux/file-ownership.md | 27 +-
linux/firewalls.md | 5 +-
linux/ftp-scp.md | 31 +-
linux/network-interfaces.md | 3 +-
linux/permissions.md | 51 +-
linux/save-space-with-symlinking.md | 3 +-
networking/README.md | 1 -
networking/ip-address.md | 16 +-
networking/ports.md | 24 +-
networking/source-engine.md | 15 +-
other/README.md | 3 -
other/basic-usage.md | 17 +-
other/brand.md | 24 +-
other/server-migration.md | 1 -
requirements/README.md | 3 -
requirements/gamedig.md | 96 +--
requirements/glibc.md | 25 +-
requirements/java.md | 14 +-
requirements/jq.md | 19 +-
requirements/tmux.md | 22 +-
steamcmd/README.md | 18 +-
steamcmd/branch.md | 3 +-
steamcmd/errors.md | 77 +--
steamcmd/gslt.md | 48 +-
steamcmd/lan-discovery.md | 4 +-
steamcmd/steam-master-server.md | 14 +-
steamcmd/workshop.md | 26 +-
support/faq.md | 124 ++--
support/game-server.md | 41 +-
troubleshooting.md | 97 +--
114 files changed, 1555 insertions(+), 1658 deletions(-)
diff --git a/README.md b/README.md
index 964a7a4..ef6924f 100644
--- a/README.md
+++ b/README.md
@@ -1,13 +1,11 @@
# Home
-
-
The command-line tool for quick, simple deployment and management of Linux dedicated game servers.
-* User docs: [docs.linuxgsm.com](https://docs.linuxgsm.com)
-* Dev Docs: [dev-docs.linuxgsm.com](https://dev-docs.linuxgsm.com)
+- User docs: [docs.linuxgsm.com](https://docs.linuxgsm.com)
+- Dev Docs: [dev-docs.linuxgsm.com](https://dev-docs.linuxgsm.com)
## Welcome
diff --git a/SUMMARY.md b/SUMMARY.md
index f3c05d2..5a03dc8 100644
--- a/SUMMARY.md
+++ b/SUMMARY.md
@@ -1,103 +1,103 @@
# Table of contents
-* [Home](README.md)
-* [Getting Started](getting-started.md)
-* [Configuration](configuration/README.md)
- * [LinuxGSM Config](configuration/linuxgsm-config.md)
- * [Game Server Config](configuration/game-server-config.md)
- * [Start Parameters](configuration/start-parameters.md)
- * [cronjobs](configuration/cronjobs.md)
- * [Running on Boot](configuration/running-on-boot.md)
- * [Running Multiple Game Servers](configuration/multiple-game-servers.md)
- * [IP Address Configuration](configuration/ip-address-configuration.md)
- * [LinuxGSM Stats](configuration/linuxgsm-stats.md)
-* [Commands](commands/README.md)
- * [install](commands/install.md)
- * [start-stop-restart](commands/start-stop-restart.md)
- * [monitor](commands/monitor.md)
- * [test-alert](commands/test-alert.md)
- * [console](commands/console.md)
- * [debug](commands/debug.md)
- * [update](commands/update.md)
- * [check-update](commands/check-update.md)
- * [force-update](commands/force-update.md)
- * [validate](commands/validate.md)
- * [update-lgsm](commands/update-lgsm.md)
- * [backup](commands/backup.md)
- * [map-compressor](commands/map-compressor.md)
- * [details](commands/details.md)
- * [mods](commands/mods.md)
- * [skeleton](commands/skeleton.md)
- * [fastdl](commands/fastdl.md)
- * [change-password](commands/change-password.md)
-* [Game Servers](game-servers/README.md)
- * [7 Days to Die](game-servers/7-days-to-die.md)
- * [Arma 3](game-servers/arma-3.md)
- * [ARK: Survival Evolved](game-servers/ark-survival-evolved.md)
- * [Call of Duty 4](game-servers/call-of-duty-4.md)
- * [Dont Starve Together](game-servers/dont-starve-together.md)
- * [Counter-Strike 2](game-servers/counter-strike-2.md)
- * [Counter-Strike: Global Offensive](game-servers/counter-strike-global-offensive.md)
- * [Factorio](game-servers/factorio.md)
- * [Garry's Mod](game-servers/garrys-mod/README.md)
- * [Insurgency: SandStorm](game-servers/insurgency-sandstorm.md)
- * [Killing Floor 2](game-servers/killing-floor-2.md)
- * [Minecraft: Java Edition](game-servers/minecraft.md)
- * [Multi Theft Auto](game-servers/multi-theft-auto.md)
- * [Rust](game-servers/rust.md)
- * [Sven Co-op](game-servers/sven-co-op.md)
- * [TeamSpeak 3](game-servers/teamspeak-3.md)
- * [Unreal Tournament 99](game-servers/unreal-tournament-99.md)
- * [Unreal Tournament 2004](game-servers/unreal-tournament-2004.md)
- * [Unreal Tournament 3](game-servers/unreal-tournament-3.md)
- * [Valheim](game-servers/valheim.md)
- * [The Front \[WIP\]](game-servers/the-front-wip.md)
-* [Networking](networking/README.md)
- * [IP Address](networking/ip-address.md)
- * [Ports](networking/ports.md)
- * [Source Engine](networking/source-engine.md)
-* [Alerts](alerts/README.md)
- * [Discord](alerts/discord.md)
- * [Email](alerts/email.md)
- * [IFTTT](alerts/ifttt.md)
- * [Pushbullet](alerts/pushbullet.md)
- * [Pushover](alerts/pushover.md)
- * [Rocket.Chat](alerts/rocket.chat.md)
- * [Slack](alerts/slack.md)
- * [Telegram](alerts/telegram.md)
-* [Dependencies](requirements/README.md)
- * [Java](requirements/java.md)
- * [tmux](requirements/tmux.md)
- * [jq](requirements/jq.md)
- * [gamedig](requirements/gamedig.md)
- * [glibc](requirements/glibc.md)
-* [Features](features/README.md)
- * [ANSI Colors](features/ansi-colors.md)
- * [Stop Mode](features/stop-mode.md)
- * [Log Management](features/logging.md)
- * [Message Display Time](features/message-display-time.md)
-* [SteamCMD](steamcmd/README.md)
- * [Steam Master Server](steamcmd/steam-master-server.md)
- * [Game Server Login Token](steamcmd/gslt.md)
- * [Branch](steamcmd/branch.md)
- * [LAN Discovery](steamcmd/lan-discovery.md)
- * [Workshop](steamcmd/workshop.md)
- * [Error Codes](steamcmd/errors.md)
-* [Linux](linux/README.md)
- * [distro](linux/distro.md)
- * [ftp-scp](linux/ftp-scp.md)
- * [file-ownership](linux/file-ownership.md)
- * [firewalls](linux/firewalls.md)
- * [network-interfaces](linux/network-interfaces.md)
- * [permissions](linux/permissions.md)
- * [Symlinking and ln command](linux/save-space-with-symlinking.md)
-* [Troubleshooting](troubleshooting.md)
-* [FAQ](support/faq.md)
-* [Guides](guides/README.md)
- * [Security](guides/security.md)
- * [Make Webserver Case Insensitive](guides/make-webserver-case-insensitive.md)
- * [Sourcemod and Metamod:Source](guides/sourcemod-csgo-server.md)
-* [Other](other/README.md)
- * [server-migration](other/server-migration.md)
- * [basic-usage](other/basic-usage.md)
- * [brand](other/brand.md)
+- [Home](README.md)
+- [Getting Started](getting-started.md)
+- [Configuration](configuration/README.md)
+ - [LinuxGSM Config](configuration/linuxgsm-config.md)
+ - [Game Server Config](configuration/game-server-config.md)
+ - [Start Parameters](configuration/start-parameters.md)
+ - [cronjobs](configuration/cronjobs.md)
+ - [Running on Boot](configuration/running-on-boot.md)
+ - [Running Multiple Game Servers](configuration/multiple-game-servers.md)
+ - [IP Address Configuration](configuration/ip-address-configuration.md)
+ - [LinuxGSM Stats](configuration/linuxgsm-stats.md)
+- [Commands](commands/README.md)
+ - [install](commands/install.md)
+ - [start-stop-restart](commands/start-stop-restart.md)
+ - [monitor](commands/monitor.md)
+ - [test-alert](commands/test-alert.md)
+ - [console](commands/console.md)
+ - [debug](commands/debug.md)
+ - [update](commands/update.md)
+ - [check-update](commands/check-update.md)
+ - [force-update](commands/force-update.md)
+ - [validate](commands/validate.md)
+ - [update-lgsm](commands/update-lgsm.md)
+ - [backup](commands/backup.md)
+ - [map-compressor](commands/map-compressor.md)
+ - [details](commands/details.md)
+ - [mods](commands/mods.md)
+ - [skeleton](commands/skeleton.md)
+ - [fastdl](commands/fastdl.md)
+ - [change-password](commands/change-password.md)
+- [Game Servers](game-servers/README.md)
+ - [7 Days to Die](game-servers/7-days-to-die.md)
+ - [Arma 3](game-servers/arma-3.md)
+ - [ARK: Survival Evolved](game-servers/ark-survival-evolved.md)
+ - [Call of Duty 4](game-servers/call-of-duty-4.md)
+ - [Dont Starve Together](game-servers/dont-starve-together.md)
+ - [Counter-Strike 2](game-servers/counter-strike-2.md)
+ - [Counter-Strike: Global Offensive](game-servers/counter-strike-global-offensive.md)
+ - [Factorio](game-servers/factorio.md)
+ - [Garry's Mod](game-servers/garrys-mod/README.md)
+ - [Insurgency: SandStorm](game-servers/insurgency-sandstorm.md)
+ - [Killing Floor 2](game-servers/killing-floor-2.md)
+ - [Minecraft: Java Edition](game-servers/minecraft.md)
+ - [Multi Theft Auto](game-servers/multi-theft-auto.md)
+ - [Rust](game-servers/rust.md)
+ - [Sven Co-op](game-servers/sven-co-op.md)
+ - [TeamSpeak 3](game-servers/teamspeak-3.md)
+ - [Unreal Tournament 99](game-servers/unreal-tournament-99.md)
+ - [Unreal Tournament 2004](game-servers/unreal-tournament-2004.md)
+ - [Unreal Tournament 3](game-servers/unreal-tournament-3.md)
+ - [Valheim](game-servers/valheim.md)
+ - [The Front](game-servers/the-front-wip.md)
+- [Networking](networking/README.md)
+ - [IP Address](networking/ip-address.md)
+ - [Ports](networking/ports.md)
+ - [Source Engine](networking/source-engine.md)
+- [Alerts](alerts/README.md)
+ - [Discord](alerts/discord.md)
+ - [Email](alerts/email.md)
+ - [IFTTT](alerts/ifttt.md)
+ - [Pushbullet](alerts/pushbullet.md)
+ - [Pushover](alerts/pushover.md)
+ - [Rocket.Chat](alerts/rocket.chat.md)
+ - [Slack](alerts/slack.md)
+ - [Telegram](alerts/telegram.md)
+- [Dependencies](requirements/README.md)
+ - [Java](requirements/java.md)
+ - [tmux](requirements/tmux.md)
+ - [jq](requirements/jq.md)
+ - [gamedig](requirements/gamedig.md)
+ - [glibc](requirements/glibc.md)
+- [Features](features/README.md)
+ - [ANSI Colors](features/ansi-colors.md)
+ - [Stop Mode](features/stop-mode.md)
+ - [Log Management](features/logging.md)
+ - [Message Display Time](features/message-display-time.md)
+- [SteamCMD](steamcmd/README.md)
+ - [Steam Master Server](steamcmd/steam-master-server.md)
+ - [Game Server Login Token](steamcmd/gslt.md)
+ - [Branch](steamcmd/branch.md)
+ - [LAN Discovery](steamcmd/lan-discovery.md)
+ - [Workshop](steamcmd/workshop.md)
+ - [Error Codes](steamcmd/errors.md)
+- [Linux](linux/README.md)
+ - [distro](linux/distro.md)
+ - [ftp-scp](linux/ftp-scp.md)
+ - [file-ownership](linux/file-ownership.md)
+ - [firewalls](linux/firewalls.md)
+ - [network-interfaces](linux/network-interfaces.md)
+ - [permissions](linux/permissions.md)
+ - [Symlinking and ln command](linux/save-space-with-symlinking.md)
+- [Troubleshooting](troubleshooting.md)
+- [FAQ](support/faq.md)
+- [Guides](guides/README.md)
+ - [Security](guides/security.md)
+ - [Make Webserver Case Insensitive](guides/make-webserver-case-insensitive.md)
+ - [Sourcemod and Metamod:Source](guides/sourcemod-csgo-server.md)
+- [Other](other/README.md)
+ - [server-migration](other/server-migration.md)
+ - [basic-usage](other/basic-usage.md)
+ - [brand](other/brand.md)
diff --git a/alerts/README.md b/alerts/README.md
index ea7edbf..c0c433e 100644
--- a/alerts/README.md
+++ b/alerts/README.md
@@ -10,20 +10,18 @@ Alert settings can be changed in [LinuxGSM config](../configuration/linuxgsm-con
More info allows you to get further info about an alert using hastebin.com. Many alerts only give basic info, unlike email. More info displays the same output as email in a link within a basic alert.
-```
+```bash
# More info | https://docs.linuxgsm.com/alerts#more-info
postalert="off"
```
-###
-
### Display IP
The IP address you want to be displayed in alerts.
By default, the LinuxGSM alert will display the external internet facing IP. Failing this will fall back to the server IP. If the IP is incorrect it can be manually set using `displayip=""`.
-```
+```bash
# Display IP | https://docs.linuxgsm.com/alerts#display-ip
displayip=""
```
diff --git a/alerts/discord.md b/alerts/discord.md
index 828c6d3..7c6e171 100644
--- a/alerts/discord.md
+++ b/alerts/discord.md
@@ -1,6 +1,6 @@
# Discord
-![](<../.gitbook/assets/discord\_logo (1).png>)
+![Discord Logo](<../.gitbook/assets/discord_logo (1).png>)
[Discord](https://discordapp.com) is a VoIP app that allows other applications to send messages via a webhook. This functionality is used to allow users to recieve alerts about LinuxGSM.
@@ -15,7 +15,7 @@ A webhook is required to post alerts to a Discord text channel
5. Copy the Webhook URL
6. Turn on discord alert and enter the URL in to the [LinuxGSM settings](../configuration/linuxgsm-config.md). (`~/lgsm/config-lgsm//common.cfg`)
-```
+```bash
# Discord Alerts | https://github.com/GameServerManagers/LinuxGSM/wiki/Discord
discordalert="on"
discordwebhook="https://discordapp.com/api/webhooks/3539332633367897009/5t_K4GkuBaR2-69TsKqXmHIya1ck1tirnu_Fst-DUC00dye98eaa_I6uTIcHEsi7a17K"
diff --git a/alerts/ifttt.md b/alerts/ifttt.md
index f45ba72..a5bafbf 100644
--- a/alerts/ifttt.md
+++ b/alerts/ifttt.md
@@ -1,6 +1,6 @@
# IFTTT
-![](../.gitbook/assets/ifttt\_logo.png)
+![IFTT Logo](../.gitbook/assets/ifttt_logo.png)
There are hundreds in integrations available on [IFTTT](https://ifttt.com) allowing you to send alerts in all sorts of different ways to various services and devices. This functionality is used to allow users to recieve alerts about LinuxGSM.
@@ -8,12 +8,12 @@ There are hundreds in integrations available on [IFTTT](https://ifttt.com) allow
To enable IFTTT you will need to setup a Webhooks integration.
-1. Visit [https://ifttt.com/maker\_webhooks](https://ifttt.com/maker\_webhooks)
+1. Visit [https://ifttt.com/maker_webhooks](https://ifttt.com/maker_webhooks)
2. Login and connect the Webhooks integration
3. Select `Documentation` to get your IFTTT API key.
4. Paste the API key into [LinuxGSM settings](../configuration/linuxgsm-config.md).
-```
+```bash
# IFTTT Alerts | https://github.com/GameServerManagers/LinuxGSM/wiki/IFTTT
iftttalert="off"
ifttttoken="e-Yg8blVGDA15ewWvtZjUe"
@@ -24,7 +24,7 @@ iftttevent=""
An event name is a word used to trigger IFTTT event. This word is used when setting up an applet and can be any word you choose.
-```
+```bash
# IFTTT Alerts | https://github.com/GameServerManagers/LinuxGSM/wiki/IFTTT
iftttalert="off"
ifttttoken="e-Yg8blVGDA15ewWvtZjUe"
@@ -35,11 +35,11 @@ iftttevent="linuxgsm_alert"
IFTTT allows 3 different values to be sent using the webhook; `Value1`, `Value2` and `Value3`. LinuxGSM sends different data for each value as listed below.
-* Value1: Sends the name of the server e.g `csgoserver`
-* Value2: Sends an alert subject e.g `Alert - csgoserver - Test`
-* Value3: Sends an alert summary message.
+- Value1: Sends the name of the server e.g `csgoserver`
+- Value2: Sends an alert subject e.g `Alert - csgoserver - Test`
+- Value3: Sends an alert summary message.
-```
+```bash
Testing LinuxGSM Alert. No action to be taken.
Game Squad
Server name LinuxGSM Server 1
diff --git a/alerts/pushbullet.md b/alerts/pushbullet.md
index d05e071..8dc9ded 100644
--- a/alerts/pushbullet.md
+++ b/alerts/pushbullet.md
@@ -1,6 +1,6 @@
# Pushbullet
-![](<../.gitbook/assets/pushbullet\_logo (1).png>)
+![Pushbullet Logo](<../.gitbook/assets/pushbullet_logo (1).png>)
[Pushbullet](https://www.pushbullet.com) allows the sending of push notifications to various devices such a PC, phone and tablet. This functionality is used to allow users to recieve alerts about LinuxGSM.
@@ -25,6 +25,6 @@ Visit [here](https://www.pushbullet.com/my-channel) to generate a channel.
Once you have created the channel set the channeltag in the script without using hash `#`.
-```
+```bash
channeltag="myepicserver"
```
diff --git a/alerts/pushover.md b/alerts/pushover.md
index d1e5977..32d8ba2 100644
--- a/alerts/pushover.md
+++ b/alerts/pushover.md
@@ -1,6 +1,6 @@
# Pushover
-![](../.gitbook/assets/pushover\_logo.png)
+![Pushover Logo](../.gitbook/assets/pushover_logo.png)
[Pushover](https://pushover.net) allows the sending of push notifications to various devices such a PC, phone and tablet. This functionality is used to allow users to receive alerts about LinuxGSM.
@@ -10,13 +10,13 @@ A Pushover application and your user key is required to send messages to Pushove
Visit [here](https://pushover.net/apps/build) to create a new application.
-* name: LinuxGSM
-* Check the box agreeing to the Terms Of Service.
+- name: LinuxGSM
+- Check the box agreeing to the Terms Of Service.
Once the application has been created get the API key and user key (which can be found in the pushover dashboard).\
Turn on Pushover alerts and paste in API key and user key in the [LinuxGSM config](../configuration/linuxgsm-config.md).
-```
+```bash
# Pushover Alerts | https://github.com/GameServerManagers/LinuxGSM/wiki/Pushover
pushoveralert="on"
pushoveruserkey="yourpushoverid"
diff --git a/alerts/rocket.chat.md b/alerts/rocket.chat.md
index 4fe3c08..7295937 100644
--- a/alerts/rocket.chat.md
+++ b/alerts/rocket.chat.md
@@ -1,6 +1,6 @@
# Rocket.Chat
-![](../.gitbook/assets/rocket.chat.jpg)
+![Rocket.Chat Logo](../.gitbook/assets/rocket.chat.jpg)
**Rocket.chat** is an open-source collaboration tool.
@@ -8,9 +8,4 @@
1. Follow the [Rocket.chat guide](https://docs.rocket.chat/guides/administrator-guides/integrations#incoming-webhook-script) on how to create an incoming webhook.
2. Copy the Webhook URL.
-3. Turn on Rocket.chat alerts and copy the URL into the [LinuxGSM settings](../configuration/linuxgsm-config.md). \(`~/lgsm/config-lgsm//common.cfg`\)
-
-
-
-
-
+3. Turn on Rocket.chat alerts and copy the URL into the [LinuxGSM settings](../configuration/linuxgsm-config.md). \(`~/lgsm/config-lgsm//common.cfg`\)
diff --git a/alerts/slack.md b/alerts/slack.md
index ba2f857..ec45c50 100644
--- a/alerts/slack.md
+++ b/alerts/slack.md
@@ -1,6 +1,6 @@
# Slack
-![](../.gitbook/assets/slack_logo.png)
+![Slack logo](../.gitbook/assets/slack_logo.png)
[Slack](https://slack.com) is a cloud-based set of proprietary team collaboration software tools and online services.
@@ -12,9 +12,8 @@ A webhook is required to post alerts to a slack.
2. Copy the Webhook URL
3. Turn on slack alerts and enter the URL in to the [LinuxGSM settings](../configuration/linuxgsm-config.md). \(`~/lgsm/config-lgsm//common.cfg`\)
-```text
+```bash
# Slack Alerts | https://docs.linuxgsm.com/alerts/slack
slackalert="on"
slackwebhook="your webhook url"
```
-
diff --git a/alerts/telegram.md b/alerts/telegram.md
index 6541712..0394dbb 100644
--- a/alerts/telegram.md
+++ b/alerts/telegram.md
@@ -8,9 +8,9 @@
2. **Register Your Bot**: Send `/newbot` to @BotFather and follow the provided instructions to set up your bot. Upon completion, you will receive an API token.
- ![BotFather Chat](../.gitbook/assets/botfather_chat.png)
+ ![BotFather Chat](../.gitbook/assets/botfather_chat.png)
- ![New Bot](../.gitbook/assets/botfather_new_bot.png)
+ ![New Bot](../.gitbook/assets/botfather_new_bot.png)
3. **Configure LinuxGSM**: Fill in the API token into your [LinuxGSM config](../configuration/linuxgsm-config.md) as follows:
@@ -79,30 +79,30 @@
```json
{
- "update_id": 123456,
- "message": {
- "message_id": 123,
- "from": {
- "id": 12345,
- "is_bot": false,
- "first_name": "Sender",
- "username": "SenderUsername",
- "language_code": "en"
- },
- "chat": {
- "id": -123456789,
- "first_name": "Your Name",
- "username": "YourUsername",
- "type": "supergroup"
- },
- "date": 1709691014,
- "message_thread_id": 11, // Use this number as your telegramthreadid
- "forum_topic_created": {
- "name": "LinuxGSM",
- "icon_color": 12345
- },
- "is_topic_message": true
- }
+ "update_id": 123456,
+ "message": {
+ "message_id": 123,
+ "from": {
+ "id": 12345,
+ "is_bot": false,
+ "first_name": "Sender",
+ "username": "SenderUsername",
+ "language_code": "en"
+ },
+ "chat": {
+ "id": -123456789,
+ "first_name": "Your Name",
+ "username": "YourUsername",
+ "type": "supergroup"
+ },
+ "date": 1709691014,
+ "message_thread_id": 11, // Use this number as your telegramthreadid
+ "forum_topic_created": {
+ "name": "LinuxGSM",
+ "icon_color": 12345
+ },
+ "is_topic_message": true
+ }
}
```
@@ -114,7 +114,7 @@
telegramalert="on"
telegramtoken="XXXXXXXXX:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
telegramchatid="123456789"
- telegramthreadid="5" # Fill in your thread ID
+ telegramthreadid="5" # Fill in your thread ID
telegramsilentnotification="false"
curlcustomstring=""
```
@@ -129,7 +129,7 @@ If you receive an alert on Telegram in the right place (group or private chat),
For specific needs such as bypassing network restrictions, you can specify custom cURL arguments in the configuration.
-```bash
+````bash
# 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".
@@ -141,3 +141,4 @@ For specific needs such as bypassing network restrictions, you can specify custo
telegramsilentnotification="false"
curlcustomstring="--socks5 ipaddr:port" # Fill in your custom cURL string
```
+````
diff --git a/commands/README.md b/commands/README.md
index 84d6125..e08b7bf 100644
--- a/commands/README.md
+++ b/commands/README.md
@@ -39,9 +39,7 @@ Replace `./gameserver` with the actual script name. Every command has a short ve
| ----------------------------------- | ----------------------------- | ----------------- |
| [Map Compressor](map-compressor.md) | `./gameserver map-compressor` | `./gameserver mc` |
-### Rust
-
-
+### Rust
| Command Name | Command | Short |
| ----------------------------------- | ------------------------ | ----------------- |
diff --git a/commands/backup.md b/commands/backup.md
index 26d37bd..4d675d7 100644
--- a/commands/backup.md
+++ b/commands/backup.md
@@ -82,9 +82,9 @@ By default backups are saved in the `backup` directory.
```text
├── home
├── csgoserver
- ├── ** backup **
+ ├── ** backup **
├── lgsm
- ├── log
+ ├── log
├── serverfiles
```
@@ -141,4 +141,3 @@ duplicity-backup.sh is a very useful bash wrapper to help automate duplicity.
[rclone](http://rclone.org) is similar to rsync however can easily sync to cloud storage solutions.
{% embed url="http://rclone.org" caption="" %}
-
diff --git a/commands/change-password.md b/commands/change-password.md
index d764f13..fa2f6c7 100644
--- a/commands/change-password.md
+++ b/commands/change-password.md
@@ -12,11 +12,10 @@ The password is given on server installation. Passwords can also be found in the
## Supported Servers
-* TeamSpeak 3
+- TeamSpeak 3
## Commands
Standard: `./gameserver change-password`
Short: `./gameserver pw`
-
diff --git a/commands/check-update.md b/commands/check-update.md
index 6dc4cb5..34a541b 100644
--- a/commands/check-update.md
+++ b/commands/check-update.md
@@ -28,7 +28,7 @@ A cronjob can be run as the `gameserver user` or as `root`, this choice is down
Here is an example of a user-based cronjob to check for an update once an hour.
-```
+```bash
0 * * * * /home/username/gameserver check-update > /dev/null 2>&1
```
@@ -38,7 +38,7 @@ Here is an example of a root-based cronjob to check for an update once an hour.
The extra `su - username -c` indicates which user to run the script as.
{% endhint %}
-```
+```bash
0 * * * * su - username -c '/home/username/gameserver update' > /dev/null 2>&1
```
diff --git a/commands/console.md b/commands/console.md
index 8549751..8ae443c 100644
--- a/commands/console.md
+++ b/commands/console.md
@@ -31,4 +31,3 @@ Take your time as this can be confusing at first.
{% hint style="danger" %}
Pressing `CTRL+c` while in console will kill the [tmux](../requirements/tmux.md) session, stopping the game server.
{% endhint %}
-
diff --git a/commands/debug.md b/commands/debug.md
index af363c5..2810cb6 100644
--- a/commands/debug.md
+++ b/commands/debug.md
@@ -1,6 +1,6 @@
# debug
-The `debug` command is used to start your server directly in your current terminal \(outside of \([tmux](../requirements/tmux.md)\) and should only be used for diagnosing issues. If a game server is already running in the background debug will stop it to start a `debug` session.
+The `debug` command is used to start your server directly in your current terminal, outside of [tmux](../requirements/tmux.md), and should only be used for diagnosing issues. If a game server is already running in the background debug will stop it to start a `debug` session.
## Commands
@@ -11,4 +11,3 @@ Short: `./gameserver d`
{% hint style="success" %}
To exit debug mode use `CTRL+c`
{% endhint %}
-
diff --git a/commands/details.md b/commands/details.md
index bca2702..33a185c 100644
--- a/commands/details.md
+++ b/commands/details.md
@@ -4,13 +4,13 @@ The `details` command allows access to various useful information about the game
## Commands
-### details
+## details
Standard: `./gameserver details`
Short: `./gameserver dt`
-### postdetails
+## postdetails
`postdetails` \(using hastebin\) is used to share server details, to help with support, while hiding sensitive information:
@@ -18,22 +18,22 @@ Standard: `./gameserver postdetails`
Short: `./gameserver pd`
-## Details Provided
+### Details Provided
Various relevant details are provided including:
-* Distro Details
-* Performance
-* Disk usage
-* Server Name
-* Server IP
-* Server Ports
-* Passwords
-* Config File
-* Backups
-* Server parameters
+- Distro Details
+- Performance
+- Disk usage
+- Server Name
+- Server IP
+- Server Ports
+- Passwords
+- Config File
+- Backups
+- Server parameters
-## Example output
+### Example output
```text
Distro Details
@@ -95,4 +95,3 @@ netstat -atunp | grep srcds_linux
DESCRIPTION DIRECTION PORT PROTOCOL
> Game/RCON INBOUND 27015 tcp/udp
```
-
diff --git a/commands/fastdl.md b/commands/fastdl.md
index f3662ec..ef95c09 100644
--- a/commands/fastdl.md
+++ b/commands/fastdl.md
@@ -10,7 +10,7 @@ LinuxGSM FastDL automatically creates the web directories and compresses the con
## Supported Servers
-* All Source engine servers
+- All Source engine servers
## Commands
@@ -20,20 +20,21 @@ Short: `./gameserver fd`
## Supported file formats
-* Maps (.bsp)
-* Materials (.vtf, .vmt, .png, .svg)
-* Models (.vtx, .vvd, .mdl, .phy)
-* Particles (.pcf)
-* Sounds (.wav, .mp3, .ogg)
-* Fonts (.otf, .ttf)
-* Images (.png, .svg)
+- Maps (.bsp)
+- Materials (.vtf, .vmt, .png, .svg)
+- Models (.vtx, .vvd, .mdl, .phy)
+- Particles (.pcf)
+- Sounds (.wav, .mp3, .ogg)
+- Fonts (.otf, .ttf)
+- Images (.png, .svg)
## Requirements
-* Web server on the game server (Apache/Nginx).
+- Web server on the game server (Apache/Nginx).
or
-* Access to a remote web server.
+
+- Access to a remote web server.
## Usage
@@ -61,7 +62,7 @@ Firstly make sure your subdomain redirects to your game server and that Apache2
See the example below and edit the relevent details.
-```
+```text
ServerAdmin adminemail@domain.com
ServerName subdomain.domain.com
@@ -81,7 +82,7 @@ See the example below and edit the relevent details.
Enable your website by restarting Apache2
-```
+```bash
a2ensite yourvirtualhost.com.conf
service apache2 reload
```
@@ -96,7 +97,7 @@ The new url will need to be added to the [game server config](../configuration/g
Make sure you have this:
-```
+```bash
sv_downloadurl "http://subdomain.domain.com/fastdl"
sv_allowdownload 1
```
diff --git a/commands/force-update.md b/commands/force-update.md
index 3ccdbd9..0c5dae5 100644
--- a/commands/force-update.md
+++ b/commands/force-update.md
@@ -13,4 +13,3 @@ Force update is a useful feature for admins that restart their server daily. It
Standard: `./gameserver force-update`
Short: `./gameserver fu`
-
diff --git a/commands/install.md b/commands/install.md
index aa7c746..6daada6 100644
--- a/commands/install.md
+++ b/commands/install.md
@@ -4,11 +4,11 @@ LinuxGSM allows for the simple installation of game servers. The installer is de
The installer will:
-* Create required directories
-* Install/advise on required dependencies
-* Download the game server files
-* Load config files
-* Apply any fixes required to get the game server working
+- Create required directories
+- Install/advise on required dependencies
+- Download the game server files
+- Load config files
+- Apply any fixes required to get the game server working
## Commands
@@ -61,17 +61,17 @@ LinuxGSM may fail to run if the correct permissions have not been used. This fau
Common faults include:
-* Trying to install the LinuxGSM as root.
-* Trying to install LinuxGSM in a directory not owned by the correct user.
-* Not making `gameserver` file executable using the `chmod +x` command.
+- Trying to install the LinuxGSM as root.
+- Trying to install LinuxGSM in a directory not owned by the correct user.
+- Not making `gameserver` file executable using the `chmod +x` command.
If trying to run as `root` LinuxGSM will fail to run. See [FAQ](../support/faq.md).
To check if the correct user owns the directory or `gameserver` file, use `ls -al`
-**Example output**
+#### Example output
-```
+```bash
drwxrwxr-x 5 nmrihserver nmrihserver 4096 Jul 17 20:25 lgsm
drwxr-xr-x 4 nmrihserver nmrihserver 4096 Aug 27 2015 log
-rwxrwxr-x 1 nmrihserver nmrihserver 3885 Aug 9 23:04 nmrihserver
@@ -111,7 +111,7 @@ To check your available storage, use:
Make sure you can `ping` using a hostname.
-```
+```bash
ping google.com
```
diff --git a/commands/map-compressor.md b/commands/map-compressor.md
index 15babe1..496b949 100644
--- a/commands/map-compressor.md
+++ b/commands/map-compressor.md
@@ -4,14 +4,13 @@ The `map-compressor` command is used to compress maps for some Unreal engine ser
## Supported Servers
-* Unreal Tournament 99
-* Unreal Tournament 2004
-* Killing Floor
-* Red Orchestra
+- Unreal Tournament 99
+- Unreal Tournament 2004
+- Killing Floor
+- Red Orchestra
## Commands
Standard: `./gameserver map-compressor`
Short: `./gameserver mc`
-
diff --git a/commands/mods.md b/commands/mods.md
index 5509f49..bd6046c 100644
--- a/commands/mods.md
+++ b/commands/mods.md
@@ -1,6 +1,6 @@
# mods
-LinuxGSM supports the installation, updating, and removing of selected mods and add-ons for some games and engines.
+LinuxGSM supports the installation, updating, and removing of selected mods and add-ons for some games and engines.
Zip add-ons are currently the only supported installations.
## Commands
@@ -29,69 +29,69 @@ Zip add-ons are currently the only supported installations.
### Goldsrc Engine Games \(v20.6.0+\)
-* Metamod
-* AMX Mod X
+- Metamod
+- AMX Mod X
**Additional Game Specific AMX Mod X addons:**
-* Counter-Strike 1.6
-* Day of Defeat
-* Team Fortress Classic
-* The Specialists
-* Natural Selection
+- Counter-Strike 1.6
+- Day of Defeat
+- Team Fortress Classic
+- The Specialists
+- Natural Selection
### Source Engine Games
-* Metamod: Source
-* SourceMod
+- Metamod: Source
+- SourceMod
#### For Garry's Mod
-* ACF
-* ACF Missiles
-* DarkRP
-* DarkRP Modification
-* PAC3
-* UClip
-* ULib
-* ULX
-* UTime
+- ACF
+- ACF Missiles
+- DarkRP
+- DarkRP Modification
+- PAC3
+- UClip
+- ULib
+- ULX
+- UTime
### Unity3D Games
Rust, Hurtworld, 7 Days To Die
-* Oxide Mod
+- Oxide Mod
## Technical Details
### Install
-* All available mods are defined in the mods\_list.sh.
-* Mods hosted on github use the latest archive link available. Others are scraped through a mods download mirrors in order to find the latest version.
-* If some mods are already installed, a list of installed mods shows up. If a user tries to install a mod that is already installed, there will be a warning that any custom files will be overwritten.
-* A list of available mods is displayed to the user, including the developers website.
-* After the user selects a mod, the file gets downloaded and extracted to a temporary directory.
-* A list of the mod files is created at `lgsm/mods/modname-files.txt`. This list allows the mod to be removed if required. LinuxGSM developers have whitelisted important customisable files such as mod config files that will not be removed. If there are any important files that have been missed please raise an issue.
-* Files and directories then get copied to the correct destination.
-* LinuxGSM updates a file containing a list of installed mods `lgsm/mods/installed-mods.txt`.
+- All available mods are defined in the mods_list.sh.
+- Mods hosted on github use the latest archive link available. Others are scraped through a mods download mirrors in order to find the latest version.
+- If some mods are already installed, a list of installed mods shows up. If a user tries to install a mod that is already installed, there will be a warning that any custom files will be overwritten.
+- A list of available mods is displayed to the user, including the developers website.
+- After the user selects a mod, the file gets downloaded and extracted to a temporary directory.
+- A list of the mod files is created at `lgsm/mods/modname-files.txt`. This list allows the mod to be removed if required. LinuxGSM developers have whitelisted important customisable files such as mod config files that will not be removed. If there are any important files that have been missed please raise an issue.
+- Files and directories then get copied to the correct destination.
+- LinuxGSM updates a file containing a list of installed mods `lgsm/mods/installed-mods.txt`.
### Update
-* The list `lgsm/mods/installed-mods.txt` is used to identify which mods are installed. If a non-referenced mod is found, the updater will stop with an error.
-* Three update types are available
- * OVERWRITE will overwrite all mod files.
- * NOUPDATE will prevent this mod from being updated. Useful for a framework that is designed to be entirely customized.
- * RETAIN keeps the whitelisted files and updating everything else.
-* As there is no easy way to check for mod versions, the update process will update every single installed mod every time the command is run.
-* The process is pretty similar as the installation, mod gets downloaded, extracted, files get removed. Removed files go to a temp file list, then file list list built and temp file list added to it. Finaly the mod gets copied to destination using `cp -Rf`.
-* If an admin wants to overwrite custom files, then he can either uninstall/reinstall the mod, or just install over it.
+- The list `lgsm/mods/installed-mods.txt` is used to identify which mods are installed. If a non-referenced mod is found, the updater will stop with an error.
+- Three update types are available
+ - OVERWRITE will overwrite all mod files.
+ - NOUPDATE will prevent this mod from being updated. Useful for a framework that is designed to be entirely customized.
+ - RETAIN keeps the whitelisted files and updating everything else.
+- As there is no easy way to check for mod versions, the update process will update every single installed mod every time the command is run.
+- The process is pretty similar as the installation, mod gets downloaded, extracted, files get removed. Removed files go to a temp file list, then file list list built and temp file list added to it. Finaly the mod gets copied to destination using `cp -Rf`.
+- If an admin wants to overwrite custom files, then he can either uninstall/reinstall the mod, or just install over it.
### Remove
-* A list of installed mods is displayed, user has to pick one to remove.
-* Any file listed in `lgsm/mods/modname-files.txt` gets removed.
-* The file list gets removed, as well as the entry in `installed-mods.txt`.
+- A list of installed mods is displayed, user has to pick one to remove.
+- Any file listed in `lgsm/mods/modname-files.txt` gets removed.
+- The file list gets removed, as well as the entry in `installed-mods.txt`.
## Adding mod support
@@ -107,10 +107,9 @@ If there is a mod you wish to see supported by LinuxGSM please raise a GitHub is
If you wish to create a pull-request yourself for this, please make sure you read the "Developer" section at the bottom right of the wiki.
-Usually, editing mods\_list.sh should be enough to add mod support. This script contains comments helping you to understand how to use it.
+Usually, editing mods_list.sh should be enough to add mod support. This script contains comments helping you to understand how to use it.
Basically: Add an array variable containing mod info, then add the array to the global array.
-Long explanation: The list is based on arrays, used to define all mod properties. You need to make sure that every value is filled up and in the correct order, that mod commands are unique and that multiple choices values are ended with a semicolon \(;\), otherwise the last value will be ignored.
+Long explanation: The list is based on arrays, used to define all mod properties. You need to make sure that every value is filled up and in the correct order, that mod commands are unique and that multiple choices values are ended with a semicolon \(;\), otherwise the last value will be ignored.
You might need to add an entry in `fn_mod_tidy_files_list` from `mods_core.sh` in order to remove lines from mod's file list so that they do not get wrongly removed with the mods-remove command. For further assistance on developing this contact UltimateByte who developed those functions and dgibbs that reworked it should be able to help.
-
diff --git a/commands/monitor.md b/commands/monitor.md
index 1265924..3d0c673 100644
--- a/commands/monitor.md
+++ b/commands/monitor.md
@@ -32,13 +32,13 @@ Use these cron examples to setup automated monitoring.
Replace the username and gameserver according to your requirements.
{% endhint %}
-* A _user_ based cronjob to monitor your server every 5 minutes .
+- A _user_ based cronjob to monitor your server every 5 minutes .
```text
*/5 * * * * /home/username/gameserver monitor > /dev/null 2>&1
```
-* A _root user_ based cronjob to monitor your server every 5 minutes .
+- A _root user_ based cronjob to monitor your server every 5 minutes .
```text
*/5 * * * * su - username -c '/home/username/gameserver monitor' > /dev/null 2>&1
@@ -63,4 +63,3 @@ querydelay="1"
## Monitor Activation
Starting and stopping the game server activates and deactivates `monitor`. This prevents the server being manually stopped only to be started again by `monitor`.
-
diff --git a/commands/skeleton.md b/commands/skeleton.md
index 3bc1c5c..edbde32 100644
--- a/commands/skeleton.md
+++ b/commands/skeleton.md
@@ -19,6 +19,3 @@ The skeleton directory is created in `skel`.
### Use Case
Skeleton can be used alongside version control software like [git](https://guides.github.com/introduction/git-handbook/) or backed up to save custom configurations for a game server. If a change is added to your git repository/backup it is possible to pull/copy the updates to your game server. If you want to re-deploy a game server you can create a fresh installation and pull/copy in the custom changes over the top of the fresh install.
-
-
-
diff --git a/commands/start-stop-restart.md b/commands/start-stop-restart.md
index 9d37e09..0c2a573 100644
--- a/commands/start-stop-restart.md
+++ b/commands/start-stop-restart.md
@@ -21,4 +21,3 @@ Stop will attempt a [graceful shutdown](../features/stop-mode.md) of a game serv
Will simply stop, then the start the server.
`./gameserver restart`
-
diff --git a/commands/test-alert.md b/commands/test-alert.md
index 0395add..3049be2 100644
--- a/commands/test-alert.md
+++ b/commands/test-alert.md
@@ -7,4 +7,3 @@ The `test-alert` command is used to send a test alert that is used to ensure tha
Standard: `./gameserver test-alert`
Short: `./gameserver ta`
-
diff --git a/commands/update-lgsm.md b/commands/update-lgsm.md
index a4df97d..11ab090 100644
--- a/commands/update-lgsm.md
+++ b/commands/update-lgsm.md
@@ -13,4 +13,3 @@ It is a good idea to regularly update LinuxGSM to receive new features and bug f
Standard: `./gameserver update-lgsm`
Short: `./gameserver ul`
-
diff --git a/commands/update.md b/commands/update.md
index 7cc3f9b..5a0b721 100644
--- a/commands/update.md
+++ b/commands/update.md
@@ -49,4 +49,3 @@ The extra `su - username -c` indicates which user to run the script as.
It is recommended to check for updates once per hour.
[crontab.guru](https://crontab.guru/) is a great resource to generate cronjobs.
-
diff --git a/commands/validate.md b/commands/validate.md
index 117af6f..5c99f7a 100644
--- a/commands/validate.md
+++ b/commands/validate.md
@@ -13,4 +13,3 @@ Validation will overwrite any files that have been changed. This may cause issue
Standard: `./gameserver validate`
Short: `./gameserver v`
-
diff --git a/configuration/README.md b/configuration/README.md
index fb00b57..a025a48 100644
--- a/configuration/README.md
+++ b/configuration/README.md
@@ -1,4 +1 @@
# Configuration
-
-
-
diff --git a/configuration/cronjobs.md b/configuration/cronjobs.md
index c47be95..aebf600 100644
--- a/configuration/cronjobs.md
+++ b/configuration/cronjobs.md
@@ -4,11 +4,11 @@ To automate LinuxGSM you can set scheduled tasks using cronjobs, to run any comm
Commonly used scheduled tasks are:
-* Automatically check for updates [\(update command\)](../commands/update.md)
-* Automatically check for server crash and restart if needed [\(monitor command\)](../commands/monitor.md)
-* Automatically keep LinuxGSM up to date [\(update-lgsm command\)](../commands/update-lgsm.md)
-* Automatically restart the server at a given time [\(restart command\)](../commands/start-stop-restart.md)
-* Automatically update and restart the server [\(force-update command\)](../commands/force-update.md)
+- Automatically check for updates [\(update command\)](../commands/update.md)
+- Automatically check for server crash and restart if needed [\(monitor command\)](../commands/monitor.md)
+- Automatically keep LinuxGSM up to date [\(update-lgsm command\)](../commands/update-lgsm.md)
+- Automatically restart the server at a given time [\(restart command\)](../commands/start-stop-restart.md)
+- Automatically update and restart the server [\(force-update command\)](../commands/force-update.md)
## Crontab
@@ -20,7 +20,7 @@ crontab -e
## Cronjob as a user or root
-It is possible to set up cronjobs as any user including root. The recommended way is to set up cronjobs using the game servers user account. However, If you run several game server installations on your server you may want to centrally manage cronjobs then using root.
+It is possible to set up cronjobs as any user including root. The recommended way is to set up cronjobs using the game servers user account. However, If you run several game server installations on your server you may want to centrally manage cronjobs then using root.
### User cronjob
@@ -60,7 +60,7 @@ It is possible to set up cronjobs as any user including root. The recommended wa
0 */2 * * *
```
-### Every two hours at 30 minutes past the hour
+### Every two hours at 30 minutes past the hour
```bash
30 */2 * * *
@@ -126,10 +126,10 @@ Here is an example of a root based cronjob to monitor your server every 5 minute
Below is a recommended basic example and will do the following:
-* Monitor your server every 5 minutes.
-* Check for an update every 30 minutes, update and restart only if an update is detected.
-* Restart and check for an update every day at 4:30 AM
-* Update check and update LinuxGSM every Sunday at midnight.
+- Monitor your server every 5 minutes.
+- Check for an update every 30 minutes, update and restart only if an update is detected.
+- Restart and check for an update every day at 4:30 AM
+- Update check and update LinuxGSM every Sunday at midnight.
```bash
*/5 * * * * /home/username/gameserver monitor > /dev/null 2>&1
@@ -137,4 +137,3 @@ Below is a recommended basic example and will do the following:
30 4 * * * /home/username/gameserver force-update > /dev/null 2>&1
0 0 * * 0 /home/username/gameserver update-lgsm > /dev/null 2>&1
```
-
diff --git a/configuration/game-server-config.md b/configuration/game-server-config.md
index e6acdca..efcf39a 100644
--- a/configuration/game-server-config.md
+++ b/configuration/game-server-config.md
@@ -16,7 +16,7 @@ The `details` command will provide you with some config file information. Howeve
### Sample output example
-```
+```text
./gmodserver details
gmodserver Script Details
diff --git a/configuration/ip-address-configuration.md b/configuration/ip-address-configuration.md
index b57a381..a2955e9 100644
--- a/configuration/ip-address-configuration.md
+++ b/configuration/ip-address-configuration.md
@@ -12,6 +12,6 @@ By default, LinuxGSM will use the [0.0.0.0](../networking/ip-address.md#0.0.0.0)
Internet IP: LinuxGSM will try to gather the server's internet IP address to be shown in [details](../commands/details.md).
-Specific IP: If a specific IP address needs to be set it can be done using the `ip` setting in the [LinuxGSM ](linuxgsm-config.md)or [game server ](game-server-config.md)config files. Depending upon the game server this will allow it to _bind_ to a specific IP address.
+Specific IP: If a specific IP address needs to be set it can be done using the `ip` setting in the [LinuxGSM](linuxgsm-config.md) or [game server config](game-server-config.md) files. Depending upon the game server this will allow it to _bind_ to a specific IP address.
Display IP: If you want to change the IP address displayed in _alerts_ you can use the [displayip](../alerts/#display-ip).
diff --git a/configuration/linuxgsm-config.md b/configuration/linuxgsm-config.md
index 61dd69c..9f9a462 100644
--- a/configuration/linuxgsm-config.md
+++ b/configuration/linuxgsm-config.md
@@ -10,7 +10,7 @@ The configuration of LinuxGSM is handled through several config files, which are
Relative to your installation directory, config files are located in:
-```
+```text
lgsm/config-lgsm/gameserver
```
@@ -58,7 +58,7 @@ When the configuration files are loaded by LinuxGSM, they adhere to a specific o
#### LinuxGSM config load order
-```
+```text
_default.cfg -> common.cfg -> instance.cfg
```
@@ -70,14 +70,14 @@ This configuration fits most scenarios, where you have a simple installation wit
1. Browse to the `config-lgsm` directory
-```
+```bash
cd lgsm/config-lgsm/
```
1. Use `ls` to list the directory contents and find the name of your instance.cfg.
2. Use `cat` or `nano` to see the contents of `_default.cfg` .
-```
+```bash
cat _default.cfg
```
@@ -93,7 +93,7 @@ This configuration is useful for [multiple instances](multiple-game-servers.md#s
1. Browse to the `config-lgsm` directory
-```
+```bash
cd lgsm/config-lgsm/
```
@@ -107,59 +107,59 @@ It is recommended you only copy the settings you want to change from `_default.c
1. Copy any settings you want to apply to a specific instance to its `instance.cfg`.
-```
+```text
csgoserver.cfg
csgoserver-2.cfg
```
## Examples
-#### Example 1
+### Example 1
Load `de_nuke` as default map on `csgoserver`:
-```
+```text
_default.cfg: defaultmap="de_dust2"
common.cfg: NOT SET
csgoserver.cfg: defaultmap="de_nuke"
```
-#### Example 2
+### Example 2
Load `cs_office` as default map on `csgoserver`:
-```
+```text
_default.cfg: defaultmap="de_dust2"
common.cfg: defaultmap="cs_office"
csgoserver.cfg: NOT SET
```
-#### Example 3
+### Example 3
Load `de_dust2` as default map on `csgoserver`:
-```
+```text
_default.cfg: defaultmap="de_dust2"
common.cfg: NOT SET
csgoserver.cfg: NOT SET
```
-#### Example 4
+### Example 4
Load `de_nuke` as default map on `csgoserver` instance and `de_inferno` on `csgoserver-2` instance:
-```
+```text
_default.cfg: defaultmap="de_dust2"
common.cfg: defaultmap="de_inferno"
csgoserver.cfg: defaultmap="de_nuke"
csgoserver-2.cfg: NOT SET
```
-#### Example 5
+### Example 5
Load `de_nuke` as default map on `csgoserver` instance and `cs_office` on `csgoserver-2` instance:
-```
+```text
_default.cfg: defaultmap="de_dust2"
common.cfg: NOT SET
csgoserver.cfg: defaultmap="de_nuke"
diff --git a/configuration/linuxgsm-stats.md b/configuration/linuxgsm-stats.md
index 38042b8..e4f8b7f 100644
--- a/configuration/linuxgsm-stats.md
+++ b/configuration/linuxgsm-stats.md
@@ -14,26 +14,26 @@ Below is a list of types of data collected
### Basic Info
-* Game Server - Knowing the game server you are running gives insights into which servers are popular and can help shape development priorities.
-* Distro - It is useful to know which distros LinuxGSM is being used on to help focus development.
-* LinuxGSM Version - The currently installed version of LinuxGSM.
-* Alert Types - The alert types that have been turned on.
+- Game Server - Knowing the game server you are running gives insights into which servers are popular and can help shape development priorities.
+- Distro - It is useful to know which distros LinuxGSM is being used on to help focus development.
+- LinuxGSM Version - The currently installed version of LinuxGSM.
+- Alert Types - The alert types that have been turned on.
### Game Server Usage
Gathering game server usage helps set the minimum required hardware for each game server. This is particularly useful for resource-intensive servers.
-* CPU Used - The CPU usage in MHz (rounded to the nearest 100MHz) of the game server.
-* RAM Used - The memory usage in MB (rounded to the nearest 100MB) of the game server.
-* Disk Used - The storage taken by the game server (serverfiles directory) of the game server.
+- CPU Used - The CPU usage in MHz (rounded to the nearest 100MHz) of the game server.
+- RAM Used - The memory usage in MB (rounded to the nearest 100MB) of the game server.
+- Disk Used - The storage taken by the game server (serverfiles directory) of the game server.
### Server Hardware
Gathering information on the server hardware being used to host a Game Server. This provides useful stats on the sorts of hardware game server admins are deciding to use.
-* CPU - Gathers the CPU Manufacturer and Model.
-* RAM - Total server RAM.
-* Disk Space - Total server disk space.
+- CPU - Gathers the CPU Manufacturer and Model.
+- RAM - Total server RAM.
+- Disk Space - Total server disk space.
### Country of origin
@@ -51,7 +51,7 @@ Short answer - Yes
Long answer - All information gathered is anonymous, the server IP address, hostname, etc., or other identifying information is not collected. \
\
-When LinuxGSM Stats is first run it creates a [UUID (Unique identifier)](https://en.wikipedia.org/wiki/Universally\_unique\_identifier) which is a randomly generated ID to allow Google Analytics to identify your unique information anonymously. Since this ID is random there is no way to know where the info is from, only that it is from the same sender.
+When LinuxGSM Stats is first run it creates a [UUID (Unique identifier)](https://en.wikipedia.org/wiki/Universally_unique_identifier) which is a randomly generated ID to allow Google Analytics to identify your unique information anonymously. Since this ID is random there is no way to know where the info is from, only that it is from the same sender.
The UUID is located in`lgsm/data/uuid.txt`,if this file is deleted a new UUID will be generated.
@@ -64,6 +64,3 @@ Data is sent every time the monitor runs as this is the only way to regularly se
## How can I enable this feature?
To enable LinuxGSM Stats simply add the `stats="on"` setting to the `common.cfg` file. This can also be enabled on install.
-
-
-
diff --git a/configuration/multiple-game-servers.md b/configuration/multiple-game-servers.md
index 97b59d9..2fd1907 100644
--- a/configuration/multiple-game-servers.md
+++ b/configuration/multiple-game-servers.md
@@ -14,24 +14,24 @@ Make sure that you examine this page carefully and understand all of its content
## Prerequisites
-#### Vocabulary
+### Vocabulary
You need some definitions to make this guide clear.
-* **Installation:** An _installation_ refers to the base directory of a game server. This is where the files required to run a game server is stored.
+- **Installation:** An _installation_ refers to the base directory of a game server. This is where the files required to run a game server is stored.
-```
+```text
/home/gameserver/serverfiles
```
-* **Instance:** Each individual game server is referred to as an _instance._ There might be multiple instances running per installation. An instance is started by running the `./gameserver` script
+- **Instance:** Each individual game server is referred to as an _instance._ There might be multiple instances running per installation. An instance is started by running the `./gameserver` script
-```
+```text
/home/gameserver/gameserver
/home/gameserver/gameserver-2
```
-* **User:** Each game server installation should run using its own _Linux user_. Although it is possible to have multiple _installations_ per user.
+- **User:** Each game server installation should run using its own _Linux user_. Although it is possible to have multiple _installations_ per user.
#### LinuxGSM Configuration
@@ -49,22 +49,22 @@ This consists of creating a new user for each game server, repeating the install
### Use cases
-* Running different game servers requires installation in a different directory
-* Running multiple servers of the same game, but they have different content, addons or mods.
-* You want your game servers to be totally separate for simplicity and reduce the chance of multiple instances breaking all at once.
+- Running different game servers requires installation in a different directory
+- Running multiple servers of the same game, but they have different content, addons or mods.
+- You want your game servers to be totally separate for simplicity and reduce the chance of multiple instances breaking all at once.
#### Pros
-* Easy to setup
-* Separate installations partition the game servers from each other
-* Each instance can have different maps, addons and mods rather than sharing, preventing conflicts.
-* More secure, by keeping instances separate with there own user.
-* Reduced risk of breaking multiple instances.
+- Easy to setup
+- Separate installations partition the game servers from each other
+- Each instance can have different maps, addons and mods rather than sharing, preventing conflicts.
+- More secure, by keeping instances separate with there own user.
+- Reduced risk of breaking multiple instances.
#### Cons
-* Requires more disk space as server files can not be shared
-* Each instance has to be individually setup.
+- Requires more disk space as server files can not be shared
+- Each instance has to be individually setup.
### Examples
@@ -72,8 +72,8 @@ The installs are separated and isolated from each other in each users _home dire
| Game Server | User | LinuxGSM Script location |
| -------------------------------- | ------------------ | ----------------------------------- |
-| Garry’s Mod | gmodserver | /home/gmodserver/gmodserver |
-| Garry’s Mod | gmodserver-slender | /home/gmodserver-slender/gmodserver |
+| Garry's Mod | gmodserver | /home/gmodserver/gmodserver |
+| Garry's Mod | gmodserver-slender | /home/gmodserver-slender/gmodserver |
| Counter-Strike: Global Offensive | csgoserver | /home/csgoserver/csgoserver |
| Counter-Strike: Global Offensive | csgoserver-zombies | /home/csgoserver-zombies/csgoserver |
@@ -95,21 +95,21 @@ Most but not all game servers work with this method
### Use cases
-* Running cloning an existing game server by creating a new instance.
-* Running the same game server with different game modes, maps etc.
-* Running multiple instances even with limited disk space available.
+- Running cloning an existing game server by creating a new instance.
+- Running the same game server with different game modes, maps etc.
+- Running multiple instances even with limited disk space available.
#### Pros
-* Uses less disk space as base installation is the same
-* Less configuration required
-* It is possible to use different game modes and map rotations by editing configs.
+- Uses less disk space as base installation is the same
+- Less configuration required
+- It is possible to use different game modes and map rotations by editing configs.
#### Cons
-* Each instance shares the same files which may limit options to customise an instance
-* Potential mod conflicts
-* Should one instance break all instances might also experience the same issue
+- Each instance shares the same files which may limit options to customise an instance
+- Potential mod conflicts
+- Should one instance break all instances might also experience the same issue
### How it works
@@ -123,9 +123,9 @@ Each instance is managed using its own script which gives the config file names.
| Game | User | LinuxGSM Script location | notes |
| -------------------------------- | ---------- | ----------------------------------------- | ------------------------ |
-| Garry’s Mod | gmodserver | /home/gmodserver/gmodserver | 1.2.3.4:27015 |
-| Garry’s Mod | gmodserver | /home/gmodserver/gmodserver-1 | 1.2.3.4:27018 |
-| Garry’s Mod | gmodserver | /home/gmodserver/gmodserver-2 | 1.2.3.4:27021 |
+| Garry's Mod | gmodserver | /home/gmodserver/gmodserver | 1.2.3.4:27015 |
+| Garry's Mod | gmodserver | /home/gmodserver/gmodserver-1 | 1.2.3.4:27018 |
+| Garry's Mod | gmodserver | /home/gmodserver/gmodserver-2 | 1.2.3.4:27021 |
| Counter-Strike: Global Offensive | csgoserver | /home/csgoserver/csgoserver-zombies-27024 | 1.2.3.4:27024 Zombie Mod |
| Counter-Strike: Global Offensive | csgoserver | /home/csgoserver/csgoserver-zombies-27027 | 1.2.3.4:27027 Zombie Mod |
@@ -135,7 +135,7 @@ In these examples, you can see the scripts are located in the same installation
`linuxgsm.sh` allows you to generate as many instances as you want by running .
-```
+```bash
./linuxgsm.sh install
OR
./linuxgsm.sh gameserver
@@ -143,7 +143,7 @@ OR
It will generate a new LinuxGSM script using an incremental number.
-```
+```bash
./gameserver-2
```
diff --git a/configuration/running-on-boot.md b/configuration/running-on-boot.md
index b676f3d..588403d 100644
--- a/configuration/running-on-boot.md
+++ b/configuration/running-on-boot.md
@@ -83,4 +83,3 @@ rc.local is another method to run scripts on boot. Any commands added to the rc.
nano /etc/rc.local
su - username -c '/home/username/gameserver start'
```
-
diff --git a/configuration/start-parameters.md b/configuration/start-parameters.md
index f8f26f5..d33d460 100644
--- a/configuration/start-parameters.md
+++ b/configuration/start-parameters.md
@@ -1,7 +1,5 @@
# Start Parameters
-
-
{% hint style="info" %}
Also known as Command-Line Parameters, Command line arguments, or Launch Parameters.
{% endhint %}
@@ -16,7 +14,7 @@ Parameters being used by the game server can be found in `./gameserver details`.
LinuxGSM often uses predefined parameters that can be edited. This makes adjusting common settings easier and allows them to be displayed in `./gameserver details`.
-```
+```bash
## Predefined Parameters | https://docs.linuxgsm.com/configuration/start-parameters
defaultmap="map_name"
gamemode="game_mode"
@@ -40,18 +38,18 @@ Anything added will be appended to the server executable binary.
### Full Example
-```
+```bash
## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
startparameters="-game nmrih -strictportbind -ip 91.121.72.41 -port 27015 +clientport 27017 +tv_port 27016 +map nmo_broadway +servercfgfile nmrih-server-1.cfg -maxplayers 8"
```
## Parameters reference
-* 7 Days to Die
-* Gold Source Servers
-* [Source Dedicated Servers](https://developer.valvesoftware.com/wiki/Command\_Line\_Options#Source\_Dedicated\_Server)
-* [Memories Of Mars](https://memoriesofmars.gamepedia.com/Dedicated\_Servers#Overriding\_with\_Commandline\_Arguments)
-* [Natural Selection 2](http://wiki.unknownworlds.com/ns2/Dedicated\_Server)
-* [Rust](https://developer.valvesoftware.com/wiki/Rust\_Dedicated\_Server)
-* [Squad](http://squad.gamepedia.com/Server\_Configuration#Command\_Line)
-* [Killing Floor 2](https://wiki.tripwireinteractive.com/index.php?title=Dedicated\_Server\_\(Killing\_Floor\_2\)#Advanced\_Configuration)
+- 7 Days to Die
+- Gold Source Servers
+- [Source Dedicated Servers](https://developer.valvesoftware.com/wiki/Command_Line_Options#Source_Dedicated_Server)
+- [Memories Of Mars](https://memoriesofmars.gamepedia.com/Dedicated_Servers#Overriding_with_Commandline_Arguments)
+- [Natural Selection 2](http://wiki.unknownworlds.com/ns2/Dedicated_Server)
+- [Rust](https://developer.valvesoftware.com/wiki/Rust_Dedicated_Server)
+- [Squad](http://squad.gamepedia.com/Server_Configuration#Command_Line)
+- [Killing Floor 2]()
diff --git a/developers/README.md b/developers/README.md
index d5676b6..73437b8 100644
--- a/developers/README.md
+++ b/developers/README.md
@@ -1,4 +1 @@
# Developers
-
-
-
diff --git a/developers/branching.md b/developers/branching.md
index e8477f0..1d9fbf9 100644
--- a/developers/branching.md
+++ b/developers/branching.md
@@ -16,7 +16,6 @@ Any non-group developers please submit pull requests to the "develop" branch and
It is also a good idea to start using [Git Kracken](https://www.gitkraken.com/) as the git client. It is a little more complex that GitHub Desktop but will give you a much better understanding of the development process.
-![](http://nvie.com/img/git-model@2x.png)
-
-![](http://i.imgur.com/E241CSR.jpg)
+![Git Model](http://nvie.com/img/git-model@2x.png)
+![feature release flowchart](http://i.imgur.com/E241CSR.jpg)
diff --git a/developers/developer-commands.md b/developers/developer-commands.md
index 08f4e81..02cc570 100644
--- a/developers/developer-commands.md
+++ b/developers/developer-commands.md
@@ -6,8 +6,8 @@ LinuxGSM provides a few commands to help developers.
### developer
-* Generates a lockfile activating developer mode. All developer options will now show in the list of commands.
-* Generates a full output log of everything the script does which can help with debugging.
+- Generates a lockfile activating developer mode. All developer options will now show in the list of commands.
+- Generates a full output log of everything the script does which can help with debugging.
the log is located is called `dev-debug.log`
@@ -18,7 +18,7 @@ the log is located is called `dev-debug.log`
### deps-detect
-* Detects dependencies the server binary requires using serverfiles content.
+- Detects dependencies the server binary requires using serverfiles content.
```bash
./gameserver detect-deps
@@ -27,7 +27,7 @@ the log is located is called `dev-debug.log`
### detect-glibc
-* Automatically detects the version of GLIBC that is required.
+- Automatically detects the version of GLIBC that is required.
```bash
./gameserver detect-glibc
@@ -36,7 +36,7 @@ the log is located is called `dev-debug.log`
### detect-ldd
-* Automatically detects required deps using ldd.
+- Automatically detects required deps using ldd.
```bash
./gameserver detect-ldd
@@ -45,7 +45,7 @@ the log is located is called `dev-debug.log`
## query-raw
-* querys both `gamedig` and `query_gsquery.py`.
+- querys both `gamedig` and `query_gsquery.py`.
```bash
./gameserver query-raw
@@ -54,10 +54,9 @@ the log is located is called `dev-debug.log`
## clear-functions
-* deletes all functions in `lgsm/functions` and removes default LinxuGSM configs.
+- deletes all functions in `lgsm/functions` and removes default LinxuGSM configs.
```bash
./gameserver clear-fuctions
./gameserver cf
```
-
diff --git a/developers/developing-lgsm.md b/developers/developing-lgsm.md
index a76c39a..07a4bef 100644
--- a/developers/developing-lgsm.md
+++ b/developers/developing-lgsm.md
@@ -22,15 +22,15 @@ An admin can also run the install again if they want multiple [instances](../fea
All working directories are set through variables.
-* ${rootdir} \| The top level directory for LinuxGSM
-* \|\_\_ ${lgsmdir} \| lgsm \|Contains all LinuxGSM related files
-* \|_\_\_\_ ${functionsdir} \| functions \| All LinuxGSM script functions
-* \|_\_\_\_ ${libdir} \| lib \| Any lib files required for game servers
-* \|_\_\_\_ ${tmpdir} \| tmp \| Temp directory
-* \|\_ ${serverfiles} \| serverfiles \| The game server files \(binary,maps, models etc\)
-* \|\_ ${backupdir} \| backups \| Backups are saved here
-* \|\_ ${scriptlogdir} \| "${rootdir}/log/script" \| Contains LinuxGSM logs
-* \|\_ ${consolelogdir} \| "${rootdir}/log/console" \| Contains TMUX \(console output\) logs
+- ${rootdir} \| The top level directory for LinuxGSM
+- \|\_\_ ${lgsmdir} \| lgsm \|Contains all LinuxGSM related files
+- \|\_\_\_\_ ${functionsdir} \| functions \| All LinuxGSM script functions
+- \|\_\_\_\_ ${libdir} \| lib \| Any lib files required for game servers
+- \|\_\_\_\_ ${tmpdir} \| tmp \| Temp directory
+- \|\_ ${serverfiles} \| serverfiles \| The game server files \(binary,maps, models etc\)
+- \|\_ ${backupdir} \| backups \| Backups are saved here
+- \|\_ ${scriptlogdir} \| "${rootdir}/log/script" \| Contains LinuxGSM logs
+- \|\_ ${consolelogdir} \| "${rootdir}/log/console" \| Contains TMUX \(console output\) logs
Developers note: you will need to have a closer look at `## Server Specific Directories`
@@ -38,13 +38,13 @@ Developers note: you will need to have a closer look at `## Server Specific Dire
Here are the things you need to look after when deploying a new server:
-* `## SteamCMD Login` section needs to be present only if the game server requires a steam connection.
-* Paths variables, especially config paths
-* appid="" \(steamcmd games only\)
-* servicename="" \(must be unique\)
-* gamename="" \(must be unique\)
-* engine=""
-* githubuser/repo/branch="" \(if you dev on your own github or a branch can help a lot\)
+- `## SteamCMD Login` section needs to be present only if the game server requires a steam connection.
+- Paths variables, especially config paths
+- appid="" \(steamcmd games only\)
+- servicename="" \(must be unique\)
+- gamename="" \(must be unique\)
+- engine=""
+- githubuser/repo/branch="" \(if you dev on your own github or a branch can help a lot\)
#### Server Settings and start command
@@ -54,8 +54,8 @@ This part contains any setting that can be set as a start command for the given
Script files are located in ${functionsdir}, which is ${rootdir}/lgsm/functions
-* Every single script file must be declared in core\_functions.sh
-* Commands are declared in core\_getopt.sh, depending on the game or engine
+- Every single script file must be declared in core_functions.sh
+- Commands are declared in core_getopt.sh, depending on the game or engine
Note: You need to update those files with update-functions command after adding a new one.
@@ -63,14 +63,14 @@ Note: You need to update those files with update-functions command after adding
Here are the command functions you might need to alter when adding a new server:
-* command\_install.sh - Server installation must work properly
-* command\_update.sh - if the given game supports updates \(might be required to add a file for that matter, for now, we use to add a single file for install and update, like for TeamSpeak 3\).
-* command\_details.sh - Server details need to be displayed properly
-* command\_monitor.sh & monitor\_gsquery.sh, query\_gsquery.py & query\_gsquery.py - You'll need to read carefully and understand this code before altering it.
-* core\_getopt.sh - You will define available commands in this one, displayed when the user runs `./gameserver` without an argument. Either use an existing opt or make a new one if needed.
-* command\_start.sh & command\_stop.sh - Of course, your server needs to be able to start and stop properly.
-* command\_debug.sh & command\_console.sh - Those commands usually work out of the box, but might require some more work. If not using tmux, then console should be disabled for this server in core\_getopt.sh.
-* info\_config.sh - You might need to read variables out of configuration files such as Rcon information in the case of Squad.
+- command_install.sh - Server installation must work properly
+- command_update.sh - if the given game supports updates \(might be required to add a file for that matter, for now, we use to add a single file for install and update, like for TeamSpeak 3\).
+- command_details.sh - Server details need to be displayed properly
+- command_monitor.sh & monitor_gsquery.sh, query_gsquery.py & query_gsquery.py - You'll need to read carefully and understand this code before altering it.
+- core_getopt.sh - You will define available commands in this one, displayed when the user runs `./gameserver` without an argument. Either use an existing opt or make a new one if needed.
+- command_start.sh & command_stop.sh - Of course, your server needs to be able to start and stop properly.
+- command_debug.sh & command_console.sh - Those commands usually work out of the box, but might require some more work. If not using tmux, then console should be disabled for this server in core_getopt.sh.
+- info_config.sh - You might need to read variables out of configuration files such as Rcon information in the case of Squad.
### Fixes
@@ -78,19 +78,19 @@ Here are the command functions you might need to alter when adding a new server:
### Core functions
-#### core\_dl.sh
+#### core_dl.sh
This is the first script to be run when `gameserver`is executed. This script allows for fetching LinuxGSM core files, but also for downloading big files within kind of an API.
-#### core\_functions.sh
+#### core_functions.sh
This is the second script to be run when `gameserver`is executed. This script declares all functions and fetches them when they are required.
-#### core\_getopt.sh
+#### core_getopt.sh
This is the third and last script to be run when `gameserver`is executed. This script allows for setting and printing available commands to the user.
-#### core\_messages.sh
+#### core_messages.sh
This script allows for easy message output and logging. More details about it in the next part.
@@ -102,44 +102,44 @@ Framework syntax is: `fn_print_whatever "This is your message"` If you want to r
#### On-Screen - Automated functions
-* \[ .... \] \| fn\_print\_dots \| fn\_print\_dots\_nl
-* \[ OK \] \| fn\_print\_ok \| fn\_print\_ok\_nl
-* \[ FAIL \] \| fn\_print\_fail \| fn\_print\_fail\_nl
-* \[ ERROR \] \| fn\_print\_error \| fn\_print\_error\_nl
-* \[ WARN \] \| fn\_print\_warn \| fn\_print\_warn\_nl
-* \[ INFO \] \| fn\_print\_info \| fn\_print\_info\_nl
+- \[ .... \] \| fn_print_dots \| fn_print_dots_nl
+- \[ OK \] \| fn_print_ok \| fn_print_ok_nl
+- \[ FAIL \] \| fn_print_fail \| fn_print_fail_nl
+- \[ ERROR \] \| fn_print_error \| fn_print_error_nl
+- \[ WARN \] \| fn_print_warn \| fn_print_warn_nl
+- \[ INFO \] \| fn_print_info \| fn_print_info_nl
#### On-Screen - Interactive messages
-* Print $gamename $commandaction and jump some lines \| fn\_print\_header \(used at the beginning of a command\)
-* Complete! \|fn\_print\_complete \| fn\_print\_complete\_nl
-* Failure! \| fn\_print\_failure \| fn\_print\_failure\_nl
-* Error! \| fn\_print\_error2 \| fn\_print\_error2\_nl
-* Warning! \| fn\_print\_warning \| fn\_print\_warning\_nl
-* Information! \| fn\_print\_information \| fn\_print\_information\_nl
+- Print $gamename $commandaction and jump some lines \| fn_print_header \(used at the beginning of a command\)
+- Complete! \|fn_print_complete \| fn_print_complete_nl
+- Failure! \| fn_print_failure \| fn_print_failure_nl
+- Error! \| fn_print_error2 \| fn_print_error2_nl
+- Warning! \| fn_print_warning \| fn_print_warning_nl
+- Information! \| fn_print_information \| fn_print_information_nl
#### On-Screen End of Line
-* OK\| fn\_print\_ok\_eol \| fn\_print\_ok\_eol\_nl
-* FAIL \| fn\_print\_fail\_eol \| fn\_print\_fail\_eol\_nl
-* WARN \| fn\_print\_warn\_eol \| fn\_print\_warn\_eol\_nl
-* FAIL \| fn\_print\_info\_eol \| fn\_print\_info\_eol\_nl
-* QUERYING \| fn\_print\_querying\_eol \| fn\_print\_querying\_eol\_nl
-* CHECKING \| fn\_print\_checking\_eol \| fn\_print\_checking\_eol\_nl
-* CANCELED \| fn\_print\_canceled\_eol \| fn\_print\_canceled\_eol\_nl
-* REMOVED \| fn\_print\_removed\_eol \| fn\_print\_removed\_eol\_nl
-* UPDATE \| fn\_print\_update\_eol \| fn\_print\_update\_eol\_nl
+- OK\| fn_print_ok_eol \| fn_print_ok_eol_nl
+- FAIL \| fn_print_fail_eol \| fn_print_fail_eol_nl
+- WARN \| fn_print_warn_eol \| fn_print_warn_eol_nl
+- FAIL \| fn_print_info_eol \| fn_print_info_eol_nl
+- QUERYING \| fn_print_querying_eol \| fn_print_querying_eol_nl
+- CHECKING \| fn_print_checking_eol \| fn_print_checking_eol_nl
+- CANCELED \| fn_print_canceled_eol \| fn_print_canceled_eol_nl
+- REMOVED \| fn_print_removed_eol \| fn_print_removed_eol_nl
+- UPDATE \| fn_print_update_eol \| fn_print_update_eol_nl
#### Logging
Syntax: `fn_script_log "Message goes here."` Output: `## Feb 28 14:56:58 ut99-server: Monitor: Message goes here.`
-* Simple action log \| fn\_script\_log
-* PASS \(a successful test\) \| fn\_script\_log\_pass
-* FATAL \(an error has interrupted LGSM\) \| fn\_script\_log\_fatal
-* ERROR \| fn\_script\_log\_error
-* WARN \| fn\_script\_log\_warn
-* INFO \| fn\_script\_log\_info
+- Simple action log \| fn_script_log
+- PASS \(a successful test\) \| fn_script_log_pass
+- FATAL \(an error has interrupted LGSM\) \| fn_script_log_fatal
+- ERROR \| fn_script_log_error
+- WARN \| fn_script_log_warn
+- INFO \| fn_script_log_info
### Checks
@@ -147,34 +147,34 @@ Any script file must run `check.sh` at some point. Within `check.sh`, you will t
There are several checks available:
-* check\_config.sh checks for a missing config file or a wrong parameter.
-* check\_deps.sh checks for missing dependencies and contains requirements
-* check\_glibs.sh checks if the server has the correct Glibc version or a fix available.
-* check\_ip.sh automatically identifies the server interface IP.
-* check\_logs.sh checks if log files exist.
-* check\_permissions.sh checks ownership & permissions of scripts, files and directories
-* check\_root.sh checks if the user tried to run the script as root
-* check\_status.sh checks the process status of the server. Either online or offline
-* check\_steamcmd.sh checks if SteamCMD is installed correctly
-* check\_system\_dir.sh checks if systemdir is accessible
-* check\_system\_requirements.sh checks RAM requirements \(maybe more into the future\)
-* check\_tmuxception.sh checks and prevents server start from tmux or screen
-
-#### core\_exit.sh
+- check_config.sh checks for a missing config file or a wrong parameter.
+- check_deps.sh checks for missing dependencies and contains requirements
+- check_glibs.sh checks if the server has the correct Glibc version or a fix available.
+- check_ip.sh automatically identifies the server interface IP.
+- check_logs.sh checks if log files exist.
+- check_permissions.sh checks ownership & permissions of scripts, files and directories
+- check_root.sh checks if the user tried to run the script as root
+- check_status.sh checks the process status of the server. Either online or offline
+- check_steamcmd.sh checks if SteamCMD is installed correctly
+- check_system_dir.sh checks if systemdir is accessible
+- check_system_requirements.sh checks RAM requirements \(maybe more into the future\)
+- check_tmuxception.sh checks and prevents server start from tmux or screen
+
+#### core_exit.sh
This script allows for the use of exit codes which will print different outputs to LinuxGSM logs. Running `core_exit.sh` defaults exitcode variable to 0 which stands for a proper exit
-* Normal exit: exitcode=0
-* FATAL exitcode=1
-* ERROR: exitcode=2
-* WARN: exitcode=3
+- Normal exit: exitcode=0
+- FATAL exitcode=1
+- ERROR: exitcode=2
+- WARN: exitcode=3
### Server installation
Installing a new server is mainly done through two scripts:
-* install\_server\_files.sh
-* install\_config.sh
+- install_server_files.sh
+- install_config.sh
Sometimes, another script is required, such as for TeamSpeak 3: `update_ts3.sh`
@@ -193,26 +193,25 @@ You will usually be developing onto your own repo. Using your own repo instead o
3. wget your Raw link and chmod +x the script.
4. Edit your "gameserver" file by changing github information to your username and repo and branch.
- ```bash
- ## Github Branch Select
- # Allows for the use of different function files
- # from a different repo and/or branch.
- githubuser="YourUsername"
- githubrepo="YourRepository"
- githubbranch="YourBranchName"
- ```
+ ```bash
+ ## Github Branch Select
+ # Allows for the use of different function files
+ # from a different repo and/or branch.
+ githubuser="YourUsername"
+ githubrepo="YourRepository"
+ githubbranch="YourBranchName"
+ ```
Now, any command you run will get your own github files, and after any change you make on your repo, `./gameserver uf` will grab new files. If you make a change and that `./gameserver uf` don't get them, it means you were too quick, and that your curl still have old files in cache; in this case, you'll need to wait a few minutes to get your modifications.
### How to test
-You need to make sure that all needed commands displayed in opt work properly. So just run `./gameserver` to show available commands, then try commands one by one. Common procedure is to first work on command\_install, then start, then stop, then debug, then details, then monitor.
+You need to make sure that all needed commands displayed in opt work properly. So just run `./gameserver` to show available commands, then try commands one by one. Common procedure is to first work on command_install, then start, then stop, then debug, then details, then monitor.
-### Oops, I found a bug!
+### Oops, I found a bug
If your found a bug, either you'll instantly know how to fix it, or you won't. And either it will be a bug caused by your own code or a bug into LinuxGSM itself. So let's address those cases.
1. It's caused by your own code parts and you know how to fix it: Just go on and fix it.
2. It's caused by your own code parts but you got no idea why: Use `./gameserver dev-debug` that will add a very detailed log into your rootdir that might help you figuring this out. To disable the dev-debug mode, just re-run the command. If you still can't find why it's not working, come get help on Discord's \#gsm-development channel or Github issue that might have been created for this issue.
3. You found a bug into LinuxGSM itself. First, you need to be sure that it's really a bug that affects every game, by testing with another game onto the original repo, otherwise, if it only affects your game, you will usually just need to add a clever conditional check to fix the issue.
-
diff --git a/developers/development-workflow.md b/developers/development-workflow.md
index 6d7e667..a6992b7 100644
--- a/developers/development-workflow.md
+++ b/developers/development-workflow.md
@@ -3,6 +3,3 @@
As there are more people developing and adding to LinuxGSM. I though it would be a good idea to highlight the workflow of LinuxGSM to make sure the code can efficiently get in to the master branch and we do not get an a muddle and I can simply review code.
The workflow is pretty much the same as Git Flow. I highly recommend reading this post that tells you all about git flow [http://nvie.com/posts/a-successful-git-branching-model/](http://nvie.com/posts/a-successful-git-branching-model/)
-
-![](http://i.imgur.com/5Gw6kcb.jpg)
-
diff --git a/developers/linuxgsm-exit-codes.md b/developers/linuxgsm-exit-codes.md
index 28d190a..303d90f 100644
--- a/developers/linuxgsm-exit-codes.md
+++ b/developers/linuxgsm-exit-codes.md
@@ -6,42 +6,42 @@ to see the exit code you can activate `./gameserver dev-debug`
## Pass
-* **Code:** 0
-* **Description:** This code is returned when all is well.
-* **On Screen:** \[ OK \]
-* **Logfile:** PASS
+- **Code:** 0
+- **Description:** This code is returned when all is well.
+- **On Screen:** \[ OK \]
+- **Logfile:** PASS
## Fatal
-* **Code:** 1
-* **Description:** Fatal errors occur when LinuxGSM is prevented from completing its task. e.g it was unable to start a server.
-* **On Screen:** \[ FAIL \]
-* **Logfile:** FATAL
+- **Code:** 1
+- **Description:** Fatal errors occur when LinuxGSM is prevented from completing its task. e.g it was unable to start a server.
+- **On Screen:** \[ FAIL \]
+- **Logfile:** FATAL
## Error
-* **Code:** 2
-* **Description:** An error occurs when LinuxGSM can complete its task however something went wrong. In many cases LinuxGSM will attempt to resolve errors itself.
-* **On Screen:** \[ ERROR \]
-* **Logfile:** ERROR
+- **Code:** 2
+- **Description:** An error occurs when LinuxGSM can complete its task however something went wrong. In many cases LinuxGSM will attempt to resolve errors itself.
+- **On Screen:** \[ ERROR \]
+- **Logfile:** ERROR
## Warning
-* **Code:** 3
-* **Description:** Warnings happen when there is something mis-configured or not setup correctly. LinuxGSM may still work but not do as expected.
-* **On Screen:** \[ WARN \]
-* **Logfile:** WARN
+- **Code:** 3
+- **Description:** Warnings happen when there is something mis-configured or not setup correctly. LinuxGSM may still work but not do as expected.
+- **On Screen:** \[ WARN \]
+- **Logfile:** WARN
## Info
-* **Code:** N/A
-* **Description:** Useful information about what LinuxGSM is currently doing.
-* **On Screen:** \[ INFO \]
-* **Logfile:** INFO
+- **Code:** N/A
+- **Description:** Useful information about what LinuxGSM is currently doing.
+- **On Screen:** \[ INFO \]
+- **Logfile:** INFO
## For Developers
-An exit code is generated when you specify a logfile message _e.g fn\_script\_log\_fatal_. When you want the script to exit you must use core\_exit.sh rather than just the exit command. core\_exit.sh will then handle the exit. Each time you have a new variable for writing to the log file the code will change to that code. For example if LinuxGSM experiences and error with code 2 then resolves the issue and passes the final code will be 0.
+An exit code is generated when you specify a logfile message _e.g fn_script_log_fatal_. When you want the script to exit you must use core_exit.sh rather than just the exit command. core_exit.sh will then handle the exit. Each time you have a new variable for writing to the log file the code will change to that code. For example if LinuxGSM experiences and error with code 2 then resolves the issue and passes the final code will be 0.
### Examples
@@ -67,4 +67,3 @@ core_exit.sh
```
This will exit with code 0
-
diff --git a/developers/query_gsquery.py.md b/developers/query_gsquery.py.md
index bb97310..7edf366 100644
--- a/developers/query_gsquery.py.md
+++ b/developers/query_gsquery.py.md
@@ -1,4 +1,4 @@
-# query\_gsquery.py
+# query_gsquery.py
## What is gsquery ?
@@ -21,4 +21,3 @@ gsquery can also be used manually. There is a help option for complete list of s
### Known issue
The only known limit noted to this function has been seen in Garry's Mod, where the server would sometimes be frozen, but still answer to queries.
-
diff --git a/developers/syntax-and-conventions.md b/developers/syntax-and-conventions.md
index 1761755..cf1a501 100644
--- a/developers/syntax-and-conventions.md
+++ b/developers/syntax-and-conventions.md
@@ -1,6 +1,6 @@
# syntax-and-conventions
-In order to make LinuxGSM as coherent as possible, we adopted some code conventions to follow.
+In order to make LinuxGSM as coherent as possible, we adopted some code conventions to follow.
Here are some of them.
## Variables
@@ -40,9 +40,9 @@ find "${executabledir}/bin"
### Syntax
-* The `if [ statement ]; then` should be a one-liner operation.
-* Signs comparators like ==; <; <=; etc. are prefered to -eq -le -lt.
-* Anything within an if statement must be tabulated one step deeper.
+- The `if [ statement ]; then` should be a one-liner operation.
+- Signs comparators like ==; <; <=; etc. are prefered to -eq -le -lt.
+- Anything within an if statement must be tabulated one step deeper.
Example:
@@ -56,15 +56,15 @@ fi
#### `! -z`and `! -n`
-A `-z` check returns true if a variable is not defined.
+A `-z` check returns true if a variable is not defined.
A `-n` check returns true if a variable is defined.
For that matter, you should use `-n` rather than `! -z` and use `-z` rather than `! -n`.
## Loops
-* Loops should be a one liner statement.
-* Anything withing a loop must be tabulated one step deeper.
+- Loops should be a one liner statement.
+- Anything withing a loop must be tabulated one step deeper.
```bash
while [ "${var}" < "${cap}" ]; do
@@ -75,9 +75,9 @@ done
## Functions
-* Function should be named starting with `fn_` and using lowercase letters only.
-* Any recurrent task should be put into a function.
-* Anything within a function must be tabulated one step deeper.
+- Function should be named starting with `fn_` and using lowercase letters only.
+- Any recurrent task should be put into a function.
+- Anything within a function must be tabulated one step deeper.
Example:
@@ -89,6 +89,5 @@ fn_myfunction(){
## Messages
-* Messages should be given using core\_messages.sh forms
-* Additional information messages are given in the form of echo " \* Message here"
-
+- Messages should be given using core_messages.sh forms
+- Additional information messages are given in the form of echo " \* Message here"
diff --git a/features/README.md b/features/README.md
index e73164e..ead0223 100644
--- a/features/README.md
+++ b/features/README.md
@@ -1,4 +1 @@
# Features
-
-
-
diff --git a/features/ansi-colors.md b/features/ansi-colors.md
index 1346edf..46cbd5f 100644
--- a/features/ansi-colors.md
+++ b/features/ansi-colors.md
@@ -1,2 +1 @@
# ANSI Colors
-
diff --git a/features/logging.md b/features/logging.md
index 89cb78a..81e7bba 100644
--- a/features/logging.md
+++ b/features/logging.md
@@ -8,11 +8,11 @@ If your user is `gameserver`, then LinuxGSM logs are located in the following di
This "log" directory contains two other directories:
-* `script`, logs LinuxGSM script activity
-* `console`, logs gameserver `[console](../commands/console.md)` output
-* `game`, is a redirect to the game server log files if available.
+- `script`, logs LinuxGSM script activity
+- `console`, logs gameserver `[console](../commands/console.md)` output
+- `game`, is a redirect to the game server log files if available.
- **Settings**
+ **Settings**
You can alter these settings to change LinuxGSM behavior:
@@ -31,11 +31,10 @@ LinuxGSM clears outdated logs according to `logdays` variable setting. This will
LinuxGSM also clears logs from common locations to prevent them from using gigabytes of disk space, including:
-* `${systemdir}/logs`
-* `${systemdir}/*/logs`
-* `${systemdir}/addons/sourcemod/logs`
-* `${systemdir}/data/darkrp_logs`
-* `${systemdir}/data/ulx_logs`
+- `${systemdir}/logs`
+- `${systemdir}/*/logs`
+- `${systemdir}/addons/sourcemod/logs`
+- `${systemdir}/data/darkrp_logs`
+- `${systemdir}/data/ulx_logs`
_Note:_ `${systemdir}` _designates the location of your game server installation_
-
diff --git a/features/message-display-time.md b/features/message-display-time.md
index 78b1866..58cb219 100644
--- a/features/message-display-time.md
+++ b/features/message-display-time.md
@@ -1,2 +1 @@
# Message Display Time
-
diff --git a/features/stop-mode.md b/features/stop-mode.md
index 64d127a..3d320f5 100644
--- a/features/stop-mode.md
+++ b/features/stop-mode.md
@@ -16,6 +16,3 @@ Stop mode allows a game server to gracefully shutdown by sending a stop signal t
# 10: Teamspeak 3
stopmode="7"
```
-
-
-
diff --git a/game-servers/7-days-to-die.md b/game-servers/7-days-to-die.md
index 677fdad..7c4d075 100644
--- a/game-servers/7-days-to-die.md
+++ b/game-servers/7-days-to-die.md
@@ -1,10 +1,10 @@
# 7 Days to Die
-![](../.gitbook/assets/7daystodiebanner.jpg)
+![7 Days To Die Logo](../.gitbook/assets/7daystodiebanner.jpg)
## Server Resources
-* [Official Dedicated Server Guide](https://7daystodie.fandom.com/wiki/Server)
+- [Official Dedicated Server Guide](https://7daystodie.fandom.com/wiki/Server)
## Telnet
diff --git a/game-servers/README.md b/game-servers/README.md
index c215748..e2e959c 100644
--- a/game-servers/README.md
+++ b/game-servers/README.md
@@ -2,23 +2,22 @@
LinuxGSM cannot always provide support for specific game servers. However, there are various support forums available for specific game server support that may be useful. Below is a list of useful links support forums:
-* [ARK: Survival Evolved](https://survivetheark.com/index.php?/forums/forum/39-server-administration/)
-* [ARMA 3](https://forums.bohemia.net/forums/forum/159-arma-3-servers-administration/)
-* [Counter-Strike: Global Offensive](https://steamcommunity.com/app/730/discussions/)
-* [Counter-Strike 1.6](https://steamcommunity.com/app/10/discussions/)
-* [Counter-Strike: Source](https://steamcommunity.com/app/240/discussions/)
-* [Day of Defeat: Source](https://steamcommunity.com/app/300/discussions/)
-* [Day of Infamy](https://steamcommunity.com/app/447820/discussions/)
-* [Garry's Mod](https://forum.facepunch.com/f/)
-* [Insurgency](https://steamcommunity.com/app/222880/discussions/2/)
-* [Killing Floor 2](https://forums.tripwireinteractive.com/forum/killing-floor-2/technical-support-ae/dedicated-server-support-ac)
-* [Minecraft](https://www.minecraftforum.net/forums/servers-java-edition/minecraft-server-hosting)
-* [Quake 3](https://steamcommunity.com/app/2200/discussions/)
-* [Rust](https://forum.facepunch.com/c/rust/10)
-* [Terraria](https://forums.terraria.org/index.php?forums/)
-* [Team Fortress 2](https://steamcommunity.com/app/440/discussions/)
-* [Teamspeak 3](https://forum.teamspeak.com/forums/93-TeamSpeak-3-Technical-Discussions-EN-DE)
-* [Unreal Tournament 2004](https://www.epicgames.com/unrealtournament/forums/past-unreal-tournament-games/unreal-tournament-2003-2004)
-* [Unreal Tournament 3](https://www.epicgames.com/unrealtournament/forums/past-unreal-tournament-games/unreal-tournament-3)
-* [Unreal Tournament 99](https://www.epicgames.com/unrealtournament/forums/past-unreal-tournament-games/unreal-tournament-‘99)
-
+- [ARK: Survival Evolved](https://survivetheark.com/index.php?/forums/forum/39-server-administration/)
+- [ARMA 3](https://forums.bohemia.net/forums/forum/159-arma-3-servers-administration/)
+- [Counter-Strike: Global Offensive](https://steamcommunity.com/app/730/discussions/)
+- [Counter-Strike 1.6](https://steamcommunity.com/app/10/discussions/)
+- [Counter-Strike: Source](https://steamcommunity.com/app/240/discussions/)
+- [Day of Defeat: Source](https://steamcommunity.com/app/300/discussions/)
+- [Day of Infamy](https://steamcommunity.com/app/447820/discussions/)
+- [Garry's Mod](https://forum.facepunch.com/f/)
+- [Insurgency](https://steamcommunity.com/app/222880/discussions/2/)
+- [Killing Floor 2](https://forums.tripwireinteractive.com/forum/killing-floor-2/technical-support-ae/dedicated-server-support-ac)
+- [Minecraft](https://www.minecraftforum.net/forums/servers-java-edition/minecraft-server-hosting)
+- [Quake 3](https://steamcommunity.com/app/2200/discussions/)
+- [Rust](https://forum.facepunch.com/c/rust/10)
+- [Terraria](https://forums.terraria.org/index.php?forums/)
+- [Team Fortress 2](https://steamcommunity.com/app/440/discussions/)
+- [Teamspeak 3](https://forum.teamspeak.com/forums/93-TeamSpeak-3-Technical-Discussions-EN-DE)
+- [Unreal Tournament 2004](https://www.epicgames.com/unrealtournament/forums/past-unreal-tournament-games/unreal-tournament-2003-2004)
+- [Unreal Tournament 3](https://www.epicgames.com/unrealtournament/forums/past-unreal-tournament-games/unreal-tournament-3)
+- [Unreal Tournament 99](https://www.epicgames.com/unrealtournament/forums/past-unreal-tournament-games/unreal-tournament-‘99)
diff --git a/game-servers/ark-survival-evolved.md b/game-servers/ark-survival-evolved.md
index d080aa8..3262c2c 100644
--- a/game-servers/ark-survival-evolved.md
+++ b/game-servers/ark-survival-evolved.md
@@ -1,26 +1,26 @@
# ARK: Survival Evolved
-![](../.gitbook/assets/header-1.jpg)
+![ARK Logo](../.gitbook/assets/header-1.jpg)
## Server Resources
-* [Official Dedicated Server Guide](https://ark.wiki.gg/wiki/Dedicated\_server\_setup)
-* [Official Dedicated Server Configuration](https://ark.wiki.gg/wiki/Server\_configuration)
-* [Steam Workshop](https://steamcommunity.com/app/346110/workshop/)
-* [Official ARK: Survival Evolved Server Administration forum](https://survivetheark.com/index.php?/forums/forum/39-server-administration/)
+- [Official Dedicated Server Guide](https://ark.wiki.gg/wiki/Dedicated_server_setup)
+- [Official Dedicated Server Configuration](https://ark.wiki.gg/wiki/Server_configuration)
+- [Steam Workshop](https://steamcommunity.com/app/346110/workshop/)
+- [Official ARK: Survival Evolved Server Administration forum](https://survivetheark.com/index.php?/forums/forum/39-server-administration/)
## System Requirements
Different Maps require different system requirements.
-* TheIsland: 7GB RAM
-* Genesis 2: 12GB RAM
+- TheIsland: 7GB RAM
+- Genesis 2: 12GB RAM
## Config Files
An example of GameUserSettings.ini can be found [here](https://github.com/GameServerManagers/Game-Server-Configs/blob/main/ark/GameUserSettings.ini).
-```
+```text
serverfiles/ShooterGame/Saved/Config/LinuxServer/GameUserSettings.ini
serverfiles/ShooterGame/Saved/Config/LinuxServer/Game.ini
```
@@ -33,34 +33,34 @@ Command line parameters take precedence over configuration files.
### Common Command-Line Parameters
-Below is a list of common Command-Line parameters. For a complete list see the [Ark Wiki](https://ark.wiki.gg/wiki/Server\_configuration#Command\_line\_options).
-
-| Parameter | Description |
-| -------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| SessionName | |
-| -MultiHome | Enables multihoming. |
-| -Port | |
-| -QueryPort | |
-| -AutoManagedMods | Steam only, automatic MOD download/installation/updating. Mod IDs are listed in _Game.ini_ under `[ModInstaller]` section. |
-| -CrossPlay | Enables crossplay (i.e.: EPIC and Steam) on dedicated server. Note: PublicIPForEpic must also be set. |
-| -PublicIPForEpic=\ | This is the public IP that EGS clients will attempt to connect to, if this option is missing and `-MULTIHOME` is specified, then EGS clients will attempt to connect to the multihome IP; note that if you're using multihome and specify a non-public IP address, then players will not be able to connect to your server using EGS. Make sure to set a public IP address (e.g.: WAN or external). |
-| -NoBattlEye | Run server without BattleEye. |
-| -ActiveEvent= | Enables a specified event or enables the event's colour palette on wild creatures. Only one can be specified and active at a time. |
-| ?AltSaveDirectoryName=\ | Allows to specify a custom directory name for server world-save. Usually used to manage clusters, read more about it in the [Cross-ARK Data Transfer](https://ark.wiki.gg/wiki/Server\_configuration#Cross-ARK\_Data\_Transfer) section. |
-| -insecure | Disable Valve Anti-Cheat (VAC) system. |
-| -MapModID= | Dedicated servers can now optionally load custom maps via `ModID` directly, rather than having to specify the map name, using this syntax (where the `MapModID` is the Steam Workshop ID of your custom map, and the GameModIds are the Id’s of the stacked mods you wish to use, in order). `ActiveMods` must also be set in [GameUserSettings.ini](https://ark.wiki.gg/wiki/Server\_configuration#GameUserSettings.ini). |
-| ?GameModIds=\[,\[...]] | Steam only. Specifies the order and which mods are loaded, `ModIDs` need to be separated with commas (`,`). Mod priority is in descending order left to right (the left-most ID is the top priority mod). It is suggested to use instead the `ActiveMods` under `[ServerSettings]` of _GameUserSettings.ini_. |
+Below is a list of common Command-Line parameters. For a complete list see the [Ark Wiki](https://ark.wiki.gg/wiki/Server_configuration#Command_line_options).
+
+| Parameter | Description |
+| ------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| SessionName | |
+| -MultiHome | Enables multihoming. |
+| -Port | |
+| -QueryPort | |
+| -AutoManagedMods | Steam only, automatic MOD download/installation/updating. Mod IDs are listed in _Game.ini_ under `[ModInstaller]` section. |
+| -CrossPlay | Enables crossplay (i.e.: EPIC and Steam) on dedicated server. Note: PublicIPForEpic must also be set. |
+| -PublicIPForEpic=\ | This is the public IP that EGS clients will attempt to connect to, if this option is missing and `-MULTIHOME` is specified, then EGS clients will attempt to connect to the multihome IP; note that if you're using multihome and specify a non-public IP address, then players will not be able to connect to your server using EGS. Make sure to set a public IP address (e.g.: WAN or external). |
+| -NoBattlEye | Run server without BattleEye. |
+| -ActiveEvent= | Enables a specified event or enables the event's colour palette on wild creatures. Only one can be specified and active at a time. |
+| ?AltSaveDirectoryName=\ | Allows to specify a custom directory name for server world-save. Usually used to manage clusters, read more about it in the [Cross-ARK Data Transfer](https://ark.wiki.gg/wiki/Server_configuration#Cross-ARK_Data_Transfer) section. |
+| -insecure | Disable Valve Anti-Cheat (VAC) system. |
+| -MapModID= | Dedicated servers can now optionally load custom maps via `ModID` directly, rather than having to specify the map name, using this syntax (where the `MapModID` is the Steam Workshop ID of your custom map, and the GameModIds are the Id’s of the stacked mods you wish to use, in order). `ActiveMods` must also be set in [GameUserSettings.ini](https://ark.wiki.gg/wiki/Server_configuration#GameUserSettings.ini). |
+| ?GameModIds=\[,\[...]] | Steam only. Specifies the order and which mods are loaded, `ModIDs` need to be separated with commas (`,`). Mod priority is in descending order left to right (the left-most ID is the top priority mod). It is suggested to use instead the `ActiveMods` under `[ServerSettings]` of _GameUserSettings.ini_. |
### Common Configuration File Settings
-Below is a list of common Configuration settings. For a complete list see the [Ark Wiki](https://ark.wiki.gg/wiki/Server\_configuration#Configuration\_Files).
+Below is a list of common Configuration settings. For a complete list see the [Ark Wiki](https://ark.wiki.gg/wiki/Server_configuration#Configuration_Files).
The following options must come under the `[ServerSettings]` section of `GameUserSettings.ini`:
| Variable | Description |
| ------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------- |
-| ActiveMods=ModID1,ModID2,ModID3 | _Value type: list of mod IDs, comma-separated with no spaces, in a single line (for example: `ModID1,ModID2,ModID3`)_ |
-| BanListURL="http://arkdedicated.com/banlist.txt" |
Value type: string with a URL Sets the global ban list. Must be enclosed in double-quotes.
|
+| ActiveMods=ModID1,ModID2,ModID3 | Value type: list of mod IDs, comma-separated with no spaces, in a single line (for example: `ModID1,ModID2,ModID3`) |
+| BanListURL="http://arkdedicated.com/banlist.txt" | Value type: string with a URL Sets the global ban list. Must be enclosed in double-quotes.
|
| RCONEnabled=True | f `True`, enables RCON, needs `RCONPort=` and `ServerAdminPassword=` to work |
| RCONPort=27020 | Specifies the optional TCP RCON Port. |
| ServerAdminPassword= | If specified, players must provide this password (via the in-game console) to gain access to administrator commands on the server. |
@@ -69,11 +69,15 @@ The following options must come under the `[ServerSettings]` section of `GameUse
The following options must come under the `[SessionSettings]` section of `GameUserSettings.ini`.
-
Variable
Description
SessionName
Specifies the Server name advertised in the Game Server Browser as well in Steam Server browser. If no name is provide, the default name will be ARK # followed by a random 6 digit number
+| Variable | Description |
+| ----------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| SessionName | Specifies the Server name advertised in the Game Server Browser as well in Steam Server browser. If no name is provided, the default name will be _ARK #_ followed by a random 6 digit number |
The following options must come under the `[/Script/Engine.GameSession]` section of `GameUserSettings.ini`.
-
Variable
Description
MaxPlayers=70
Specifies the maximum number of players that can play on the server simultaneously.
+| Reason | Error! App '90' state is 0x10E after update job. |
+| ------------------ | ------------------------------------------------ |
+| Hex | 0x10E |
+| Decimal/StateFlags | 270 |
{% file src="../.gitbook/assets/content_log_0x10E.txt" %}
@@ -28,7 +31,7 @@ Error! App '90' state is 0x10E after update job.
Not enough disk space.
-```
+```text
Error! App '' state is 0x202 after update job.
```
@@ -45,7 +48,7 @@ Error! App '' state is 0x202 after update job.
Unknown error, if you have any details please let us know
{% endhint %}
-```
+```text
Error! App '' state is 0x206 after update job.
```
@@ -56,22 +59,22 @@ Error! App '' state is 0x206 after update job.
| Decimal/StateFlags | 518 |
{% hint style="warning" %}
-Missing content\_log.txt if you have experienced this error and have a log please let us know.
+Missing content_log.txt if you have experienced this error and have a log please let us know.
{% endhint %}
-### Error 0x212
+### Error 0x212 [error-0x206](#error-0x206)
Not enough disk space.
-```
+```text
Error! App '' state is 0x212 after update job.
```
-| Title | Title |
-| ------------------ | ---------------------- |
-| Reason | Not enough disk space |
-| Hex | 0x212 |
-| Decimal/StateFlags | 530 |
+| Title | Title |
+| ------------------ | --------------------- |
+| Reason | Not enough disk space |
+| Hex | 0x212 |
+| Decimal/StateFlags | 530 |
{% file src="../.gitbook/assets/content_log_0x212.txt" %}
@@ -79,7 +82,7 @@ Error! App '' state is 0x212 after update job.
Connection issue with steam, you will need to wait for the steam servers to recover.
-```
+```text
Error! State is 0x402 after update job.
```
@@ -89,7 +92,7 @@ Error! State is 0x402 after update job.
| Decimal/StateFlags | 1026 |
{% hint style="warning" %}
-Missing content\_log.txt if you have experienced this error and have a log please let us know.
+Missing content_log.txt if you have experienced this error and have a log please let us know.
{% endhint %}
### Error 0x602
@@ -98,7 +101,7 @@ Missing content\_log.txt if you have experienced this error and have a log pleas
Unknown error, if you have any details please let us know
{% endhint %}
-```
+```text
Error! State is 0x602 after update job.
```
@@ -109,14 +112,14 @@ Error! State is 0x602 after update job.
| Decimal/StateFlags | 1538 |
{% hint style="warning" %}
-Missing content\_log.txt if you have experienced this error and have a log please let us know.
+Missing content_log.txt if you have experienced this error and have a log please let us know.
{% endhint %}
### Error 0x606
SteamCMD is unable to write to the disk. Normally caused by permissions issues. This issue was discovered when a directory that was linked using symlink did not have the correct permissions to allow SteamCMD to write to it.
-```
+```text
Error! App '' state is 0x606 after update job.
```
@@ -132,12 +135,10 @@ Error! App '' state is 0x606 after update job.
Missing update files
-```
+```text
Error! App '232250' state is 0x626 after update job.
```
-
-
| | |
| ------------------ | -------------------- |
| Reason | Missing update files |
@@ -146,11 +147,9 @@ Error! App '232250' state is 0x626 after update job.
{% file src="../.gitbook/assets/content_log_0x626.txt" %}
-
-
### Error 0x2
-```
+```text
Error! App '' state is is 0x2 after update job.
```
@@ -160,18 +159,22 @@ Error! App '' state is is 0x2 after update job.
| Decimal/StateFlags | 2 |
{% hint style="warning" %}
-Missing content\_log.txt if you have it please let us know.
+Missing content_log.txt if you have it please let us know.
{% endhint %}
### Error 0x6
No connection to content servers.
-```
+```text
Error! App '' state is 0x6 after update job.
```
-
Reason
No connection to content servers
Reason 2
Received 401 (Unauthorized) HTTP response for depot 11
Hex
0x6
Decimal/StateFlags
6
+| Reason | No connection to content servers |
+| ------------------ | ------------------------------------------------------ |
+| Reason 2 | Received 401 (Unauthorized) HTTP response for depot 11 |
+| Hex | 0x6 |
+| Decimal/StateFlags | 6 |
{% file src="../.gitbook/assets/content_log_0x6.txt" %}
@@ -179,31 +182,31 @@ Error! App '' state is 0x6 after update job.
### 0x3
-```
+```text
Update state (0x3) reconfiguring, progress: 0.00 (0 / 0)
```
### 0x5
-```
+```text
Update state (0x5) validating, progress: 13.48 (1554089956 / 11530459441)
```
### 0x11
-```
+```text
Update state (0x11) preallocating, progress: 8.53 (983870089 / 11530459441)
```
### 0x61
-```
+```text
Update state (0x61) downloading, progress: 1.11 (127644881 / 11530459441)
```
### 0x101
-```
+```text
Update state (0x101) committing, progress: 3.43 (395043827 / 11530459441)
```
@@ -253,25 +256,25 @@ This table is from 2015 and is probably outdated now but it's the best we curren
## ulimit SteamCMD startup error
-```
+```text
./steamcmd.sh: line 17: ulimit: open files: cannot modify limit: Operation not permitted
```
Some users may get a ulimit error (no permission/cannot open file) while SteamCMD is starting up. This error caused by a low setting of the -n parameter (number of file descriptors) of ulimit. Some servers forbid increasing ulimit values after startup (or beyond a limit set by root). This can be fixed by changing the file descriptor number ulimit:
-```
+```bash
ulimit -n 2048
```
-## ERROR! Failed to install app '\' (No subscription)
+## ERROR! Failed to install app '\' (No subscription)
The Steam account being used does not have a license for the required game.
-## ERROR! Password check for AppId \ returned error Failure.
+## ERROR! Password check for AppId \ returned error Failure
The password for the branch is incorrect.
-## \[S\_API FAIL] SteamAPI\_Init() failed; SteamAPI\_IsSteamRunning() failed.
+## \[S_API FAIL] SteamAPI_Init() failed; SteamAPI_IsSteamRunning() failed
Ignore the error, do not do anything to attempt to fix it. It is a known error that has appeared ever since SteamPipe was introduced. It does not cause any issues and can be ignored.
@@ -279,7 +282,7 @@ Ignore the error, do not do anything to attempt to fix it. It is a known error t
Ignore the error, do not do anything to attempt to fix it. It does not cause any issues and can be ignored.
-## CWorkThreadPool::\~CWorkThreadPool: work processing queue not empty: 2 items discarded.
+## CWorkThreadPool::\~CWorkThreadPool: work processing queue not empty: 2 items discarded
Ignore the error, do not do anything to attempt to fix it. It does not cause any issues and can be ignored.
diff --git a/steamcmd/gslt.md b/steamcmd/gslt.md
index bcfcdf2..9ee55b1 100644
--- a/steamcmd/gslt.md
+++ b/steamcmd/gslt.md
@@ -4,29 +4,29 @@ Game Server Login Token is a new system by Valve for managing game servers.
## Games using GSLT
-* Ballistic Overkill
-* Brainbread 2
-* Black Mesa: Deathmatch
-* Blade Symphony (**required**)
-* Counter-Strike: Global Offensive (**required**)
-* Counter-Strike: Source (**required**)
-* Day of Defeat: Source
-* Empires Mod
-* Garry’s Mod (**required**)
-* Insurgency
-* Insurgency: Sandstorm
-* No more Room in Hell (**required**)
-* Nuclear Dawn
-* Team Fortress 2
-* Tower Unite
-* Unturned
-* Zombie Panic! Source
+- Ballistic Overkill
+- Brainbread 2
+- Black Mesa: Deathmatch
+- Blade Symphony (**required**)
+- Counter-Strike: Global Offensive (**required**)
+- Counter-Strike: Source (**required**)
+- Day of Defeat: Source
+- Empires Mod
+- Garry’s Mod (**required**)
+- Insurgency
+- Insurgency: Sandstorm
+- No more Room in Hell (**required**)
+- Nuclear Dawn
+- Team Fortress 2
+- Tower Unite
+- Unturned
+- Zombie Panic! Source
## What is GSLT?
GSLT creates a persistent token for a game server. This allows any users who added your server to favorites to join, even if you change your ip address. This is very useful if you change your server/hosting provider.
-To fully understand the reasoning behind GSLT, we need to back up a bit to July 2015. [Valve announced that running certain plugins would get your server blacklisted](http://dathost.net/blog/important-information-regarding-our-csgo-servers/), meaning it could not connect to the master servers and people wouldn’t be able to connect to the server.
+To fully understand the reasoning behind GSLT, we need to back up a bit to July 2015. [Valve announced that running certain plugins would get your server blacklisted](http://dathost.net/blog/important-information-regarding-our-csgo-servers/), meaning it could not connect to the master servers and people wouldn't be able to connect to the server.
This created a lot of problems for game server providers, large communities, and anyone providing configurable servers to third parties, as bans were handed out by IP, meaning that an entire machine could be banned because of one malicious or uninformed user.
@@ -48,7 +48,7 @@ Every single server must use a unique GSLT.
## GSLT Server Parameter
-GSLT can be registered on your server(s) by using the `sv_setsteamaccount` command either in [_autoexec.cfg_](../configuration/game-server-config.md) or from a [_start parameter_](../configuration/start-parameters.md).
+GSLT can be registered on your server(s) by using the `sv_setsteamaccount` command either in [autoexec.cfg](../configuration/game-server-config.md) or from a [start parameter](../configuration/start-parameters.md).
start parameter
@@ -68,11 +68,11 @@ Tower Unite has a command within its [config file](../configuration/game-server-
### If one of my tokens is banned/blacklisted, will all tokens be banned?
-Yes, all of the tokens on your account will be blacklisted if one of your servers are found to be running a blacklisted plugin. Make sure you read up on Valve’s plugin policies before running a game server so nothing unfortunate happens to your tokens.
+Yes, all of the tokens on your account will be blacklisted if one of your servers are found to be running a blacklisted plugin. Make sure you read up on Valve's plugin policies before running a game server so nothing unfortunate happens to your tokens.
### If my GSLT gets banned for running a blacklisted plugin, will my steam account be community and/or VAC banned?
-Depending on the game Valve will punish the account that generated the token, On CS:GO you get a global cooldown of 7 days (you cannot join any community/valve server) Most likely, it won’t be VAC banned, but Valve’s requirement that anyone creating GSLTs is not community banned, you may be community banned for running blacklisted plugins.
+Depending on the game Valve will punish the account that generated the token, On CS:GO you get a global cooldown of 7 days (you cannot join any community/valve server) Most likely, it won't be VAC banned, but Valve's requirement that anyone creating GSLTs is not community banned, you may be community banned for running blacklisted plugins.
### Can I use the same GSLT for multiple servers?
@@ -80,17 +80,17 @@ No. You must create a unique GSLT for each simultaneously running server.
### Can I re-use GSLTs?
-Yes, you can add your GSLT to a new server, you just can’t run two servers with the same GSLT, at the same time.
+Yes, you can add your GSLT to a new server, you just can't run two servers with the same GSLT, at the same time.
### Do I still need a Steam WebAPI key to host workshop maps?
Unfortunately, despite registering a GSLT to your server, CS:GO servers will still need a Steam WebAPI key to host maps from the Workshop.
-As of yet, no official confirmation has been made that TF2 servers will also require GSLTs, but they do support them so it’s not a wild guess that this is to come.
+As of yet, no official confirmation has been made that TF2 servers will also require GSLTs, but they do support them so it's not a wild guess that this is to come.
### My server loses connection to the registered Steam account
-Don’t use the same GSLT for multiple servers. When a server starts with a specific GSLT, it will disconnect any other servers already running that same GSLT. You need to create a unique GSLT for each server.
+Don't use the same GSLT for multiple servers. When a server starts with a specific GSLT, it will disconnect any other servers already running that same GSLT. You need to create a unique GSLT for each server.
### Is there a limit on how many GSLTs my account can have?
diff --git a/steamcmd/lan-discovery.md b/steamcmd/lan-discovery.md
index 131ab2e..7610015 100644
--- a/steamcmd/lan-discovery.md
+++ b/steamcmd/lan-discovery.md
@@ -10,13 +10,13 @@ Many admins who have tried, reported a local server does not appear on the LAN t
Connect using the console command.
-```
+```text
connect IP:PORT
```
If the port is 27015, then you can just use : `connect IP`
-```
+```text
connect 192.168.1.10:27025
```
diff --git a/steamcmd/steam-master-server.md b/steamcmd/steam-master-server.md
index fe8605a..a3bf63c 100644
--- a/steamcmd/steam-master-server.md
+++ b/steamcmd/steam-master-server.md
@@ -6,7 +6,7 @@ description: Some game servers are listed on the steam master server list
For a game server to be seen online it normally has to register itself on a master server list. Valve maintains a master server for many different games. The master server is used to populate the server browser.
-![](../.gitbook/assets/screenshot-from-2019-06-09-23-48-11.png)
+![Screenshot](../.gitbook/assets/screenshot-from-2019-06-09-23-48-11.png)
## Master Server Check
@@ -14,7 +14,7 @@ LinuxGSM can check that supported game servers are listed on the steam master se
You can check that your server is listed on the master server by using `./gameserver details`
-```
+```text
Master server: listed
```
@@ -22,7 +22,7 @@ Master server: listed
Not all game servers support this option but if it does the setting is set to true by default.
{% endhint %}
-```
+```bash
steammaster="true"
```
@@ -30,7 +30,7 @@ steammaster="true"
There are instances when a game server might not appear in the server list due to several common reasons:
-* Server Loading Time: Please be patient while the server loads, as it may take some time before it becomes visible. Depending on the game server type, certain servers require additional time for tasks like map seeding or loading mods.
-* Blocked or Misconfigured [Ports](../networking/ports.md): Ensure that the ports are correctly set up and not blocked. To verify the connection, try connecting directly to the server.
-* Filtering in Server List: Check that you have not applied any filters in the server browser. Filters like specific maps, "Empty Server," or "Password Protected" should be unchecked to display all available servers.
-* Server Browser Limitations: It's possible that the server browser functionality of the game might not list all available game servers. In such cases, not all servers may be visible in the server list.
+- Server Loading Time: Please be patient while the server loads, as it may take some time before it becomes visible. Depending on the game server type, certain servers require additional time for tasks like map seeding or loading mods.
+- Blocked or Misconfigured [Ports](../networking/ports.md): Ensure that the ports are correctly set up and not blocked. To verify the connection, try connecting directly to the server.
+- Filtering in Server List: Check that you have not applied any filters in the server browser. Filters like specific maps, "Empty Server," or "Password Protected" should be unchecked to display all available servers.
+- Server Browser Limitations: It's possible that the server browser functionality of the game might not list all available game servers. In such cases, not all servers may be visible in the server list.
diff --git a/steamcmd/workshop.md b/steamcmd/workshop.md
index c1b9fac..7c89e42 100644
--- a/steamcmd/workshop.md
+++ b/steamcmd/workshop.md
@@ -10,16 +10,16 @@ LinuxGSM adds workshop pre-configuration to game server scripts when available.
This is a list of game servers that are known to support Workshop
-* Ark: Survival Evolved
-* ARMA 3
-* Day of Infamy
-* Counter-Strike 2
-* Garrys Mod
-* Hurtworld
-* Insurgency: Sandstorm
-* Killing Floor 2
-* Natural Selection 2
-* Starbound
+- Ark: Survival Evolved
+- ARMA 3
+- Day of Infamy
+- Counter-Strike 2
+- Garrys Mod
+- Hurtworld
+- Insurgency: Sandstorm
+- Killing Floor 2
+- Natural Selection 2
+- Starbound
## Steam Web API Key/Auth Key
@@ -37,7 +37,7 @@ The Steam Workshop is made up of individual items such as maps, game modes, skin
To get and item or collection ID browse to the item you want to add and look at the URL; it will contain the required ID number. In the example below the ID is `3075706807`.
-```
+```text
https://steamcommunity.com/sharedfiles/filedetails/?id=3075706807
```
@@ -57,10 +57,8 @@ Fill out the form.
Add any maps to the collection, then publish the completed collection. Then get the collection ID which can be found on the page URL. The collection ID in the url below is `157384458`.
-```
+```text
https://steamcommunity.com/sharedfiles/filedetails/?id=157384458
```
## Server Configurations
-
-###
diff --git a/support/faq.md b/support/faq.md
index 55c896e..183edcf 100644
--- a/support/faq.md
+++ b/support/faq.md
@@ -8,7 +8,7 @@ FAQ section is to try to help with common problems with LinuxGSM.
There are various ways to get help and support with LinuxGSM.
-* [http://linuxgsm.com/support](https://linuxgsm.com/support)
+- [http://linuxgsm.com/support](https://linuxgsm.com/support)
{% hint style="warning" %}
Remember to consider the best place to post your issue and search the internet for a solution before posting.
@@ -18,26 +18,26 @@ Remember to consider the best place to post your issue and search the internet f
The website and GitHub wiki is a useful resource for various LinuxGSM related topics.
-* [https://linuxgsm.com](https://linuxgsm.com)
-* [https://docs.linuxgsm.com](https://docs.linuxgsm.com)
+- [https://linuxgsm.com](https://linuxgsm.com)
+- [https://docs.linuxgsm.com](https://docs.linuxgsm.com)
### General Support
LinuxGSM has a discord server where you can get general support for LinuxGSM related stuff.
-* [https://linuxgsm.com/discord](https://linuxgsm.com/discord)
+- [https://linuxgsm.com/discord](https://linuxgsm.com/discord)
### Bugs/Feature Requests
LinuxGSM has a GitHub issues page where you can submit any bugs and feature suggestions.
-* [https://linuxgsm.com/issues](https://linuxgsm.com/issues)
+- [https://linuxgsm.com/issues](https://linuxgsm.com/issues)
## tmux: command not found
I received the following error
-```
+```text
[ FAIL ] Tmux not installed
* Tmux is required to run this server.
* Please see the the following link.
@@ -46,31 +46,31 @@ I received the following error
Tmux has not been installed. See the dependencies section of the installation instructions.
-```
+```bash
apt-get install tmux
```
or
-```
+```bash
yum install tmux
```
## Can I run a server as root?
-```
+```text
[ FAIL ] Script will not run as root!
```
The script will not run as root and will error if you try. This is done for the following good reasons:
-* So you or someone else don't accidentally damage your system. (`rm -rf *` anyone?).
-* So you don't mess up your game servers' user permissions.
-* To help prevent someone from potentially using your game server and gain root access.
-* Keep the game server compartmentalised in its own directory away from your other stuff.
-* It's really bad practice to run scripts as root.
-* Would you really trust yourself as root after a 9-hour energy-drink-fuelled CS:GO session?
-* Did I mention it so you don't break everything!?
+- So you or someone else don't accidentally damage your system. (`rm -rf *` anyone?).
+- So you don't mess up your game servers' user permissions.
+- To help prevent someone from potentially using your game server and gain root access.
+- Keep the game server compartmentalised in its own directory away from your other stuff.
+- It's really bad practice to run scripts as root.
+- Would you really trust yourself as root after a 9-hour energy-drink-fuelled CS:GO session?
+- Did I mention it so you don't break everything!?
## I can't download linuxgsm.sh (TLS/SSL Errors)
@@ -78,7 +78,7 @@ If your error looks like `Unable to establish SSL connection` you need to make s
If you are using an "old" distribution, it is possible that your version of wget doesn't support redirects along with SSL/TLS. As a workaround, you can download the script using `--no-check-certificate`. Please note that you should only tolerate this practice if your trust your server network connection and the download source at 100%.
-```
+```bash
wget -N --no-check-certificate https://linuxgsm.sh
```
@@ -88,11 +88,11 @@ LinuxGSM installs a vanilla server by default. There is now a mods-install featu
Here are a few useful resources for this.
-* [Metamod: Source](http://www.sourcemm.net/)
-* [Metamod](http://metamod.org/)
-* [Sourcemod](http://www.sourcemod.net/)
-* [AMX Mod X](http://www.amxmodx.org/)
-* [Alliedmodders](http://alliedmods.net/)
+- [Metamod: Source](http://www.sourcemm.net/)
+- [Metamod](http://metamod.org/)
+- [Sourcemod](http://www.sourcemod.net/)
+- [AMX Mod X](http://www.amxmodx.org/)
+- [Alliedmodders](http://alliedmods.net/)
## Will LinuxGSM run on Raspberry PI?
@@ -116,13 +116,11 @@ For more info see this useful video on the subject.
{% embed url="https://www.youtube.com/watch?v=loC7VfgRT-I" %}
-
-
-## \[ WARN ] Multiple active network interfaces.
+## [ WARN ] Multiple active network interfaces
You will get the following message if your server has multiple IP addresses. The game server can only bind to one IP address, because of this you need to tell the server which IP address you want to use.
-```
+```text
[ WARN ] Multiple active network interfaces
Manually specify the IP you want to use within the csgoserver script.
@@ -137,13 +135,13 @@ Edit the LinuxGSM config located in lgsm/config-lgsm/\[servername]/
Find and edit the following line and change it to the IP address you want to use.
-```
+```bash
ip="0.0.0.0"
```
-## version \`GLIBC\_2.15′ not found
+## version `GLIBC_2.15′ not found
-```
+```text
version `GLIBC_2.15′ not found
```
@@ -151,7 +149,7 @@ The correct version of Glibc is not installed. See the dependencies section of t
## write error: No space left on device
-```
+```text
write error: No space left on device
```
@@ -181,10 +179,10 @@ Non-steam versions of the games ARE pirated and this would be the only reason to
LinuxGSM itself has extremely low server requirements as it is written in BASH. However, the game servers themselves do have hardware requirements. You need to be aware of these requirements in order to choose a server that fits your needs. There are no hard and fast rules when it comes to server requirements and depends upon many factors.
-* Hard Disk: You will need to ensure you have enough disk space to install the game server. The space required varies drastically depending on the game. Generally the older the game the smaller the size. If the server is on SteamCMD you can use SteamDB to find out the disk requirements. For example [https://steamdb.info/app/403240/depots/](https://steamdb.info/app/403240/depots/). Also take into consideration any mods, addons, backups, etc you might need.
-* CPU: Most game servers are mono-threaded. This means it will only use one CPU core per instance, because of this it is worth looking at the performance of an individual core. Every game server has different resource requirements with certain factors increasing CPU demand. For example, In Rust, the map size greatly affects CPU usage. For Counter-Strike the tick rate and bots will make a difference. Whereas for Garry's Mod the number of connected players, add-ons, and props that are used and spawned increase server requirements.
-* RAM: Again the specific game server will impact upon the RAM requirements. In general factors such as map size number of players, bots, and add-ons can have an impact on the RAM required. For example, a No More Room in Hell server has a much lower RAM requirement than ARK or Rust. The game engine also plays a massive role in RAM requirements, with Rust using around 12GB and ARK using around 6GB, Unity3D engine games can also have higher requirements.
-* Network: Game servers are not usually very demanding in terms of bandwidth. However, the connection must be reliable and consistent to ensure players get a good experience. Reducing ping and packet loss is very important, otherwise, players will experience latency and lag. Your server's location has a big effect on ping, so try to get your server relatively close to where your players are going to be. If your players are in France then a server in Europe is going to be much better than one in the US for example. Servers can sometimes come under attack so DDoS protection is also important.
+- Hard Disk: You will need to ensure you have enough disk space to install the game server. The space required varies drastically depending on the game. Generally the older the game the smaller the size. If the server is on SteamCMD you can use SteamDB to find out the disk requirements. For example [https://steamdb.info/app/403240/depots/](https://steamdb.info/app/403240/depots/). Also take into consideration any mods, addons, backups, etc you might need.
+- CPU: Most game servers are mono-threaded. This means it will only use one CPU core per instance, because of this it is worth looking at the performance of an individual core. Every game server has different resource requirements with certain factors increasing CPU demand. For example, In Rust, the map size greatly affects CPU usage. For Counter-Strike the tick rate and bots will make a difference. Whereas for Garry's Mod the number of connected players, add-ons, and props that are used and spawned increase server requirements.
+- RAM: Again the specific game server will impact upon the RAM requirements. In general factors such as map size number of players, bots, and add-ons can have an impact on the RAM required. For example, a No More Room in Hell server has a much lower RAM requirement than ARK or Rust. The game engine also plays a massive role in RAM requirements, with Rust using around 12GB and ARK using around 6GB, Unity3D engine games can also have higher requirements.
+- Network: Game servers are not usually very demanding in terms of bandwidth. However, the connection must be reliable and consistent to ensure players get a good experience. Reducing ping and packet loss is very important, otherwise, players will experience latency and lag. Your server's location has a big effect on ping, so try to get your server relatively close to where your players are going to be. If your players are in France then a server in Europe is going to be much better than one in the US for example. Servers can sometimes come under attack so DDoS protection is also important.
To find out specific requirements of game servers check out official game documentation or forums.
@@ -192,37 +190,41 @@ To find out specific requirements of game servers check out official game docume
You're lacking the required module, because you didn't run this command before the last huge LinuxGSM update. The module structure changed, that's why you're getting a 404 error. You just need the newer LinuxGSM version.
-```
+```bash
./gameserver update-lgsm
```
-## \[ FAIL ] Starting game-server: Ownership issues found
+## [ FAIL ] Starting game-server: Ownership issues found
The user that you are running LinuxGSM with does not own all of its files.
For more information, see [Ownership](../linux/file-ownership.md)
-**Getting rid of bad practice**
+## Getting rid of bad practice
+
+### Case 1
+
+You've been uploading files as root or any other user than your game server user. If you're logging into your FTP as root, you must know that this is wrong on so many levels and must consider using a better method urgently. Here is an [example](https://gist.github.com/UltimateByte/229c17b3c48ca10080c5e56b5513e476) of a simple user-based FTP set in 2 minutes with proftpd which would already be better. Otherwise, one way better practice is to use SFTP that comes with SSH. No need to install an FTP server as long as you've got an SSH server. Just setup your FTP client to use SFTP, and connect with the same port as your SSH server and with your username/password.
-**Case 1)** You've been uploading files as root or any other user than your game server user. If you're logging into your FTP as root, you must know that this is wrong on so many levels and must consider using a better method urgently. Here is an [example](https://gist.github.com/UltimateByte/229c17b3c48ca10080c5e56b5513e476) of a simple user-based FTP set in 2 minutes with proftpd which would already be better. Otherwise, one way better practice is to use SFTP that comes with SSH. No need to install an FTP server as long as you've got an SSH server. Just setup your FTP client to use SFTP, and connect with the same port as your SSH server and with your username/password.
+### Case 2
-**Case 2)** You've been downloading/extracting/copying files as root instead of the appropriate user. Just don't, do it as the user, OR, if you're obstinate, then at least chown files afterward.
+You've been downloading/extracting/copying files as root instead of the appropriate user. Just don't, do it as the user, OR, if you're obstinate, then at least chown files afterward.
-**Fixing wrong ownership**
+## Fixing wrong ownership
You can simply fix those ownership issues by using a chown command as root.
-```
+```bash
chown -R username:username /home/username
```
-## \[ FAIL ] Starting game-server: Permission issues found
+## [ FAIL ] Starting game-server: Permission issues found
It usually means some scripts or executable files are not actually executable.
Useful command:
-```
+```bash
chmod +x
```
@@ -232,15 +234,15 @@ To learn more about this, see [Permissions](../linux/permissions.md)
This can have numerous reasons. Here are some ways to diagnose this issue:
-* Check your game logs to see if it contains any clue
-* Is your server listening? Input `./gameserver details` to get the corresponding command to know it
-* Are you behind [Firewalls](../linux/firewalls.md)? Double-check your rules, and try to disable it for testing
-* Do you have multiple interfaces? Set the right IP within your "gameserver" script or the game config file
-* Is it a home server? If you're behind a router, make sure you're listening to your local IP, then redirect appropriate ports to this local IP within your router settings.
-* Are the ports you're using free? See [Ports](../networking/ports.md)
-* Did you wait long enough? Sometimes it's just a matter of time until your server shows up on the list
+- Check your game logs to see if it contains any clue
+- Is your server listening? Input `./gameserver details` to get the corresponding command to know it
+- Are you behind [Firewalls](../linux/firewalls.md)? Double-check your rules, and try to disable it for testing
+- Do you have multiple interfaces? Set the right IP within your "gameserver" script or the game config file
+- Is it a home server? If you're behind a router, make sure you're listening to your local IP, then redirect appropriate ports to this local IP within your router settings.
+- Are the ports you're using free? See [Ports](../networking/ports.md)
+- Did you wait long enough? Sometimes it's just a matter of time until your server shows up on the list
-## How do I solve a segmentation fault?
+## How do I solve a segmentation fault?
My source server is displaying an error like `./srcds_run: line 318: 31093 Segmentation fault`
@@ -248,17 +250,17 @@ This kind of error can happen at any time or be due to numerous reasons. However
If it happens upon start:
-* Interpreter issue (glibc libstdc gcc libraries and so on) - check your versions, libraries, and game binary files.
-* Outdated or bugged addon - Update or remove the addon
-* Missing or revoked GSLT - Update your GSLT
-* Corrupted game server files - run ./gameserver validate
-* File version incompatibility - run ./gameserver validate
+- Interpreter issue (glibc libstdc gcc libraries and so on) - check your versions, libraries, and game binary files.
+- Outdated or bugged addon - Update or remove the addon
+- Missing or revoked GSLT - Update your GSLT
+- Corrupted game server files - run ./gameserver validate
+- File version incompatibility - run ./gameserver validate
If it happens after a while:
-* A bug from the game server or an addon - Check your console logs, see if you can reproduce, and diagnose your addons
-* Unstable hardware - very unlikely, check your system stability
-* Ulimit issue: Your system cannot open as many files as it should - See ulimit info from this page
+- A bug from the game server or an addon - Check your console logs, see if you can reproduce, and diagnose your addons
+- Unstable hardware - very unlikely, check your system stability
+- Ulimit issue: Your system cannot open as many files as it should - See ulimit info from this page
## How do I change the LinuxGSM branch?
@@ -268,7 +270,7 @@ either `linuxgsm.sh` or `gameserver` e.g `csgoserver`
edit the following lines as required.
-```
+```bash
## GitHub Branch Select
# Allows for the use of different function files
# from a different repo and/or branch.
@@ -280,6 +282,6 @@ githubbranch="master"
Once the details are changed update LinuxGSM.
-```
+```bash
./gameserver update-lgsm
```
diff --git a/support/game-server.md b/support/game-server.md
index 34bc72e..7c0348c 100644
--- a/support/game-server.md
+++ b/support/game-server.md
@@ -2,24 +2,23 @@
LinuxGSM cannot always provide support for specific game servers. However there are various support forums available for specific game server support that may be useful.
-* [ARK: Survival Evolved](https://survivetheark.com/index.php?/forums/forum/39-server-administration/)
-* [ARMA 3](https://forums.bohemia.net/forums/forum/159-arma-3-servers-administration/)
-* [Counter-Strike: Global Offensive](https://steamcommunity.com/app/730/discussions/)
-* [Counter-Strike 1.6](https://steamcommunity.com/app/10/discussions/)
-* [Counter-Strike: Source](https://steamcommunity.com/app/240/discussions/)
-* [Day of Defeat: Source](https://steamcommunity.com/app/300/discussions/)
-* [Day of Infamy](https://steamcommunity.com/app/447820/discussions/)
-* [GoldenEye: Source](https://forums.geshl2.com/)
-* [Garry's Mod](https://forum.facepunch.com/f/)
-* [Insurgency](https://steamcommunity.com/app/222880/discussions/2/)
-* [Killing Floor 2](https://forums.tripwireinteractive.com/forum/killing-floor-2/technical-support-ae/dedicated-server-support-ac)
-* [Minecraft](https://www.minecraftforum.net/forums/servers-java-edition/minecraft-server-hosting)
-* [Quake 3](https://steamcommunity.com/app/2200/discussions/)
-* [Rust](https://forum.facepunch.com/f/)
-* [Terraria](https://forums.terraria.org/index.php?forums/)
-* [Team Fortress 2](https://steamcommunity.com/app/440/discussions/)
-* [Teamspeak 3](https://forum.teamspeak.com/forums/93-TeamSpeak-3-Technical-Discussions-EN-DE)
-* [Unreal Tournament 2004](https://www.epicgames.com/unrealtournament/forums/past-unreal-tournament-games/unreal-tournament-2003-2004)
-* [Unreal Tournamnet 3](https://www.epicgames.com/unrealtournament/forums/past-unreal-tournament-games/unreal-tournament-3)
-* [Unreal Tournament 99](https://www.epicgames.com/unrealtournament/forums/past-unreal-tournament-games/unreal-tournament-‘99)
-
+- [ARK: Survival Evolved](https://survivetheark.com/index.php?/forums/forum/39-server-administration/)
+- [ARMA 3](https://forums.bohemia.net/forums/forum/159-arma-3-servers-administration/)
+- [Counter-Strike: Global Offensive](https://steamcommunity.com/app/730/discussions/)
+- [Counter-Strike 1.6](https://steamcommunity.com/app/10/discussions/)
+- [Counter-Strike: Source](https://steamcommunity.com/app/240/discussions/)
+- [Day of Defeat: Source](https://steamcommunity.com/app/300/discussions/)
+- [Day of Infamy](https://steamcommunity.com/app/447820/discussions/)
+- [GoldenEye: Source](https://forums.geshl2.com/)
+- [Garry's Mod](https://forum.facepunch.com/f/)
+- [Insurgency](https://steamcommunity.com/app/222880/discussions/2/)
+- [Killing Floor 2](https://forums.tripwireinteractive.com/forum/killing-floor-2/technical-support-ae/dedicated-server-support-ac)
+- [Minecraft](https://www.minecraftforum.net/forums/servers-java-edition/minecraft-server-hosting)
+- [Quake 3](https://steamcommunity.com/app/2200/discussions/)
+- [Rust](https://forum.facepunch.com/f/)
+- [Terraria](https://forums.terraria.org/index.php?forums/)
+- [Team Fortress 2](https://steamcommunity.com/app/440/discussions/)
+- [Teamspeak 3](https://forum.teamspeak.com/forums/93-TeamSpeak-3-Technical-Discussions-EN-DE)
+- [Unreal Tournament 2004](https://www.epicgames.com/unrealtournament/forums/past-unreal-tournament-games/unreal-tournament-2003-2004)
+- [Unreal Tournamnet 3](https://www.epicgames.com/unrealtournament/forums/past-unreal-tournament-games/unreal-tournament-3)
+- [Unreal Tournament 99](https://www.epicgames.com/unrealtournament/forums/past-unreal-tournament-games/unreal-tournament-‘99)
diff --git a/troubleshooting.md b/troubleshooting.md
index 3802930..5e3e1a3 100644
--- a/troubleshooting.md
+++ b/troubleshooting.md
@@ -8,24 +8,24 @@ Your game server might not install for many reasons, mainly user based ones, and
### User and permissions
-* Did you create a dedicated user for your server?
-* Are you running the script as the right user? Check command: `whoami`
-* Does the user running the script owns its current directory? Check command: `ls -al .`, see [File Ownership](linux/file-ownership.md)
-* Does the user have the right permissions on its directories? See [Permissions](linux/permissions.md)
+- Did you create a dedicated user for your server?
+- Are you running the script as the right user? Check command: `whoami`
+- Does the user running the script owns its current directory? Check command: `ls -al .`, see [File Ownership](linux/file-ownership.md)
+- Does the user have the right permissions on its directories? See [Permissions](linux/permissions.md)
### Dependencies
-* Did you install required packages (dependencies) as game page on [https://linuxgsm.com](https://linuxgsm.com) requests?
-* If sudo isn't installed, did you remove "sudo" from packages install commands?
-* If `lib32gcc1 libstdc++6 libstdc++6:i386` packages won't install, did you run `apt update` after `dpkg --add-architecture i386`?
-* If some dependencies are not available, did you check your /etc/apt/sources.list? (Debian based and apt only)
+- Did you install required packages (dependencies) as game page on [https://linuxgsm.com](https://linuxgsm.com) requests?
+- If sudo isn't installed, did you remove "sudo" from packages install commands?
+- If `lib32gcc1 libstdc++6 libstdc++6:i386` packages won't install, did you run `apt update` after `dpkg --add-architecture i386`?
+- If some dependencies are not available, did you check your /etc/apt/sources.list? (Debian based and apt only)
### Game server downloads
-* Do you have enough disk space on the desired partition? Check command: `df -h`
-* If the server requests a Steam login, did you enter it properly by editing your (example) "gameserver" script? It's a good idea to have a dedicated Steam account for that purpose.
-* If the Steam download didn't work as intended, did you retry it, or try the [validate](commands/validate.md) command? Maybe your connection to Steam servers is faulty.
-* Did you make sure that a firewall doesn't prevent the download from working? Check command: `iptables -L` ; See [Firewalls](linux/firewalls.md)
+- Do you have enough disk space on the desired partition? Check command: `df -h`
+- If the server requests a Steam login, did you enter it properly by editing your (example) "gameserver" script? It's a good idea to have a dedicated Steam account for that purpose.
+- If the Steam download didn't work as intended, did you retry it, or try the [validate](commands/validate.md) command? Maybe your connection to Steam servers is faulty.
+- Did you make sure that a firewall doesn't prevent the download from working? Check command: `iptables -L` ; See [Firewalls](linux/firewalls.md)
## Start issues
@@ -35,48 +35,53 @@ Note: (example) `./gameserver details` will provide you with relevant informatio
### First start issues
-* Is the server properly installed? See the "Game server downloads" part
-* Are all packages installed properly? See "Dependencies" part
-* Is your Linux installation compatible? 32/64bit, distribution... Check command: `uname -a`
-* Are ports already used by another service? See [Ports](networking/ports.md) and [Multiple-Game-Servers](configuration/multiple-game-servers.md)
-* Is this a known tmux issue? See [Tmux](requirements/tmux.md)
-* Did you try to start with the `debug` command? See [debug](commands/debug.md)
-* What does the logs say? See \[[Logging](features/logging.md)
-* Do you have enough RAM? If not, do you have enough swap? Check command: `free -mh`
-* Did you set an ip in your (example) gameserver script or config file?
+- Is the server properly installed? See the "Game server downloads" part
+- Are all packages installed properly? See "Dependencies" part
+- Is your Linux installation compatible? 32/64bit, distribution... Check command: `uname -a`
+- Are ports already used by another service? See [Ports](networking/ports.md) and [Multiple-Game-Servers](configuration/multiple-game-servers.md)
+- Is this a known tmux issue? See [Tmux](requirements/tmux.md)
+- Did you try to start with the `debug` command? See [debug](commands/debug.md)
+- What does the logs say? See [Logging](features/logging.md)
+- Do you have enough RAM? If not, do you have enough swap? Check command: `free -mh`
+- Did you set an ip in your (example) gameserver script or config file?
### Modded servers start issues
-* What does the logs say? See \[[Logging](features/logging.md)
-* Did you try to start with the `debug` command? See [debug](commands/debug.md)
-* Did you wrongly append start parameters? See [Start-Parameters](configuration/start-parameters.md)
-* Did you try temporarily removing mods, and adding them one by one?
-* Does the user have the right permissions on its directories? If this is the case, a corresponding error should be displayed. See [Permissions](linux/permissions.md)
+- What does the logs say? See [Logging](features/logging.md)
+- Did you try to start with the `debug` command? See [debug](commands/debug.md)
+- Did you wrongly append start parameters? See [Start-Parameters](configuration/start-parameters.md)
+- Did you try temporarily removing mods, and adding them one by one?
+- Does the user have the right permissions on its directories? If this is the case, a corresponding error should be displayed. See [Permissions](linux/permissions.md)
### Server start issues after updates
-* What does the logs say? See \[[Logging](features/logging.md)
-* Did you try to start with the `debug` command? See [debug](commands/debug.md)
-* Did you try to validate your game files? (SteamCMD servers only) See [validate](commands/validate.md)
-* Is a mod no longer compatible? Try temporarily removing mods, and adding them one by one.
-* Is it an editor's error, breaking the server? Does it now require newer package versions? Check forums, alert us if needed by opening a Github issue (and check for existing ones).
+- What does the logs say? See [Logging](features/logging.md)
+- Did you try to start with the `debug` command? See [debug](commands/debug.md)
+- Did you try to validate your game files? (SteamCMD servers only) See [validate](commands/validate.md)
+- Is a mod no longer compatible? Try temporarily removing mods, and adding them one by one.
+- Is it an editor's error, breaking the server? Does it now require newer package versions? Check forums, alert us if needed by opening a Github issue (and check for existing ones).
## Connectivity issues
### Unable to connect or not showing up in server list
-This is a three part diagnosis: 1) First off, you need to make sure that the server is started properly, take attention to any error messages in console or log output. 2) Check that the server is listening, to the right IP. 3) Check for firewalls or ports redirections that could prevent useful network packets from passing through.
+This is a three part diagnosis:
+
+1. First off, you need to make sure that the server is started properly, take attention to any error messages in console or log output.
+2. Check that the server is listening, to the right IP.
+3. Check for firewalls or ports redirections that could prevent useful network packets from passing through.
#### Is the server actually started?
-* Start it with (example `./gameserver start` , then check server logs (see \[[Logging](features/logging.md)) to see if everything seems OK. You can also try the [details](commands/details.md) command and [monitor](commands/monitor.md) command to see if it's online and if it's able to answer simple queries. If not, then follow the "Start issues" section.
+- Start it with `./gameserver start` , then check server logs (see [Logging](features/logging.md)) to see if everything seems OK. You can also try the [details](commands/details.md) and [monitor](commands/monitor.md) command to see if the server is online and if it's able to answer simple queries. If not, then follow the "Start issues" section.
#### Is the server actually listening?
`./gameserver details` will provide you with the corresponding command to check if the server process is properly listening. Example sample output:
-```
-Useful port diagnostic command:
+**Useful port diagnostic command:**
+
+```bash
netstat -atunp | grep srcds_linux
```
@@ -84,27 +89,27 @@ Compare the output from this to expected ports displayed in the details command.
If the output differs or your think something is wrong, here are the things to check on:
-* Did you set an ip in your gameserver script or config file or are you listening to `0.0.0.0`?
-* Are the ports you're using free? See [Ports](networking/ports.md)
-* Are you listening to an actual interface IP? See [Ports](networking/ports.md) Also, double check for typo mistakes.
+- Did you set an ip in your gameserver script or config file or are you listening to `0.0.0.0`?
+- Are the ports you're using free? See [Ports](networking/ports.md)
+- Are you listening to an actual interface IP? See [Ports](networking/ports.md) Also, double check for typo mistakes.
#### Isn't there a firewall or a missing NAT rule?
-* Are you behind [Firewalls](linux/firewalls.md)? See [Firewalls](linux/firewalls.md)
-* If it's a local server, are ports redirection done properly? See [Ports](networking/ports.md) and [details](commands/details.md)
+- Are you behind [Firewalls](linux/firewalls.md)? See [Firewalls](linux/firewalls.md)
+- If it's a local server, are ports redirection done properly? See [Ports](networking/ports.md) and [details](commands/details.md)
-#### Other keys to solving this:
+#### Other keys to solving this
-* As usual, first thing you have to ask yourself: What do the logs say? See \[[Logging](features/logging.md)
-* Did you wait long enough? Sometimes it's just a matter of time until the server is fully started and listed into the master server list.
+- As usual, first thing you have to ask yourself: What do the logs say? See [Logging](features/logging.md)
+- Did you wait long enough? Sometimes it's just a matter of time until the server is fully started and listed into the master server list.
## If none of these work
**GitHub is only for bug reports regarding LinuxGSM, not resolving specific user issues.**
-These kind of install, start or accessibility issues are generally specific to your server or install or comprehension of Linux, so please, note that posting these on GitHub will only result in your issue being closed without an answer and developers' waste of time.\
-Instead, you should use the support methods offered to the community: **Discord** or **Steam Forum** as explained in the [Support](broken-reference) page. There are lot of nice and helpful users and devs follow them as well whenever they have free time.
+These kind of install, start or accessibility issues are generally specific to your server or install or comprehension of Linux, so please, note that posting these on GitHub will only result in your issue being closed without an answer and developers' waste of time.
+Instead, you should use the support methods offered to the community: **Discord** as explained in the [Support](https://linuxgsm.com/support/) page. There are lot of nice and helpful users and devs follow them as well whenever they have free time.
If you ever confirm a global bug after this, LinuxGSM's developers will be happy to resolve it if you raise an issue on GitHub with as much elements as possible to help understanding, reproducing and resolving the bug quickly.
-To learn where and how to get support, see: [Support](broken-reference)
+To learn where and how to get support, see: [Support](https://linuxgsm.com/support/)