diff --git a/README.md b/README.md index 964a7a47..ef6924fd 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 f3c05d29..4541d924 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 ea7edbff..c0c433ea 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 828c6d33..7c6e1717 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 f45ba72c..a5bafbfa 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 d05e0717..8dc9dedb 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 d1e59777..32d8ba2f 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 4fe3c082..72959371 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 ba2f8572..ec45c501 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 65417129..0394dbb3 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 84d61258..e08b7bfc 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 26d37bd1..4d675d73 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 d764f13a..fa2f6c77 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 6dc4cb5a..34a541b9 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 85497517..8ae443c3 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 af363c53..2810cb62 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 bca27024..33a185c1 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 f3662ecd..ef95c098 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 3ccdbd98..0c5dae56 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 aa7c746d..6daada68 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 15babe1b..496b9492 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 5509f498..bd6046cb 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 12659247..3d0c673b 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 3bc1c5c3..edbde32c 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 9d37e09d..0c2a5736 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 0395addd..3049be27 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 a4df97dc..11ab0902 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 7cc3f9b0..5a0b7213 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 117af6fe..5c99f7a3 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 fb00b57d..a025a48b 100644 --- a/configuration/README.md +++ b/configuration/README.md @@ -1,4 +1 @@ # Configuration - - - diff --git a/configuration/cronjobs.md b/configuration/cronjobs.md index c47be95e..aebf6005 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 e6acdcaa..efcf39a2 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 b57a381a..a2955e91 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 61dd69c9..9f9a4629 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 38042b8b..e4f8b7ff 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 97b59d95..2fd1907f 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 b676f3df..588403d5 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 f8f26f5d..d33d460b 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 d5676b6f..73437b84 100644 --- a/developers/README.md +++ b/developers/README.md @@ -1,4 +1 @@ # Developers - - - diff --git a/developers/branching.md b/developers/branching.md index e8477f04..1d9fbf9f 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 08f4e81b..02cc5704 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 a76c39a7..07a4bef2 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 6d7e6678..a6992b76 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 28d190a6..303d90fd 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 bb973106..7edf366b 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 1761755c..cf1a501a 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 e73164e3..ead02231 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 1346edf7..46cbd5f8 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 89cb78a4..81e7bbaa 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 78b18669..58cb2198 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 64d127a2..3d320f5b 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 677fdad0..7c4d075c 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 c215748d..e2e959ce 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 d080aa85..249c2118 100644 --- a/game-servers/ark-survival-evolved.md +++ b/game-servers/ark-survival-evolved.md @@ -4,23 +4,23 @@ ## 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`. -
VariableDescription
SessionNameSpecifies 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`. -
VariableDescription
MaxPlayers=70Specifies the maximum number of players that can play on the server simultaneously.
+| Variable | Description | +| ------------- | ----------------------------------------------------------------------------------- | +| MaxPlayers=70 | Specifies the maximum number of players that can play on the server simultaneously. | The section `[ModInstaller]` handles each extra Steam Workshop Mods/Maps/TC IDs in the `Game.ini`. @@ -83,7 +87,7 @@ The section `[ModInstaller]` handles each extra Steam Workshop Mods/Maps/TC IDs ## Alt Saved Directory Name -``` +```text altsavedirectoryname= ``` @@ -95,25 +99,25 @@ Be careful not to accidentally overwrite a save file if changing maps or using a If `altsaveddirectoryname` is `TheIsland` the save is located will be: -``` +```text ShooterGame/Saved/TheIsland ``` ## Official Map Names -* TheIsland -* TheCenter -* ScorchedEarth\_P -* Ragnarok -* Aberration\_P -* Extinction -* Valguero\_P -* Genesis -* CrystalIsles -* Gen2 -* LostIsland -* Fjordur -* PGARK +- TheIsland +- TheCenter +- ScorchedEarth_P +- Ragnarok +- Aberration_P +- Extinction +- Valguero_P +- Genesis +- CrystalIsles +- Gen2 +- LostIsland +- Fjordur +- PGARK ## Mod Support @@ -129,27 +133,27 @@ Mods can cause your server to become unstable or may not be compatible with each Here is a simple mod to get started: -* [Editable Server UI (WBUI) Open Source - 924619115](https://steamcommunity.com/sharedfiles/filedetails/?id=924619115) +- [Editable Server UI (WBUI) Open Source - 924619115](https://steamcommunity.com/sharedfiles/filedetails/?id=924619115) `-AutoManagedMods` is the required [parameter](../configuration/start-parameters.md) to add workshop support and is added to the start parameters by default. Edit `GameUserSettings.ini`, adding the following line under `[ServerSettings]`. To add multiple mods use a comma delimiter e.g `ActiveMods=924619115,924619652`. -``` +```text [ServerSettings] ActiveMods=924619115 ``` Next, edit or create `Game.ini` and add the following section, this will enable the auto-download of mods. To add multiple mods add another `ModIDS=` line underneath the first. -``` +```text [ModInstaller] ModIDS=924619115 ``` For the example mod add the following to `GameUserSettings.ini` other mods may require their own configuration as per their documentation. -``` +```text [WBUI] Icon=1 OpenBtn=0 @@ -171,7 +175,7 @@ Start the server and the mods will be automatically downloaded by the server. To Large mods may take several minutes to download to the server. {% endhint %} -``` +```text Using binned. 4.5.1-0+UE4 7038 3077 404 10 [S_API FAIL] SteamAPI_Init() failed; SteamAPI_IsSteamRunning() failed. @@ -196,15 +200,15 @@ Success. Downloaded item 679529026 to "/home/lgsm/.steam/SteamApps/workshop/cont If you join before the server or your client has fully downloaded the mod you might get a _Mod Version Mismatch_ error. Simply, give the server more time to load the mods. -![](../.gitbook/assets/gpwwd19-1.png) +![Screenshot](../.gitbook/assets/gpwwd19-1.png) Once you have connected to the server you will be able to see that the mod has loaded by seeing the _Mod Name_ in the game menu `Esc`. -![](<../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1).png>) +![Screenshot](<../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1).png>) The example mod can be activated by pressing `F1`. -![](../.gitbook/assets/924619115\_preview\_unbenannt.PNG) +![Screenshot](../.gitbook/assets/924619115_preview_unbenannt.PNG) ### Mod Collections @@ -226,11 +230,11 @@ If you want players who use the Epic Store to connect to the server the `-Public ## Multi-Instance -ARK can work with LinuxGSM [multi instances ](../configuration/multiple-game-servers.md)in the same install. However, each instance will use the same `GameUserSettings.ini`. To customise each server use command-line parameters as they take precedence over the configs. +ARK can work with LinuxGSM [multi instances](../configuration/multiple-game-servers.md)in the same install. However, each instance will use the same `GameUserSettings.ini`. To customise each server use command-line parameters as they take precedence over the configs. ## CrossARK (Clusters) -A [CrossARK](https://ark.wiki.gg/wiki/CrossARK\_Transfers) cluster allows players to transfer a survivor, items, and tames ("objects") from one ARK to another ARK. A server admin can group all their ARK servers together in a cluster. Typically a server admin will cluster servers with different maps. There are a few different ways to configure CrossARK depending upon your configuration. +A [CrossARK](https://ark.wiki.gg/wiki/CrossARK_Transfers) cluster allows players to transfer a survivor, items, and tames ("objects") from one ARK to another ARK. A server admin can group all their ARK servers together in a cluster. Typically a server admin will cluster servers with different maps. There are a few different ways to configure CrossARK depending upon your configuration. ### Cluster ID @@ -240,7 +244,7 @@ A [CrossARK](https://ark.wiki.gg/wiki/CrossARK\_Transfers) cluster allows player Each server instance must be able to access the _cluster directory_. The cluster directory is a shared location that allows survivor and other data to be shared between server instances. -By default the cluster directory is `ShooterGame/Saved/clusters/`. Depending upon your configuration it may be required that instances need to be pointed to a specific shared directory. To do this use add the`-ClusterDirOverride=` parameter with the directory location. +By default the cluster directory is `ShooterGame/Saved/clusters/`. Depending upon your configuration it may be required that instances need to be pointed to a specific shared directory. To do this use add the`-ClusterDirOverride=` parameter with the directory location. The shared directory can be any preferred location however each instance must be able to read and write to that directory. @@ -264,27 +268,27 @@ Change the command-line parameters for your server instances by editing the inst #### Server 1 (**arkserver.cfg)** -``` +```bash port="7777" queryport="27015" rconport="27020" defaultmap="TheIsland" ``` -``` +```bash ${defaultmap}?SessionName=LinuxGSM-Server-1?AltSaveDirectoryName=${altsavedirectoryname}?RCONPort=${rconport} -MultiHome=${ip} -Port=${port} -QueryPort=${queryport} -AutoManagedMods -Crossplay -PublicIPForEpic=${publicip} -ClusterId=hsqCd8MR65VFRFdPcDjw ``` #### **Server 2 (arkserver-2.cfg)** -``` +```bash port="7778" queryport="27016" rconport="27021" defaultmap="Ragnarok" ``` -``` +```bash ${defaultmap}?SessionName=LinuxGSM-Server-2?AltSaveDirectoryName=${altsavedirectoryname}?RCONPort=${rconport} -MultiHome=${ip} -Port=${port} -QueryPort=${queryport} -AutoManagedMods -Crossplay -PublicIPForEpic=${publicip} -ClusterId=hsqCd8MR65VFRFdPcDjw ``` diff --git a/game-servers/arma-3.md b/game-servers/arma-3.md index 829ee666..53744c81 100644 --- a/game-servers/arma-3.md +++ b/game-servers/arma-3.md @@ -1,20 +1,20 @@ # Arma 3 -![](../.gitbook/assets/arma3.jpg) +![Arma 3 Logo](../.gitbook/assets/arma3.jpg) ## Server Resources -* [Official Dedicated Server Guide](https://community.bistudio.com/wiki/Arma\_3:\_Dedicated\_Server) +- [Official Dedicated Server Guide](https://community.bistudio.com/wiki/Arma_3:_Dedicated_Server) ## Headless Client ### Headless Client Overview -[https://community.bistudio.com/wiki/Arma\_3\_Headless\_Client](https://community.bistudio.com/wiki/Arma\_3\_Headless\_Client) +[https://community.bistudio.com/wiki/Arma_3_Headless_Client](https://community.bistudio.com/wiki/Arma_3_Headless_Client) -* A headless Client is used to offload AI calculations from the server. -* Headless Client is integrated into the game client and dedicated server executable (Windows and Linux, use `-client` parameter). -* The server does not allow arbitrary connections from headless clients if you do not define the headless clients' IPs in the `server.cfg`. +- A headless Client is used to offload AI calculations from the server. +- Headless Client is integrated into the game client and dedicated server executable (Windows and Linux, use `-client` parameter). +- The server does not allow arbitrary connections from headless clients if you do not define the headless clients' IPs in the `server.cfg`. ### Headless Client Setup and Usage @@ -32,7 +32,7 @@ Change the `port=` increasing the number by a factor of 12 e.g 2303 becomes 2314 Update `startparameters=` changing it to the following. -``` +```bash startparameters="-client -connect=${ip}:${port} -password=CHANGEME" ``` @@ -42,14 +42,14 @@ Edit the game server config of `arma3server` (not the headless client) `arma3ser Do not use 127.0.0.1 as the IP address. {% endhint %} -``` -headlessClients[]={"1.2.3.4"}; +```text +headlessClients[]={"1.2.3.4"}; localClient[]={"1.2.3.4"}; ``` Navigate to your profile directory. -``` +```bash ~cd ~/.local/share/Arma\ 3\ -\ Other\ Profiles ``` @@ -75,13 +75,13 @@ Mods can cause your server to become unstable or may not be compatible with each Here is a popular mod to get started: -* [CBA: Community Based Addons for Arma 3](https://steamcommunity.com/workshop/filedetails/?id=450814997) +- [CBA: Community Based Addons for Arma 3](https://steamcommunity.com/workshop/filedetails/?id=450814997) Download the Mod using [https://steamworkshopdownloader.io/](https://steamworkshopdownloader.io/) the workshop id is `450814997` Create a directory called `@cba_a3` in `serverfiles/mods` -``` +```text serverfiles/mods/@cba_a3 ``` @@ -93,19 +93,19 @@ Remember to check you have the correct user permissions once uploaded Copy the contents of the `@cba_a3/keys` directory to the server keys directory. -``` +```bash cp serverfiles/mods/@cba_a3/keys/* serverfiles/keys ``` -Add @cba\_a3 to the `mods=""` setting in the [LinuxGSM config](../configuration/linuxgsm-config.md). +Add @cba_a3 to the `mods=""` setting in the [LinuxGSM config](../configuration/linuxgsm-config.md). -``` +```text mods="mods/@cba_a3" ``` If you are adding multiple mods make sure you put a semicolon with the escape character in between each mod. -``` +```text mods="mods/@mod1\;mods/@mod2" ``` @@ -140,7 +140,7 @@ done Start the server and check that your mods all have valid hashes.\ You should see the "Community Base Addons" mod appear in your `console` [log](../features/logging.md)file. -``` +```text 15:27:37 ============================================================================================= List of mods =============================================================================================== 15:27:37 modsReadOnly = true 15:27:37 safeModsActivated = false diff --git a/game-servers/call-of-duty-4.md b/game-servers/call-of-duty-4.md index 7d5f68da..e0bf9cc9 100644 --- a/game-servers/call-of-duty-4.md +++ b/game-servers/call-of-duty-4.md @@ -20,19 +20,19 @@ CoD4x has its own update functionality. It will automatically check for updates CoD4x game servers (since version 17.6) require a server token to be listed on the CoD4x master server. -To generate a token visit [here](https://cod4master.cod4x.ovh/index.php?token\_generator=true). +To generate a token visit [here](https://cod4master.cod4x.ovh/index.php?token_generator=true). Once a token is generated add it to the `sv_authtoken` cvar in `server.cfg` or command-line parameters. #### server.cfg -``` +```text set sv_authtoken "mytokenhere"` ``` #### command-line parameters -``` +```text +set sv_authtoken "mytokenhere" ``` @@ -48,17 +48,17 @@ Mods for Call of Duty 4 have to be manually added to the game server. To run a mod the servers `fs_game` variable must be set correctly. Mods reside in the `mods` folder inside `fs_homepath`. Example directory tree: -``` -mods/ - ├── pml220 - │ ├── mod.ff - │ ├── pml220.iwd +```text +mods/ + ├── pml220 + │ ├── mod.ff + │ ├── pml220.iwd │ ├── z_c_r.iwd ``` To start the server with a mod set the `fs_game` variable accordingly. -``` +```bash parms="+set sv_punkbuster 0 +set fs_basepath ${serverfiles} +set dedicated 1 +set net_ip ${ip} +set net_port ${port} +set sv_maxclients ${maxplayers} +exec ${servercfg} +map ${defaultmap} +set fs_game "mods/pml220"" ``` @@ -66,7 +66,7 @@ parms="+set sv_punkbuster 0 +set fs_basepath ${serverfiles} +set dedicated 1 +se Modded CoD4 servers have the ability to run with user-created maps. To run a server with a custom map, it has to first be placed in the `usermaps` directory (if missing simply create it yourself). -``` +```text ├── usermaps │ ├── mp_nuketown │ │ ├── mp_nuketown.ff @@ -80,7 +80,7 @@ Typically, maps are prefixed by mp\_ following the maps name. Running custom maps on unmodded servers is not supported, but there is a neat workaround to still load custom maps. First, create a mods folder and some empty folder inside it. -``` +```text ├── mods │ ├── myemptymod ``` @@ -91,7 +91,7 @@ Now set `fs_game` to `mods/myemptymod` and you will be able to run custom maps. [Fast download](../commands/fastdl.md) is possible with CoD4 to allow custom maps and mods to be hosted on a webserver. -``` +```text set sv_allowDownload "1" // allow clients to download gamefiles set sv_wwwDownload "1" // enable download redirection set sv_wwwBaseURL "http://domain.tld/cod4fastdl/" // defines url to download from @@ -102,7 +102,7 @@ here `sv_wwwBaseURL` has to point to a URL served by your web server. An example directory tree for a served folder may look as below: -``` +```text cod4fastdl/ ├── mods │ ├── pml220 diff --git a/game-servers/counter-strike-2.md b/game-servers/counter-strike-2.md index da1809d6..3047fd4b 100644 --- a/game-servers/counter-strike-2.md +++ b/game-servers/counter-strike-2.md @@ -6,33 +6,33 @@ This page is still a work in progress. If you have updated info please edit this ## **Server Resources** -**Official Server Resources** +### Official Server Resources -* [CS 2 Dedicated server Wiki](https://developer.valvesoftware.com/wiki/Counter-Strike\_2/Dedicated\_Servers) -* [CS 2 Game Modes](https://developer.valvesoftware.com/wiki/CS:GO\_Game\_Modes) +- [CS 2 Dedicated server Wiki](https://developer.valvesoftware.com/wiki/Counter-Strike_2/Dedicated_Servers) +- [CS 2 Game Modes](https://developer.valvesoftware.com/wiki/CS:GO_Game_Modes) ## **Game Modes** -CS2 features various game modes, which can be played on your server. To make setting up your server a bit easier, the following table sums up the configuration required in your server's [LinuxGSM config](../configuration/linuxgsm-config.md) for the various game modes. If you want more detailed and up-to-date information, take a look at Valve's wiki: [CS2 Game Modes](https://developer.valvesoftware.com/wiki/CS:GO\_Game\_Modes). - -| \[Game Modes] | gametype | gamemode | gamemodeflags | skirmishid | mapgroup (you can mix these across all Game Modes except Danger Zone, but use only one) | -| --------------------------------- | -------- | -------- | ------------- | ---------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Arms Race | 1 | 0 | 0 | 0 | mg\_armsrace | -| Boom! Headshot! | 1 | 2 | 0 | 6 | mg\_skirmish\_headshots | -| Classic Casual | 0 | 0 | 0 | 0 | mg\_casualsigma, mg\_casualdelta | -| Classic Competitive (Default) | 0 | 1 | 0 | 0 | mg\_active, mg\_reserves, mg\_hostage, mg\_de\_dust2, ... | -| Classic Competitive (Short Match) | 0 | 1 | 32 | 0 | mg\_active, mg\_reserves, mg\_hostage, mg\_de\_dust2, ... | -| Danger Zone | 6 | 0 | 0 | 0 | mg\_dz\_blacksite (map: dz\_blacksite), mg\_dz\_sirocco (map: dz\_sirocco) | -| Deathmatch (Default) | 1 | 2 | 0 | 0 | mg\_deathmatch | -| Deathmatch (Free For All) | 1 | 2 | 32 | 0 | mg\_deathmatch | -| Deathmatch (Team vs Team) | 1 | 2 | 4 | 0 | mg\_deathmatch | -| Demolition | 1 | 1 | 0 | 0 | mg\_demolition | -| Flying Scoutsman | 0 | 0 | 0 | 3 | mg\_skirmish\_flyingscoutsman | -| Hunter-Gatherers | 1 | 2 | 0 | 7 | mg\_skirmish\_huntergatherers | -| Retakes | 0 | 0 | 0 | 12 | mg\_skirmish\_retakes | -| Stab Stab Zap | 0 | 0 | 0 | 1 | mg\_skirmish\_stabstabzap | -| Trigger Discipline | 0 | 0 | 0 | 4 | mg\_skirmish\_triggerdiscipline | -| Wingman | 0 | 2 | 0 | 0 | mg\_de\_prime, mg\_de\_blagai, mg\_de\_vertigo, mg\_de\_inferno, mg\_de\_overpass, mg\_de\_cbble, mg\_de\_train, mg\_de\_shortnuke, mg\_de\_shortdust, mg\_de\_lake | +CS2 features various game modes, which can be played on your server. To make setting up your server a bit easier, the following table sums up the configuration required in your server's [LinuxGSM config](../configuration/linuxgsm-config.md) for the various game modes. If you want more detailed and up-to-date information, take a look at Valve's wiki: [CS2 Game Modes](https://developer.valvesoftware.com/wiki/CS:GO_Game_Modes). + +| \[Game Modes] | gametype | gamemode | gamemodeflags | skirmishid | mapgroup (you can mix these across all Game Modes except Danger Zone, but use only one) | +| --------------------------------- | -------- | -------- | ------------- | ---------- | ----------------------------------------------------------------------------------------------------------------------------------------------- | +| Arms Race | 1 | 0 | 0 | 0 | mg_armsrace | +| Boom! Headshot! | 1 | 2 | 0 | 6 | mg_skirmish_headshots | +| Classic Casual | 0 | 0 | 0 | 0 | mg_casualsigma, mg_casualdelta | +| Classic Competitive (Default) | 0 | 1 | 0 | 0 | mg_active, mg_reserves, mg_hostage, mg_de_dust2, ... | +| Classic Competitive (Short Match) | 0 | 1 | 32 | 0 | mg_active, mg_reserves, mg_hostage, mg_de_dust2, ... | +| Danger Zone | 6 | 0 | 0 | 0 | mg_dz_blacksite (map: dz_blacksite), mg_dz_sirocco (map: dz_sirocco) | +| Deathmatch (Default) | 1 | 2 | 0 | 0 | mg_deathmatch | +| Deathmatch (Free For All) | 1 | 2 | 32 | 0 | mg_deathmatch | +| Deathmatch (Team vs Team) | 1 | 2 | 4 | 0 | mg_deathmatch | +| Demolition | 1 | 1 | 0 | 0 | mg_demolition | +| Flying Scoutsman | 0 | 0 | 0 | 3 | mg_skirmish_flyingscoutsman | +| Hunter-Gatherers | 1 | 2 | 0 | 7 | mg_skirmish_huntergatherers | +| Retakes | 0 | 0 | 0 | 12 | mg_skirmish_retakes | +| Stab Stab Zap | 0 | 0 | 0 | 1 | mg_skirmish_stabstabzap | +| Trigger Discipline | 0 | 0 | 0 | 4 | mg_skirmish_triggerdiscipline | +| Wingman | 0 | 2 | 0 | 0 | mg_de_prime, mg_de_blagai, mg_de_vertigo, mg_de_inferno, mg_de_overpass, mg_de_cbble, mg_de_train, mg_de_shortnuke, mg_de_shortdust, mg_de_lake | When adjusting the `mapgroup`, don't forget to also set `defaultmap` to a map contained in the same mapgroup. @@ -48,14 +48,12 @@ it is possible to add a single or collection of workshop maps to a Counter-Strik First, gather the map or collection ID. To do this find the workshop map or collection you want to use on the [CS2 steam workshop](https://steamcommunity.com/app/730/workshop/) 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 ``` ### Create a Collection - - ### Auth Key If you are using a collection you will need to get an auth key from [here](https://steamcommunity.com/dev/apikey). diff --git a/game-servers/counter-strike-global-offensive.md b/game-servers/counter-strike-global-offensive.md index d6de3e8c..120c7bc9 100644 --- a/game-servers/counter-strike-global-offensive.md +++ b/game-servers/counter-strike-global-offensive.md @@ -2,35 +2,35 @@ ## **Server Resources** -**Official Server Resources** +### Official Server Resources -* [CS:GO Dedicated server Wiki](https://developer.valvesoftware.com/wiki/Counter-Strike:\_Global\_Offensive\_Dedicated\_Servers) -* [CS:GO Server Workshop setup Wiki](https://developer.valvesoftware.com/wiki/CSGO\_Workshop\_For\_Server\_Operators) -* [CS:GO Server Known Issues Wiki](https://developer.valvesoftware.com/wiki/CSGO\_Game\_Mode\_Commands) -* [CS:GO Game Modes](https://developer.valvesoftware.com/wiki/CS:GO\_Game\_Modes) +- [CS:GO Dedicated server Wiki](https://developer.valvesoftware.com/wiki/Counter-Strike:_Global_Offensive_Dedicated_Servers) +- [CS:GO Server Workshop setup Wiki](https://developer.valvesoftware.com/wiki/CSGO_Workshop_For_Server_Operators) +- [CS:GO Server Known Issues Wiki](https://developer.valvesoftware.com/wiki/CSGO_Game_Mode_Commands) +- [CS:GO Game Modes](https://developer.valvesoftware.com/wiki/CS:GO_Game_Modes) ## **Game Modes** -CS:GO features various game modes, which can be played on your server. To make setting up your server a bit easier, the following table sums up the configuration required in your server's [LinuxGSM config](../configuration/linuxgsm-config.md) for the various game modes. If you want more detailed and up-to-date information, take a look at Valve's wiki: [CS:GO Game Modes](https://developer.valvesoftware.com/wiki/CS:GO\_Game\_Modes). Up-to-date information about mapgroups can be found in the file `serverfiles/csgo/gamemodes.txt`. - -| \[Game Modes] | gametype | gamemode | gamemodeflags | skirmishid | mapgroup (you can mix these across all Game Modes except Danger Zone, but use only one) | -| --------------------------------- | -------- | -------- | ------------- | ---------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Arms Race | 1 | 0 | 0 | 0 | mg\_armsrace | -| Boom! Headshot! | 1 | 2 | 0 | 6 | mg\_skirmish\_headshots | -| Classic Casual | 0 | 0 | 0 | 0 | mg\_casualsigma, mg\_casualdelta | -| Classic Competitive (Default) | 0 | 1 | 0 | 0 | mg\_active, mg\_reserves, mg\_hostage, mg\_de\_dust2, ... | -| Classic Competitive (Short Match) | 0 | 1 | 32 | 0 | mg\_active, mg\_reserves, mg\_hostage, mg\_de\_dust2, ... | -| Danger Zone | 6 | 0 | 0 | 0 | mg\_dz\_blacksite (map: dz\_blacksite), mg\_dz\_sirocco (map: dz\_sirocco) | -| Deathmatch (Default) | 1 | 2 | 0 | 0 | mg\_deathmatch | -| Deathmatch (Free For All) | 1 | 2 | 32 | 0 | mg\_deathmatch | -| Deathmatch (Team vs Team) | 1 | 2 | 4 | 0 | mg\_deathmatch | -| Demolition | 1 | 1 | 0 | 0 | mg\_demolition | -| Flying Scoutsman | 0 | 0 | 0 | 3 | mg\_skirmish\_flyingscoutsman | -| Hunter-Gatherers | 1 | 2 | 0 | 7 | mg\_skirmish\_huntergatherers | -| Retakes | 0 | 0 | 0 | 12 | mg\_skirmish\_retakes | -| Stab Stab Zap | 0 | 0 | 0 | 1 | mg\_skirmish\_stabstabzap | -| Trigger Discipline | 0 | 0 | 0 | 4 | mg\_skirmish\_triggerdiscipline | -| Wingman | 0 | 2 | 0 | 0 | mg\_de\_prime, mg\_de\_blagai, mg\_de\_vertigo, mg\_de\_inferno, mg\_de\_overpass, mg\_de\_cbble, mg\_de\_train, mg\_de\_shortnuke, mg\_de\_shortdust, mg\_de\_lake | +CS:GO features various game modes, which can be played on your server. To make setting up your server a bit easier, the following table sums up the configuration required in your server's [LinuxGSM config](../configuration/linuxgsm-config.md) for the various game modes. If you want more detailed and up-to-date information, take a look at Valve's wiki: [CS:GO Game Modes](https://developer.valvesoftware.com/wiki/CS:GO_Game_Modes). Up-to-date information about mapgroups can be found in the file `serverfiles/csgo/gamemodes.txt`. + +| \[Game Modes] | gametype | gamemode | gamemodeflags | skirmishid | mapgroup (you can mix these across all Game Modes except Danger Zone, but use only one) | +| --------------------------------- | -------- | -------- | ------------- | ---------- | ----------------------------------------------------------------------------------------------------------------------------------------------- | +| Arms Race | 1 | 0 | 0 | 0 | mg_armsrace | +| Boom! Headshot! | 1 | 2 | 0 | 6 | mg_skirmish_headshots | +| Classic Casual | 0 | 0 | 0 | 0 | mg_casualsigma, mg_casualdelta | +| Classic Competitive (Default) | 0 | 1 | 0 | 0 | mg_active, mg_reserves, mg_hostage, mg_de_dust2, ... | +| Classic Competitive (Short Match) | 0 | 1 | 32 | 0 | mg_active, mg_reserves, mg_hostage, mg_de_dust2, ... | +| Danger Zone | 6 | 0 | 0 | 0 | mg_dz_blacksite (map: dz_blacksite), mg_dz_sirocco (map: dz_sirocco) | +| Deathmatch (Default) | 1 | 2 | 0 | 0 | mg_deathmatch | +| Deathmatch (Free For All) | 1 | 2 | 32 | 0 | mg_deathmatch | +| Deathmatch (Team vs Team) | 1 | 2 | 4 | 0 | mg_deathmatch | +| Demolition | 1 | 1 | 0 | 0 | mg_demolition | +| Flying Scoutsman | 0 | 0 | 0 | 3 | mg_skirmish_flyingscoutsman | +| Hunter-Gatherers | 1 | 2 | 0 | 7 | mg_skirmish_huntergatherers | +| Retakes | 0 | 0 | 0 | 12 | mg_skirmish_retakes | +| Stab Stab Zap | 0 | 0 | 0 | 1 | mg_skirmish_stabstabzap | +| Trigger Discipline | 0 | 0 | 0 | 4 | mg_skirmish_triggerdiscipline | +| Wingman | 0 | 2 | 0 | 0 | mg_de_prime, mg_de_blagai, mg_de_vertigo, mg_de_inferno, mg_de_overpass, mg_de_cbble, mg_de_train, mg_de_shortnuke, mg_de_shortdust, mg_de_lake | When adjusting the `mapgroup`, don't forget to also set `defaultmap` to a map contained in the same mapgroup. @@ -50,7 +50,7 @@ Add to the following to the config `lgsm/config-lgsm/csgoserver/csgoserver.cfg` AS well it is needed to add a few options to the game config (default in: `serverfiles/csgo/cfg/csgoserver.cfg` ) -``` +```text sv_mincmdrate 128 sv_minupdaterate 128 ``` @@ -61,7 +61,7 @@ This will as well force the client to use the 128 tickrate For CSGO, edit these lines in your [LinuxGSM config](../configuration/linuxgsm-config.md) -``` +```text wsapikey="YOUR_STEAM_API_KEY" wscollectionid="YOUR_COLLECTION_ID" wsstartmap=" diff --git a/game-servers/counter-strike-global-offensive/README.md b/game-servers/counter-strike-global-offensive/README.md index 6d1cab1e..04430276 100644 Binary files a/game-servers/counter-strike-global-offensive/README.md and b/game-servers/counter-strike-global-offensive/README.md differ diff --git a/game-servers/counter-strike-global-offensive/installing-sourcemod-on-cs-go-server.md b/game-servers/counter-strike-global-offensive/installing-sourcemod-on-cs-go-server.md index afe0ebb1..fb787ff3 100644 --- a/game-servers/counter-strike-global-offensive/installing-sourcemod-on-cs-go-server.md +++ b/game-servers/counter-strike-global-offensive/installing-sourcemod-on-cs-go-server.md @@ -6,13 +6,13 @@ description: Sourcemod Resources and Known Problems Sourcemod is a plugin for source games that can add functionality like voting systems, minigames, and server utilities. Sourcemod requires Metamod to run. -Note: LinuxGSM includes a[ command](../../commands/mods.md) that is able to install Sourcemod automatically. +Note: LinuxGSM includes a [command](../../commands/mods.md) that is able to install Sourcemod automatically. [LinuxGSM Mod Command](../../commands/mods.md) ## Sourcemod Resources -**Sourcemod Official Resources** +### Sourcemod Official Resources [Official Sourcemod Install Guide](https://wiki.alliedmods.net/Installing_SourceMod%20) @@ -20,21 +20,18 @@ Note: LinuxGSM includes a[ command](../../commands/mods.md) that is able to inst [Metamod Download Link](http://www.sourcemm.net/downloads.php?branch=stable%20) +### Sourcemod Plugins +Plugins can be downloaded from Alliedmodders website: -**Sourcemod Plugins** +[Plugins Forum](https://forums.alliedmods.net/forumdisplay.php?f=153) -Plugins can be downloaded from Alliedmodders website: +[High Traffic Plugins Forum](https://forums.alliedmods.net/forumdisplay.php?f=153) -[Plugins Forum ](https://forums.alliedmods.net/forumdisplay.php?f=153) +## CS:GO Sourcemod Tips -[High Traffic Plugins Forum ](https://forums.alliedmods.net/forumdisplay.php?f=153) +If the server keeps changing to dust or mirage instead of the chosen map, disable the nextmap plugin. -## **CS:GO Sourcemod Tips** - -If the server keeps changing to dust or mirage instead of the chosen map, disable the nextmap plugin. - -If players are kicked after joining, make sure Sourcemod does not have any errors and is up to date +If players are kicked after joining, make sure Sourcemod does not have any errors and is up to date Check folder hierarchy in archives before unpacking, each plugin creator organizes their archives differently. - diff --git a/game-servers/counter-strike-global-offensive/sourcemod-csgo-server.md b/game-servers/counter-strike-global-offensive/sourcemod-csgo-server.md index 54b9a7cb..cc92b58e 100644 --- a/game-servers/counter-strike-global-offensive/sourcemod-csgo-server.md +++ b/game-servers/counter-strike-global-offensive/sourcemod-csgo-server.md @@ -6,13 +6,13 @@ description: Sourcemod Resources and Known Problems Sourcemod is a plugin for source games that can add functionality like voting systems, minigames, and server utilities. Sourcemod requires Metamod to run. -Note: LinuxGSM includes a[ command](../../commands/mods.md) that is able to install Sourcemod automatically. +Note: LinuxGSM includes a [command](../../commands/mods.md) that is able to install Sourcemod automatically. [LinuxGSM Mod Command](../../commands/mods.md) ## Sourcemod Resources -**Sourcemod Official Resources** +### Sourcemod Official Resources [Official Sourcemod Install Guide](https://wiki.alliedmods.net/Installing_SourceMod%20) @@ -20,23 +20,20 @@ Note: LinuxGSM includes a[ command](../../commands/mods.md) that is able to inst [Metamod Download Link](http://www.sourcemm.net/downloads.php?branch=stable%20) +### Sourcemod Plugins +Plugins can be downloaded from Alliedmodders website: -**Sourcemod Plugins** +[Plugins Forum](https://forums.alliedmods.net/forumdisplay.php?f=153) -Plugins can be downloaded from Alliedmodders website: +[High Traffic Plugins Forum](https://forums.alliedmods.net/forumdisplay.php?f=153) -[Plugins Forum ](https://forums.alliedmods.net/forumdisplay.php?f=153) +## CS:GO Sourcemod Tips -[High Traffic Plugins Forum ](https://forums.alliedmods.net/forumdisplay.php?f=153) +If the server changes to dust or mirage instead of the chosen map, disable the nextmap plugin. -## **CS:GO Sourcemod Tips** - -If the server changes to dust or mirage instead of the chosen map, disable the nextmap plugin. - -If players are kicked after joining, make sure Sourcemod does not have any errors and is up to date +If players are kicked after joining, make sure Sourcemod does not have any errors and is up to date Check folder hierarchy in archives before unpacking, each plugin creator organizes their archives differently. -The server may need to be set to sv\_pure 0 in some cases. - +The server may need to be set to sv_pure 0 in some cases. diff --git a/game-servers/dont-starve-together.md b/game-servers/dont-starve-together.md index 5015543f..219be875 100644 --- a/game-servers/dont-starve-together.md +++ b/game-servers/dont-starve-together.md @@ -58,12 +58,12 @@ _**dstserver-1**_ will be the _master shard_ with an overworld as level. ## Predefined Parameters sharding="true" master="true" -shard="Master" +shard="Master" cluster="Cluster_1" cave="false" ``` -~/.klei/DoNotStarveTogether/Cluster\_1/Master/server.ini +~/.klei/DoNotStarveTogether/Cluster_1/Master/server.ini ```text [NETWORK] @@ -82,12 +82,12 @@ dstserver-2 \(this will be the slave shard with a cave as level\): ## Predefined Parameters sharding="true" master="false" -shard="Caves" +shard="Caves" cluster="Cluster_1" cave="true" ``` -~/.klei/DoNotStarveTogether/Cluster\_1/Caves/server.ini +~/.klei/DoNotStarveTogether/Cluster_1/Caves/server.ini ```text [NETWORK] @@ -100,7 +100,7 @@ master_server_port = 27019 If you want to Caves and Overworld to display on the same server, you also to change the cluster.ini, otherwise it will run two instances, one with the Overworld and another with the Caves: -~/.klei/DoNotStarveTogether/Cluster\_1/cluster.ini +~/.klei/DoNotStarveTogether/Cluster_1/cluster.ini ```lua [SHARD] @@ -113,10 +113,9 @@ For clarity it is recommended recommend naming the master shard _**Master**_. Lastly you have to start both servers. The order does not matter because the slave server will auto-retry connecting to the master server which is listening. -## Guides / Documentations: - -* [Quick Setup](http://forums.kleientertainment.com/topic/64441-dedicated-server-quick-setup-guide-linux/) -* [Server Settings](http://forums.kleientertainment.com/topic/64552-dedicated-server-settings-guide/) -* [Command Line Options](http://forums.kleientertainment.com/topic/64743-dedicated-server-command-line-options-guide/) -* [Understanding Shards and Migration Portals](http://forums.kleientertainment.com/topic/59174-understanding-shards-and-migration-portals/) +## Guides / Documentations +- [Quick Setup](http://forums.kleientertainment.com/topic/64441-dedicated-server-quick-setup-guide-linux/) +- [Server Settings](http://forums.kleientertainment.com/topic/64552-dedicated-server-settings-guide/) +- [Command Line Options](http://forums.kleientertainment.com/topic/64743-dedicated-server-command-line-options-guide/) +- [Understanding Shards and Migration Portals](http://forums.kleientertainment.com/topic/59174-understanding-shards-and-migration-portals/) diff --git a/game-servers/factorio.md b/game-servers/factorio.md index 033c6254..e5d4edc6 100644 --- a/game-servers/factorio.md +++ b/game-servers/factorio.md @@ -1,18 +1,18 @@ # Factorio -![](../.gitbook/assets/factoriobanner.jpg) +![Factorio Logo](../.gitbook/assets/factoriobanner.jpg) ## Server Resources -* [World generation](https://wiki.factorio.com/World_generator) -* [Factorio server Wiki](https://wiki.factorio.com/Multiplayer) -* [Factorio console commands](https://wiki.factorio.com/Console#Command_line_parameters) +- [World generation](https://wiki.factorio.com/World_generator) +- [Factorio server Wiki](https://wiki.factorio.com/Multiplayer) +- [Factorio console commands](https://wiki.factorio.com/Console#Command_line_parameters) ## Server Configuration Configuration for Factorio is split between both the [game server config](../configuration/game-server-config.md) and [start parameters](../configuration/start-parameters.md). -### LinuxGSM Server Config +### LinuxGSM Server Config port, rcon and branch configuration is set using stat parameters @@ -147,7 +147,7 @@ The easiest way that I've found to generate a world with the RSO mod \(and add m 1. Startup Factorio on a client and install the RSO mod 2. Start generation of a new world and configure mod generation settings 3. Grab the mod files and `mod-settings.dat` -4. Transfer them to the server +4. Transfer them to the server 5. Delete or rename any previous worlds To configure the generation, go to `Play` > `New World` > `Mod Settings` > `Map`, then adjust options accordingly. Doing so will generate a file called `mod-settings.dat` which stores these settings. @@ -183,6 +183,3 @@ rm -rf saves/* # this folder will only exist if you have ran the server ``` Once you've done that, you're good to start the server. - - - diff --git a/game-servers/garrys-mod/README.md b/game-servers/garrys-mod/README.md index 5eafad5a..99553bc1 100644 --- a/game-servers/garrys-mod/README.md +++ b/game-servers/garrys-mod/README.md @@ -10,19 +10,19 @@ Autorefresh can lag the server when certain Lua files are edited. This happens w To disable autorefresh, add `-disableluarefresh` to parms. -``` +```text -disableluarefresh ``` ## Loading Screen -Loading screens are added by defining a website with `sv_loadingurl`, which is in `gmodserver.cfg` by default. This file overrides other files. +Loading screens are added by defining a website with `sv_loadingurl`, which is in `gmodserver.cfg` by default. This file overrides other files. {% hint style="warning" %} Links should not have `http://` or an ending`/` . {% endhint %} -``` +```text sv_loadingurl "www.website.com/loading/screen" ``` @@ -30,7 +30,7 @@ sv_loadingurl "www.website.com/loading/screen" Gamemode is changed by editing start parameters in the LinuxGSM config file. -``` +```text TTT gamemode="terrortown" Sandbox gamemode="sandbox" ``` @@ -49,7 +49,7 @@ Garry's Mod does not require an API/Auth Key anymore. For Garry's Mod, add the collection ID in [LinuxGSM config](../../configuration/linuxgsm-config.md) using `wscollectionid` setting. This will download the collection when the server starts. -``` +```text wscollectionid="157384458" ``` @@ -73,25 +73,25 @@ First install a Counter-Strike: Source server, if you already have a server inst Copy the `cstrike` the directory from the Counter-Strike: Source to the Gmod folder. -``` +```bash cp -R /home/cssserver/serverfiles/cstrike /home/gmodserver/serverfiles/cstrike ``` -Ensure that the copied files are owned by the `gmodserver` user. +Ensure that the copied files are owned by the `gmodserver` user. -``` +```bash chown -R gmodserver /home/gmodserver ``` Open mount.cfg file. -``` +```bash nano /home/gmodserver/serverfiles/garrysmod/cfg/mount.cfg ``` Add game to mount.cfg -``` +```text "mountcfg" { "cstrike" "/home/gmoduser/serverfiles/cstrike" @@ -100,7 +100,6 @@ Add game to mount.cfg Restart the server. Check if the mount was successful by changing the level to a mounted map with console or rcon. -``` +```text changelevel cs_italy ``` - diff --git a/game-servers/insurgency-sandstorm.md b/game-servers/insurgency-sandstorm.md index abc64c94..a08403e6 100644 --- a/game-servers/insurgency-sandstorm.md +++ b/game-servers/insurgency-sandstorm.md @@ -14,11 +14,11 @@ To get started you will need a mod.io account, once you have signed in, click yo Under `OAuth 2 Management > Generate Access Token`, enter a name to give your token and give it read access and click `Create Token`. -![](../.gitbook/assets/2568525685image2020-3-17\_.png) +![Screenshot](../.gitbook/assets/2568525685image2020-3-17_.png) Once the token is generated you will need to copy it to your game servers `Engine.ini`. Paste the following into `Engine.ini` and replace `TOKEN HERE` with your access token. -``` +```text [/Script/ModKit.ModIOClient] bHasUserAcceptedTerms=True AccessToken=TOKEN HERE @@ -32,7 +32,7 @@ Next you will need to specify which mods you want to add to your game server.&#x Create the `Mods.txt` file located `Insurgency/Config/Server/Mods.txt` -``` +```bash mkdir -p Insurgency/Config/Server touch Insurgency/Config/Server/Mods.txt ``` @@ -49,19 +49,19 @@ To use this custom map you will need to add it to your mapcycle and if required, Create `MapCyle.txt`and add the custom map to your mapcycle. -``` +```bash touch Insurgency/Config/Server/MapCyle.txt - -``` ``` + +```text (Scenario="Scenario_TORO_Checkpoint_Security",Lighting="Day",Mode="Checkpoint") (Scenario="Scenario_TORO_Checkpoint_Insurgents",Lighting="Day",Mode="Checkpoint") ``` If you want the custom map to be the default edit your [start parameters](../configuration/start-parameters.md) -``` +```text defaultmap="TORO" defaultscenario="Scenario_TORO_Checkpoint_Security" ``` diff --git a/game-servers/killing-floor-2.md b/game-servers/killing-floor-2.md index 6338f3d4..f2acde4e 100644 --- a/game-servers/killing-floor-2.md +++ b/game-servers/killing-floor-2.md @@ -1,17 +1,17 @@ # Killing Floor 2 -![](../.gitbook/assets/kf2banner.jpg) +![Killing Floor 2 Logo](../.gitbook/assets/kf2banner.jpg) ## Ports -* **Game Port** Default: 7777 UDP Handled by: `LinuxServer-KFEngine.ini` -* **Query Port** Default: 27015 UDP Handled automatically or handled by parameters. The formula for finding query port assigned automatically is 19238 + assigned game port. -* **Web Admin** Default: 8080 TCP Handled by: `KFWeb.ini` -* **Steam Port** Default: 20560 UDP Handled automatically. The formula for finding the steam port is 12783 + Game Port. +- **Game Port** Default: 7777 UDP Handled by: `LinuxServer-KFEngine.ini` +- **Query Port** Default: 27015 UDP Handled automatically or handled by parameters. The formula for finding query port assigned automatically is 19238 + assigned game port. +- **Web Admin** Default: 8080 TCP Handled by: `KFWeb.ini` +- **Steam Port** Default: 20560 UDP Handled automatically. The formula for finding the steam port is 12783 + Game Port. ## Resources -[Killing Floor 2 Official Server Wiki](https://wiki.tripwireinteractive.com/index.php?title=Dedicated\_Server\_%28Killing\_Floor\_2%29) +[Killing Floor 2 Official Server Wiki](https://wiki.tripwireinteractive.com/index.php?title=Dedicated_Server_%28Killing_Floor_2%29) [Killing floor 2 Official Forums](https://forums.tripwireinteractive.com/index.php?categories/killing-floor-2.25/) @@ -50,9 +50,4 @@ This will only work for Workshop items that the server downloads itself, that ar 3. Add the line "DownloadManagers=OnlineSubsystemSteamworks.SteamWorkshopDownload" to that section. If there are other "DownloadManagers=" lines, make sure this one is the first. 4. Do not delete anything from this section, except (optionally) other DownloadManagers= lines. -[Official Guide Here](https://wiki.killingfloor2.com/index.php?title=Dedicated\_Server\_\(Killing\_Floor\_2\)#Setting\_Up\_Steam\_Workshop\_For\_Servers) - - - - - +[Official Guide Here]() diff --git a/game-servers/memories-of-mars.md b/game-servers/memories-of-mars.md index 218de594..cd4667a6 100644 --- a/game-servers/memories-of-mars.md +++ b/game-servers/memories-of-mars.md @@ -1,30 +1,32 @@ -#Memories Of Mars +# Memories Of Mars -![](../.gitbook/assets/memories_of_mars.png) +![Memories Of Mars Logo](../.gitbook/assets/memories_of_mars.png) + +## Resources -# Resources [Memories of Mars Wiki](https://memoriesofmars.gamepedia.com/Memories_of_Mars_Wiki) [Memories of Mars Dedicated Server Wiki](https://memoriesofmars.gamepedia.com/Dedicated_Servers) - ## Ports -* **Game Port** Default:7777 -* **Beacon Port** Default:15000 - +- **Game Port** Default:7777 +- **Beacon Port** Default:15000 ## Required server config items -* ServerName >> This is the server name that you will find the server under in thein-game Server Browser or in the Steam Server Browser. -* ServerID >> By changing this, you can switch between different versions of the database (see section on database management). + +- ServerName >> This is the server name that you will find the server under in thein-game Server Browser or in the Steam Server Browser. +- ServerID >> By changing this, you can switch between different versions of the database (see section on database management). ## Command line arguments -* Port >> The port on which players connect. Make sure that this port is open in order for players to connect. Defaults to 7777. -* BeaconPort >> The port used for beacons for initial connection. Make sure that this port is open in order for players to connect over the internet. Defaults to 15000. -* MULTIHOME >> Overrides the IP address the server is running on. The server will use one of the available IP addresses but will not ascertain that this is a publicly reachable IP address. Used in Multi-IP environments. -* MaxPlayers >> Maximal number of players for the server. Default is 2. + +- Port >> The port on which players connect. Make sure that this port is open in order for players to connect. Defaults to 7777. +- BeaconPort >> The port used for beacons for initial connection. Make sure that this port is open in order for players to connect over the internet. Defaults to 15000. +- MULTIHOME >> Overrides the IP address the server is running on. The server will use one of the available IP addresses but will not ascertain that this is a publicly reachable IP address. Used in Multi-IP environments. +- MaxPlayers >> Maximal number of players for the server. Default is 2. # Database management + The files for the database will be stored in the following folder: Game/Saved/DB/{ServerID}/{SeasonID}. You can create an easy backup of your files by copying everthing inside this folder and paste it elsewhere. @@ -36,7 +38,9 @@ If you are still willing to try to save your old data somehow you can try to man NOTE: There will be no support by us for manually moving old databases to your newer server in case of database-breaking changes between seasons. # Admin tools + Admins on a Dedicated Server are able to open an AdminTools window with F8. The key to show the window can be changed in the Input Settings (in case F8 doesn't work make sure it's bound there). From here you have the option to execute a selection of cheats to author your server. # Known Issues + There will be two error messages on server start from Steam (Process Entry Point not found). Those can be clicked away without any issues and the server will run fine. Those error messages will be fixed in an upcoming version of the server. diff --git a/game-servers/minecraft.md b/game-servers/minecraft.md index 378cf28c..3d4d197d 100644 --- a/game-servers/minecraft.md +++ b/game-servers/minecraft.md @@ -10,6 +10,5 @@ Minecraft java edition splits up its release in two ways. Firstly a branch is ei With LinuxGSM you can specify a specific release/snapshot or the latest release/snapshot. By default, LinuxGSM will use the latest release. -* [List of Minecraft Java releases ](https://minecraft.gamepedia.com/Java_Edition_version_history) -* [List of Minecraft Java snapshots](https://minecraft.gamepedia.com/Java_Edition_version_history/Development_versions) - +- [List of Minecraft Java releases](https://minecraft.gamepedia.com/Java_Edition_version_history) +- [List of Minecraft Java snapshots](https://minecraft.gamepedia.com/Java_Edition_version_history/Development_versions) diff --git a/game-servers/multi-theft-auto.md b/game-servers/multi-theft-auto.md index dcfecb14..4c030167 100644 --- a/game-servers/multi-theft-auto.md +++ b/game-servers/multi-theft-auto.md @@ -1,6 +1,6 @@ # Multi Theft Auto -![](../.gitbook/assets/mtabanner.jpg) +![Multi Theft Auto Logo](../.gitbook/assets/mtabanner.jpg) ## Server Information @@ -13,4 +13,3 @@ Resources are a key part of Multi Theft Auto. A resource is essentially a direct A resource can be seen as being partly equivalent to a program running in an operating system - it can be started and stopped, and multiple resources can run at once. Its worth remember though, that unlike programs on an operating system, there is no multi-tasking between resources. Resources generally contain content and Lua scripts for game modes, user interfaces and other tasks affecting the players that are connected to the dedicated server on which the resources are running. For a collection of user created resources, head over to our [Community](https://community.mtasa.com) web page which serves as a place for hosting our community's resources. - diff --git a/game-servers/rust.md b/game-servers/rust.md index f6cddc3f..a273fcee 100644 --- a/game-servers/rust.md +++ b/game-servers/rust.md @@ -1,18 +1,18 @@ # Rust -![](../.gitbook/assets/rustbanner.jpg) +![Rust Logo](../.gitbook/assets/rustbanner.jpg) ## System requirements -* Minimum RAM: 9GB, Increases depending upon map size -* CPU: Dual-core 3.4GHz -* Bandwidth: 10mbps upload +- Minimum RAM: 9GB, Increases depending upon map size +- CPU: Dual-core 3.4GHz +- Bandwidth: 10mbps upload ## Useful Links ### General Information -[https://developer.valvesoftware.com/wiki/Rust\_Dedicated\_Server](https://developer.valvesoftware.com/wiki/Rust\_Dedicated\_Server) +[https://developer.valvesoftware.com/wiki/Rust_Dedicated_Server](https://developer.valvesoftware.com/wiki/Rust_Dedicated_Server) ### RustAdmin @@ -59,7 +59,7 @@ Using [cron](../configuration/cronjobs.md) it is possible to automate your serve If the Rust server is using the _Procedural Map_ and a seed is not set in the config when the wipe commands will set a new random seed. -``` +```text seed="" ``` @@ -87,19 +87,19 @@ If you need to edit any addon configs, they will be located in `serverfiles/oxid To update an addon without restarting the server, you'll need to reload the addon with an RCON command. -``` +```text oxide.reload PluginName ``` ## RCON -### Send RCON commands: +### Send RCON commands RCON is the protocol used to send commands to your server. You will need a tool to use it. Here are 3 of them: -* Rusty: [http://oxidemod.org/resources/rusty-server-rcon-administration-tool.53/](http://oxidemod.org/resources/rusty-server-rcon-administration-tool.53/) -* Rustadmin: [https://www.rustadmin.com/](https://www.rustadmin.com/) (supports both rconweb=1 and rconweb=0) -* Facepunch web tool: [http://facepunch.github.io/webrcon/#/home](http://facepunch.github.io/webrcon/#/home) +- Rusty: [http://oxidemod.org/resources/rusty-server-rcon-administration-tool.53/](http://oxidemod.org/resources/rusty-server-rcon-administration-tool.53/) +- Rustadmin: [https://www.rustadmin.com/](https://www.rustadmin.com/) (supports both rconweb=1 and rconweb=0) +- Facepunch web tool: [http://facepunch.github.io/webrcon/#/home](http://facepunch.github.io/webrcon/#/home) To use software like Rusty, you need to alter LinuxGSM config and change `rconweb="0"`. To use Facepunch tool, Rustadmin desktop or Rustadmin Online, you can leave it at default `rconweb="1"` @@ -107,7 +107,7 @@ To use software like Rusty, you need to alter LinuxGSM config and change `rconwe ### Essential RCON Commands -``` +```text save ; will save the server state (useful before a stop or restart) oxide.reload PluginName ; will reload a plugin after updating it ownerid STEAMID64 "Nickname" "Reason" ; to add an owner @@ -119,10 +119,10 @@ server.writecfg ; will save config changes, including new admins ## Rust Settings -Below is a complete list of all Rust server settings. +Below is an incomplete list of Rust server settings. {% hint style="info" %} -A complete list can be gathered by typing `find .` into Rust Rcon +A complete list can be gathered by typing `find .` into Rust Rcon or the ingame console {% endhint %} {% hint style="info" %} @@ -131,7 +131,7 @@ Last updated: 19/11/23 ### Variables -``` +```text aibrainsenses.humanknownplayerslosupdateinterval (0.2) aibrainsenses.knownplayerslosupdateinterval (0.5) aibrainsenses.updateinterval (0.5) @@ -852,25 +852,25 @@ zombie.population Population active on the server, per square km (0) ### Commands ``` -baseboat.seconds_between_shore_drift( ) -baseboat.seconds_until_shore_drift( ) -boombox.clearradiobyuser( ) -bradleyapc.spawnroadbradley( ) -cassette.clearcassettes( ) -cassette.clearcassettesbyuser( ) -commands.echo( ) -commands.find( ) -camerarenderermanager.pool_stats( ) -global.adminui_deleteugccontent( ) -global.adminui_fullrefresh( ) -global.adminui_requestfireworkpattern( ) -global.adminui_requestplayerlist( ) -global.adminui_requestserverconvars( ) -global.adminui_requestserverinfo( ) -global.adminui_requestugccontent( ) -global.adminui_requestugclist( ) +baseboat.seconds_between_shore_drift( ) +baseboat.seconds_until_shore_drift( ) +boombox.clearradiobyuser( ) +bradleyapc.spawnroadbradley( ) +cassette.clearcassettes( ) +cassette.clearcassettesbyuser( ) +commands.echo( ) +commands.find( ) +camerarenderermanager.pool_stats( ) +global.adminui_deleteugccontent( ) +global.adminui_fullrefresh( ) +global.adminui_requestfireworkpattern( ) +global.adminui_requestplayerlist( ) +global.adminui_requestserverconvars( ) +global.adminui_requestserverinfo( ) +global.adminui_requestugccontent( ) +global.adminui_requestugclist( ) global.authcount( ) Returns all entities that the provided player is authed to (TC's, locks, etc), supports --json -global.authradius( ) +global.authradius( ) global.ban( ) ban [optional duration] global.banid( ) banid [optional duration] global.banlist( ) List of banned users (sourceds compat) @@ -878,261 +878,261 @@ global.banlistex( ) List of banned users - shows reasons and usernames global.bans( ) List of banned users global.buildinfo( ) Get information about this build global.carstats( ) Get information about all the cars in the world -global.clearugcentitiesinrange( ) -global.clearugcentity( ) -global.clientperf( ) -global.clientperf_frametime( ) -global.deauthradius( ) +global.clearugcentitiesinrange( ) +global.clearugcentity( ) +global.clientperf( ) +global.clientperf_frametime( ) +global.deauthradius( ) global.entcount( ) Returns all entities that the provided player has placed, supports --json -global.entid( ) -global.getugcinfo( ) -global.injureplayer( ) -global.kick( ) -global.kickall( ) -global.killplayer( ) +global.entid( ) +global.getugcinfo( ) +global.injureplayer( ) +global.kick( ) +global.kickall( ) +global.killplayer( ) global.listid( ) List of banned users, by ID (sourceds compat) -global.moderatorid( ) -global.mute( ) +global.moderatorid( ) +global.mute( ) global.mutelist( ) Print a list of currently muted players -global.ownerid( ) +global.ownerid( ) global.playerlist( ) Get a list of players global.players( ) Print out currently connected clients etc -global.recoverplayer( ) -global.removemoderator( ) -global.removeowner( ) +global.recoverplayer( ) +global.removemoderator( ) +global.removeowner( ) global.removeskipqueue( ) Removes skip queue permission from a SteamID global.say( ) Sends a message in chat global.serverinfo( ) Get a list of information about the server global.skin_radius( ) skin_radius 'skin' 'radius' -global.skipqueue( ) +global.skipqueue( ) global.skipqueueid( ) Adds skip queue permissions to a SteamID global.sleepingusers( ) Show user info for players on server. global.sleepingusersinrange( ) Show user info for sleeping players on server in range of the player. global.stats( ) Print out stats of currently connected clients global.status( ) Print out currently connected clients -global.teaminfo( ) -global.unban( ) -global.unmute( ) +global.teaminfo( ) +global.unban( ) +global.unmute( ) global.upgrade_radius( ) upgrade_radius 'grade' 'radius' global.users( ) Show user info for players on server. global.usersinrange( ) Show user info for players on server in range of the player. global.usersinrangeofplayer( ) Show user info for players on server in range of the supplied player (eg. Jim 50) ai.addignoreplayer( ) Add a player (or command user if no player is specified) to the AIs ignore list. -ai.brainstats( ) +ai.brainstats( ) ai.clearignoredplayers( ) Remove all players from the AIs ignore list. -ai.killanimals( ) -ai.killscientists( ) +ai.killanimals( ) +ai.killscientists( ) ai.printignoredplayers( ) Print a lost of all the players in the AI ignore list. ai.removeignoreplayer( ) Remove a player (or command user if no player is specified) from the AIs ignore list. -ai.selectnpclookatserver( ) -ai.sleepwakestats( ) -ai.wakesleepingai( ) -app.appban( ) -app.appunban( ) -app.connections( ) -app.info( ) -app.pair( ) -app.regeneratetoken( ) -app.resetlimiter( ) +ai.selectnpclookatserver( ) +ai.sleepwakestats( ) +ai.wakesleepingai( ) +app.appban( ) +app.appunban( ) +app.connections( ) +app.info( ) +app.pair( ) +app.regeneratetoken( ) +app.resetlimiter( ) app.retry_initialize( ) Retry initializing the Rust+ companion server if it previously failed -bradley.quickrespawn( ) -chat.cardgamesay( ) -chat.clansay( ) -chat.localsay( ) -chat.say( ) -chat.search( ) -chat.tail( ) -chat.teamsay( ) +bradley.quickrespawn( ) +chat.cardgamesay( ) +chat.clansay( ) +chat.localsay( ) +chat.say( ) +chat.search( ) +chat.tail( ) +chat.teamsay( ) clan.info( ) Prints info about a clan given its ID -console.search( ) -console.tail( ) -craft.add( ) -craft.cancel( ) -craft.canceltask( ) -craft.fasttracktask( ) -data.export( ) +console.search( ) +console.tail( ) +craft.add( ) +craft.cancel( ) +craft.canceltask( ) +craft.fasttracktask( ) +data.export( ) debug.bench_io( ) Spawn lots of IO entities to lag the server debug.breakheld( ) Break the current held object debug.breakitem( ) Break all the items in your inventory whose name match the passed string -debug.deleteentitiesbyshortname( ) -debug.drink( ) -debug.eat( ) -debug.enable_player_movement( ) +debug.deleteentitiesbyshortname( ) +debug.drink( ) +debug.eat( ) +debug.enable_player_movement( ) debug.flushgroup( ) Takes you in and out of your current network group, causing you to delete and then download all entities in your PVS again -debug.heal( ) -debug.hurt( ) +debug.heal( ) +debug.hurt( ) debug.puzzlereset( ) reset all puzzles -debug.refillvitals( ) -debug.renderinfo( ) +debug.refillvitals( ) +debug.renderinfo( ) debug.repair_inventory( ) Repair all items in inventory -debug.resetsleepingbagtimers( ) -debug.setdamage( ) -debug.setfood( ) -debug.sethealth( ) -debug.setradiation( ) -debug.setwater( ) -debug.spawnparachutetester( ) -debug.stall( ) -demo.record( ) -demo.stop( ) -entity.debug_toggle( ) +debug.resetsleepingbagtimers( ) +debug.setdamage( ) +debug.setfood( ) +debug.sethealth( ) +debug.setradiation( ) +debug.setwater( ) +debug.spawnparachutetester( ) +debug.stall( ) +demo.record( ) +demo.stop( ) +entity.debug_toggle( ) entity.deleteby( ) Destroy all entities created by provided users (separate users by space) entity.deletebytextblock( ) Destroy all entities created by users in the provided text block (can use with copied results from ent auth) -entity.find_entity( ) -entity.find_group( ) -entity.find_id( ) -entity.find_parent( ) -entity.find_radius( ) -entity.find_self( ) -entity.find_status( ) -entity.nudge( ) -entity.spawnlootfrom( ) -entity.spawn( ) -entity.spawngrid( ) -entity.spawnitem( ) -env.addtime( ) -gamemode.set( ) -gamemode.setteam( ) -gc.alloc( ) -gc.collect( ) -gc.unload( ) -global.breakclothing( ) -global.breakitem( ) -global.clearallsprays( ) -global.clearallspraysbyplayer( ) -global.cleardroppeditems( ) -global.clearspraysatpositioninradius( ) -global.clearspraysinradius( ) -global.colliders( ) -global.error( ) -global.free( ) -global.injure( ) -global.kill( ) -global.objects( ) -global.queue( ) -global.quit( ) -global.recover( ) -global.report( ) -global.respawn( ) -global.respawn_sleepingbag( ) -global.respawn_sleepingbag_remove( ) -global.restart( ) -global.setinfo( ) -global.sleep( ) -global.spectate( ) -global.spectateid( ) -global.status_sv( ) -global.subscriptions( ) -global.sysinfo( ) -global.sysuid( ) -global.teleport( ) -global.teleport2autheditem( ) -global.teleport2death( ) -global.teleport2marker( ) -global.teleport2me( ) -global.teleport2owneditem( ) -global.teleportany( ) -global.teleporteveryone2me( ) -global.teleportlos( ) -global.teleportpos( ) -global.textures( ) -global.version( ) -harmony.load( ) -harmony.unload( ) -hierarchy.cd( ) -hierarchy.del( ) -hierarchy.ls( ) +entity.find_entity( ) +entity.find_group( ) +entity.find_id( ) +entity.find_parent( ) +entity.find_radius( ) +entity.find_self( ) +entity.find_status( ) +entity.nudge( ) +entity.spawnlootfrom( ) +entity.spawn( ) +entity.spawngrid( ) +entity.spawnitem( ) +env.addtime( ) +gamemode.set( ) +gamemode.setteam( ) +gc.alloc( ) +gc.collect( ) +gc.unload( ) +global.breakclothing( ) +global.breakitem( ) +global.clearallsprays( ) +global.clearallspraysbyplayer( ) +global.cleardroppeditems( ) +global.clearspraysatpositioninradius( ) +global.clearspraysinradius( ) +global.colliders( ) +global.error( ) +global.free( ) +global.injure( ) +global.kill( ) +global.objects( ) +global.queue( ) +global.quit( ) +global.recover( ) +global.report( ) +global.respawn( ) +global.respawn_sleepingbag( ) +global.respawn_sleepingbag_remove( ) +global.restart( ) +global.setinfo( ) +global.sleep( ) +global.spectate( ) +global.spectateid( ) +global.status_sv( ) +global.subscriptions( ) +global.sysinfo( ) +global.sysuid( ) +global.teleport( ) +global.teleport2autheditem( ) +global.teleport2death( ) +global.teleport2marker( ) +global.teleport2me( ) +global.teleport2owneditem( ) +global.teleportany( ) +global.teleporteveryone2me( ) +global.teleportlos( ) +global.teleportpos( ) +global.textures( ) +global.version( ) +harmony.load( ) +harmony.unload( ) +hierarchy.cd( ) +hierarchy.del( ) +hierarchy.ls( ) inventory.clearinventory( ) Clears the inventory of a target player. eg. inventory.clearInventory jim inventory.copyto( ) Copies the players inventory to the player in front of them -inventory.defs( ) +inventory.defs( ) inventory.deployloadout( ) Deploys the given loadout to a target player. eg. inventory.deployLoadout testloadout jim inventory.deployloadoutinrange( ) Deploys a loadout to players in a radius eg. inventory.deployLoadoutInRange testloadout 30 -inventory.endloot( ) -inventory.equipslot( ) -inventory.equipslottarget( ) -inventory.give( ) -inventory.giveall( ) -inventory.givearm( ) -inventory.givebp( ) -inventory.giveid( ) -inventory.giveto( ) -inventory.lighttoggle( ) +inventory.endloot( ) +inventory.equipslot( ) +inventory.equipslottarget( ) +inventory.give( ) +inventory.giveall( ) +inventory.givearm( ) +inventory.givebp( ) +inventory.giveid( ) +inventory.giveto( ) +inventory.lighttoggle( ) inventory.listloadouts( ) Prints all saved inventory loadouts -inventory.reloaddefs( ) -inventory.resetbp( ) +inventory.reloaddefs( ) +inventory.resetbp( ) inventory.saveloadout( ) Saves the current equipped loadout of the calling player. eg. inventory.saveLoadout loaduoutname -inventory.unlockall( ) -manifest.printmanifest( ) -manifest.printmanifestraw( ) -memsnap.full( ) -memsnap.managed( ) -memsnap.native( ) -nexus.broadcast_ping( ) -nexus.ping( ) -nexus.playeronline( ) -nexus.refreshislands( ) -nexus.transfer( ) +inventory.unlockall( ) +manifest.printmanifest( ) +manifest.printmanifestraw( ) +memsnap.full( ) +memsnap.managed( ) +memsnap.native( ) +nexus.broadcast_ping( ) +nexus.ping( ) +nexus.playeronline( ) +nexus.refreshislands( ) +nexus.transfer( ) nexus.uploadmap( ) Reupload the map image to the nexus. Normally happens automatically at server boot. WARNING: This will lag the server! -heli.call( ) -heli.calltome( ) -heli.drop( ) -heli.strafe( ) -heli.testpuzzle( ) -player.abandonmission( ) -player.cinematic_gesture( ) -player.cinematic_play( ) -player.cinematic_stop( ) -player.copyrotation( ) -player.createskull( ) -player.createtrophy( ) -player.dismount( ) -player.fillwater( ) -player.gesture_radius( ) -player.gotosleep( ) -player.markhostile( ) -player.mount( ) -player.printpresence( ) -player.printstats( ) -player.reloadweapons( ) +heli.call( ) +heli.calltome( ) +heli.drop( ) +heli.strafe( ) +heli.testpuzzle( ) +player.abandonmission( ) +player.cinematic_gesture( ) +player.cinematic_play( ) +player.cinematic_stop( ) +player.copyrotation( ) +player.createskull( ) +player.createtrophy( ) +player.dismount( ) +player.fillwater( ) +player.gesture_radius( ) +player.gotosleep( ) +player.markhostile( ) +player.mount( ) +player.printpresence( ) +player.printstats( ) +player.reloadweapons( ) player.resetstate( ) Resets the PlayerState of the given player -player.stopgesture_radius( ) -player.swapseat( ) -player.wakeup( ) -player.wakeupall( ) -pool.clear_assets( ) -pool.clear_memory( ) -pool.clear_prefabs( ) -pool.export_prefabs( ) -pool.fill_prefabs( ) -pool.print_arraypool( ) -pool.print_assets( ) -pool.print_memory( ) -pool.print_prefabs( ) -profile.flush_analytics( ) -profile.start( ) -profile.stop( ) +player.stopgesture_radius( ) +player.swapseat( ) +player.wakeup( ) +player.wakeupall( ) +pool.clear_assets( ) +pool.clear_memory( ) +pool.clear_prefabs( ) +pool.export_prefabs( ) +pool.fill_prefabs( ) +pool.print_arraypool( ) +pool.print_assets( ) +pool.print_memory( ) +pool.print_prefabs( ) +profile.flush_analytics( ) +profile.start( ) +profile.stop( ) render.print_global_entities( ) Print off count of global building entities on the server -render.tree_entities( ) +render.tree_entities( ) server.backup( ) Backup server folder -server.broadcastplayvideo( ) -server.cheatreport( ) +server.broadcastplayvideo( ) +server.cheatreport( ) server.combatlog( ) Get the player combat log server.combatlog_outgoing( ) Get the player combat log, only showing outgoing damage -server.fps( ) +server.fps( ) server.listtoolcupboards( ) Prints all the Tool Cupboards on the server server.listvendingmachines( ) Prints all the vending machines on the server -server.netprotocol( ) -server.packetlog( ) +server.netprotocol( ) +server.packetlog( ) server.playerlistpos( ) Prints the position of all players on the server -server.printdecryptqueue( ) +server.printdecryptqueue( ) server.printeyes( ) Print the current player eyes. server.printpos( ) Print the current player position. -server.printreadqueue( ) +server.printreadqueue( ) server.printrot( ) Print the current player rotation. -server.printwritequeue( ) -server.readcfg( ) +server.printwritequeue( ) +server.readcfg( ) server.resetserveremoji( ) Rescans the serveremoji folder, note that clients will need to reconnect to get the latest emoji -server.rpclog( ) +server.rpclog( ) server.save( ) Force save the current game server.sendnetworkupdate( ) Send network update for all players server.setshowholstereditems( ) Show holstered items on player bodies @@ -1140,64 +1140,64 @@ server.snapshot( ) This sends a snapshot of all the entities in the client's pv server.start( ) Starts a server server.stop( ) Stops a server server.writecfg( ) Writes config files -spawn.cargoshipevent( ) -spawn.fill_groups( ) -spawn.fill_individuals( ) -spawn.fill_populations( ) -spawn.report( ) -spawn.scalars( ) -stability.refresh_stability( ) -supply.call( ) -supply.drop( ) -system.cpu_affinity( ) -system.cpu_priority( ) -vehicle.autohover( ) +spawn.cargoshipevent( ) +spawn.fill_groups( ) +spawn.fill_individuals( ) +spawn.fill_populations( ) +spawn.report( ) +spawn.scalars( ) +stability.refresh_stability( ) +supply.call( ) +supply.drop( ) +system.cpu_affinity( ) +system.cpu_priority( ) +vehicle.autohover( ) vehicle.boatdriftinfo( ) Print out boat drift status for all boats -vehicle.fixcars( ) -vehicle.killboats( ) -vehicle.killcars( ) -vehicle.killdrones( ) -vehicle.killminis( ) -vehicle.killscraphelis( ) -vehicle.killtrains( ) -vehicle.stop_all_trains( ) -vehicle.swapseats( ) +vehicle.fixcars( ) +vehicle.killboats( ) +vehicle.killcars( ) +vehicle.killdrones( ) +vehicle.killminis( ) +vehicle.killscraphelis( ) +vehicle.killtrains( ) +vehicle.stop_all_trains( ) +vehicle.swapseats( ) voice.togglevoicerangeboost( ) Enabled/disables voice range boost for a player eg. ToggleVoiceRangeBoost sam 1 -weather.load( ) -weather.report( ) -weather.reset( ) -workshop.print_approved_skins( ) -world.monuments( ) +weather.load( ) +weather.report( ) +weather.reset( ) +workshop.print_approved_skins( ) +world.monuments( ) world.renderlabs( ) Renders a PNG of the current map's underwater labs, for a specific floor world.rendermap( ) Renders a high resolution PNG of the current map world.rendertunnels( ) Renders a PNG of the current map's tunnel network -xmas.refill( ) -cui.cui_test( ) -cui.cui_test_update( ) -cui.endtest( ) -global.dump( ) -global.steamrelayinit( ) -global.steamstatus( ) -analytics.pending_analytics( ) -growableentity.growall( ) +xmas.refill( ) +cui.cui_test( ) +cui.cui_test_update( ) +cui.endtest( ) +global.dump( ) +global.steamrelayinit( ) +global.steamstatus( ) +analytics.pending_analytics( ) +growableentity.growall( ) meta.add( ) add - adds amount to convar -note.update( ) -relationshipmanager.acceptinvite( ) -relationshipmanager.addtoteam( ) -relationshipmanager.fakeinvite( ) -relationshipmanager.kickmember( ) -relationshipmanager.leaveteam( ) -relationshipmanager.promote( ) -relationshipmanager.rejectinvite( ) -relationshipmanager.sendinvite( ) -relationshipmanager.sleeptoggle( ) -relationshipmanager.trycreateteam( ) -relationshipmanager.wipe_all_contacts( ) -relationshipmanager.wipecontacts( ) -ridablehorse.sethorsebreed( ) -santasleigh.drop( ) -telephonemanager.printallphones( ) -wipetimer.printtimezones( ) -wipetimer.printwipe( ) +note.update( ) +relationshipmanager.acceptinvite( ) +relationshipmanager.addtoteam( ) +relationshipmanager.fakeinvite( ) +relationshipmanager.kickmember( ) +relationshipmanager.leaveteam( ) +relationshipmanager.promote( ) +relationshipmanager.rejectinvite( ) +relationshipmanager.sendinvite( ) +relationshipmanager.sleeptoggle( ) +relationshipmanager.trycreateteam( ) +relationshipmanager.wipe_all_contacts( ) +relationshipmanager.wipecontacts( ) +ridablehorse.sethorsebreed( ) +santasleigh.drop( ) +telephonemanager.printallphones( ) +wipetimer.printtimezones( ) +wipetimer.printwipe( ) ziplinelaunchpoint.report( ) ``` diff --git a/game-servers/sven-co-op.md b/game-servers/sven-co-op.md index d9ff5b52..2ea4224e 100644 --- a/game-servers/sven-co-op.md +++ b/game-servers/sven-co-op.md @@ -6,9 +6,9 @@ description: Information for Sven Co-op servers ![](../.gitbook/assets/svenbanner.jpg) -## **Server Resources** +## Server Resources -**Official Resources** +### Official Resources [Sven Co-op Forums](https://forums.svencoop.com/) @@ -26,20 +26,19 @@ Survival Mode settings, can be set in svenserver.cfg ```text //Default Survival state (enabled by default) 1=on 2=off -mp_survival_mode +mp_survival_mode //1=Players can vote to enable/disable survival 2=Players can't vote on this -mp_survival_voteallow +mp_survival_voteallow //Number of retries before "next map" vote starts. -1 is infinite, 3 is default -mp_survival_retries +mp_survival_retries //Minimum number of players needed to start Survival mode -mp_survival_minplayers +mp_survival_minplayers ``` ## **Sven Co-op Guides** [Make FastDL Webserver Case Insensitive](../guides/make-webserver-case-insensitive.md) - diff --git a/game-servers/sven-co-op/README.md b/game-servers/sven-co-op/README.md index d136f312..10dd3eca 100644 --- a/game-servers/sven-co-op/README.md +++ b/game-servers/sven-co-op/README.md @@ -6,7 +6,7 @@ description: Information for Sven Co-op servers ## **Server Resources** -**Official Resources** +### Official Resources [Sven Co-op Forums](https://forums.svencoop.com/) @@ -28,18 +28,15 @@ Survival Mode settings, can be set in svenserver.cfg ```text //Default Survival state (enabled by default) 1=on 2=off -mp_survival_mode +mp_survival_mode //1=Players can vote to enable/disable survival 2=Players can't vote on this -mp_survival_voteallow +mp_survival_voteallow //Number of retries before "next map" vote starts. -1 is infinite, 3 is default -mp_survival_retries +mp_survival_retries //Minimum number of players needed to start Survival mode -mp_survival_minplayers +mp_survival_minplayers ``` - - - diff --git a/game-servers/sven-co-op/make-webserver-case-insensitive.md b/game-servers/sven-co-op/make-webserver-case-insensitive.md index 82109d4c..6f553b13 100644 Binary files a/game-servers/sven-co-op/make-webserver-case-insensitive.md and b/game-servers/sven-co-op/make-webserver-case-insensitive.md differ diff --git a/game-servers/teamspeak-3.md b/game-servers/teamspeak-3.md index c04cc5b7..3554f3f9 100644 --- a/game-servers/teamspeak-3.md +++ b/game-servers/teamspeak-3.md @@ -1,18 +1,18 @@ # TeamSpeak 3 -![](../.gitbook/assets/teamspeakbanner.jpg) +![TeamSpeak 3 Logo](../.gitbook/assets/teamspeakbanner.jpg) ## Enable Server Query To enable server query certain permissions have to be enabled or the guest server group. -* Virtual Server -* b\_virtualserver\_info\_view -* b\_virtualserver\_channel\_list -* b\_virtualserver\_client\_list -* Group -* b\_virtualserver\_servergroup\_list -* b\_virtualserver\_channelgroup\_list +- Virtual Server +- b_virtualserver_info_view +- b_virtualserver_channel_list +- b_virtualserver_client_list +- Group +- b_virtualserver_servergroup_list +- b_virtualserver_channelgroup_list To enable these permissions first navigate to TeamSpeak3 Options and enable `Advanced permissions system`. @@ -20,7 +20,7 @@ To enable these permissions first navigate to TeamSpeak3 Options and enable `Adv Tools > Options > Application ``` -![](../.gitbook/assets/ts3_advanced_permissions.jpg) +![TS3 advanced permissions screenshot](../.gitbook/assets/ts3_advanced_permissions.jpg) Navigate to `server groups` server permissions and select guest. @@ -30,23 +30,23 @@ Permissions > Server Groups Select the values shown below and close the menu. -* Virtual Server - * Information - * b\_virtualserver\_info\_view - * b\_virtualserver\_channel\_list - * b\_virtualserver\_client\_list -* Group - * Information - * b\_virtualserver\_servergroup\_list - * b\_virtualserver\_channelgroup\_list +- Virtual Server + - Information + - b_virtualserver_info_view + - b_virtualserver_channel_list + - b_virtualserver_client_list +- Group + - Information + - b_virtualserver_servergroup_list + - b_virtualserver_channelgroup_list -![](../.gitbook/assets/ts3_server_group_permissions.jpg) +![server group permissions screenshot](../.gitbook/assets/ts3_server_group_permissions.jpg) ### Enable Query on LinuxGSM Because a user has to manually enable server query with TeamSpeak 3, LinuxGSM has gamedig query disabled by default. Enabling will allow more information to be displayed in _details_ and enable monitor to use gamedig. -Copy the query mode settings from `_default.cfg` to `common.cfg` and change `querymode`from `5` to `3`. +Copy the query mode settings from `_default.cfg` to `common.cfg` and change `querymode`from `5` to `3`. ```text ## Query mode @@ -147,4 +147,3 @@ If you find the above in the TeamSpeak 3 log you may need to remove the followin ### Server Crashed after a while \(outdated and no licence\) If the following message appears in the log of the Teamspeak 3 Linux Server `Error creating ephemeral license: EXPIRED` You need to upgrade the version of the TeamSpeak 3 Server to a more up-to-date version. - diff --git a/game-servers/the-front-wip.md b/game-servers/the-front-wip.md index 864bcb67..6b9979d2 100644 --- a/game-servers/the-front-wip.md +++ b/game-servers/the-front-wip.md @@ -1,2 +1,3 @@ -# The Front \[WIP] +# The Front +[WIP] diff --git a/game-servers/unreal-tournament-2004.md b/game-servers/unreal-tournament-2004.md index c6dea2d9..f08aab87 100644 --- a/game-servers/unreal-tournament-2004.md +++ b/game-servers/unreal-tournament-2004.md @@ -1,6 +1,6 @@ # Unreal Tournament 2004 -![](../.gitbook/assets/ut2004banner.jpg) +![Unreaol Tournament 2004 Logo](../.gitbook/assets/ut2004banner.jpg) ## Server Files @@ -47,4 +47,3 @@ BR-UCMP2-Sublimity.ut2 CTF-Maul.ut2 DM-CBP1-AugustNoon.ut2 CTF-1on1-Joust.ut2 CTF-MoonDragon.ut2 DM-CBP1-BlackJackal.ut2 DM-Curse4.ut2 DM-UCMP-Contrast.ut2 DOM-Renascent.ut2 ONS-Urban.ut2 CTF-AbsoluteZero.ut2 CTF-Orbital2.ut2 DM-CBP1-Downgrave.ut2 DM-DE-Grendelkeep.ut2 DM-UCMP-ImMortalis.ut2 DOM-Ruination.ut2 VCTF-UCMP2-RiverCanyon2.ut2 ``` - diff --git a/game-servers/unreal-tournament-3.md b/game-servers/unreal-tournament-3.md index b2b415e6..a3a9893c 100644 --- a/game-servers/unreal-tournament-3.md +++ b/game-servers/unreal-tournament-3.md @@ -1,6 +1,6 @@ # Unreal Tournament 3 -![](../.gitbook/assets/unreal-tournament-3.jpg) +![Unreal Tournament 3 Logo](../.gitbook/assets/unreal-tournament-3.jpg) ## Server files @@ -10,29 +10,29 @@ LinuxGSM uses the most recent version of UT3 server available for Linux. Unreal Tournament 3 Requires a few alterations from the official server download. Because of this the LinuxGSM version of the server files includes the following. -* Patch 5 \(v2.1\) -* Titan Expansion Pack -* Gamespy Server Patch -* WebAdmin 1.17 +- Patch 5 \(v2.1\) +- Titan Expansion Pack +- Gamespy Server Patch +- WebAdmin 1.17 ## Ports -* Game Port 7777 UDP handled by Parms -* Query port 6500 UDP handled by parms \(does not work\) -* Web Admin 8080 TCP handled by UTWeb.ini +- Game Port 7777 UDP handled by Parms +- Query port 6500 UDP handled by parms \(does not work\) +- Web Admin 8080 TCP handled by UTWeb.ini ## **Game Types** This is a list of the valid gametypes: -| Name | GameType | -| :--- | :--- | -| Deathmatch | UTGame.UTDeathmatch | -| Capture the Flag | UTGameContent.UTCTFGame\_Content | -| Warfare | UTGameContent.UTOnslaughtGame\_Content | -| Vehicle Capture the Flag | UTGameContent.UTVehicleCTFGame\_Content | -| Team Deathmatch | UTGame.UTTeamGame | -| Duel | UTGame.UTDuelGame | +| Name | GameType | +| :----------------------- | :------------------------------------- | +| Deathmatch | UTGame.UTDeathmatch | +| Capture the Flag | UTGameContent.UTCTFGame_Content | +| Warfare | UTGameContent.UTOnslaughtGame_Content | +| Vehicle Capture the Flag | UTGameContent.UTVehicleCTFGame_Content | +| Team Deathmatch | UTGame.UTTeamGame | +| Duel | UTGame.UTDuelGame | ## **Mutators** @@ -44,37 +44,37 @@ This is a list of the valid gametypes: This is a list of the valid mutators shipped with the retail version: -| Name | MutatorIdentifier | -| :--- | :--- | -| Instagib | UTGame.UTMutator\_Instagib | -| BigHead | UTGame.UTMutator\_BigHead | -| Low Gravity | UTGame.UTMutator\_LowGrav | -| Super Berserk | UTGame.UTMutator\_SuperBerserk | -| Friendly Fire | UTGame.UTMutator\_FriendlyFire | -| No Translocator | UTGame.UTMutator\_NoTranslocator | -| Speed Freak | UTGame.UTMutator\_SpeedFreak | -| Handicap | UTGame.UTMutator\_Handicap | -| No Powerups | UTGame.UTMutator\_NoPowerups | -| Slomo | UTGame.UTMutator\_Slomo | -| Weapon Replacement | UTGame.UTMutator\_WeaponReplacement | -| Weapon Respawn | UTGame.UTMutator\_WeaponsRespawn | +| Name | MutatorIdentifier | +| :----------------- | :--------------------------------- | +| Instagib | UTGame.UTMutator_Instagib | +| BigHead | UTGame.UTMutator_BigHead | +| Low Gravity | UTGame.UTMutator_LowGrav | +| Super Berserk | UTGame.UTMutator_SuperBerserk | +| Friendly Fire | UTGame.UTMutator_FriendlyFire | +| No Translocator | UTGame.UTMutator_NoTranslocator | +| Speed Freak | UTGame.UTMutator_SpeedFreak | +| Handicap | UTGame.UTMutator_Handicap | +| No Powerups | UTGame.UTMutator_NoPowerups | +| Slomo | UTGame.UTMutator_Slomo | +| Weapon Replacement | UTGame.UTMutator_WeaponReplacement | +| Weapon Respawn | UTGame.UTMutator_WeaponsRespawn | ## **Common Variables** -| | | -| :--- | :--- | -| MaxPlayers=<number> | Maximum number of players on the server \(overrides ini setting\) | -| MinNetPlayers=<number> | Minimum number of players before a match starts \(real players not bots\) | -| bShouldAdvertise=\[True\|False\] | Show the server in the server browser \(default: true\) | -| bIsLanMatch=\[True\|False\] | Is this a LAN only game? \(default: false\) | -| bIsDedicated=\[True\|False\] | Changes dedicated server flag \(default: false, even if started as dedicated\) | -| GamePassword=<password> | Sets a game password | -| AdminPassword=<password> | Sets an admin password | -| Port=<port> | Sets the server game port \(default: 7777; can also be changed via the INI file\) | -| QueryPort=<port> | Sets the server query port \(default: 6500\) | -| GoalScore=<number> | Sets the max frags / max caps before the server will change maps. | -| bUsesStats=\[True\|False\] | Report stats or not? | -| TimeLimit=<number> | Sets the timelimit in minutes for each map. | +| | | +| :------------------------------- | :-------------------------------------------------------------------------------- | +| MaxPlayers=<number> | Maximum number of players on the server \(overrides ini setting\) | +| MinNetPlayers=<number> | Minimum number of players before a match starts \(real players not bots\) | +| bShouldAdvertise=\[True\|False\] | Show the server in the server browser \(default: true\) | +| bIsLanMatch=\[True\|False\] | Is this a LAN only game? \(default: false\) | +| bIsDedicated=\[True\|False\] | Changes dedicated server flag \(default: false, even if started as dedicated\) | +| GamePassword=<password> | Sets a game password | +| AdminPassword=<password> | Sets an admin password | +| Port=<port> | Sets the server game port \(default: 7777; can also be changed via the INI file\) | +| QueryPort=<port> | Sets the server query port \(default: 6500\) | +| GoalScore=<number> | Sets the max frags / max caps before the server will change maps. | +| bUsesStats=\[True\|False\] | Report stats or not? | +| TimeLimit=<number> | Sets the timelimit in minutes for each map. | Most of these can be set in the server's `UTGame.ini`, so there's no need to clutter up the command line. @@ -111,20 +111,19 @@ First off login with: AdminLogin <password> The you can use the following command: -* AdminLogin <password> - Logs you in as an admin -* AdminLogout - Logs you out of admin mode -* AdminRestartMap - Restarts the current map -* AdminChangeMap <MapName> - Loads a different map \(gametype will change too, depending on map\) -* Admin addbots <\#> - Adds number of bots -* Admin killbots - Removes all bots -* AdminPlayerList - Shows PlayerID of players -* Adminkick <playername> - Kicks player from current game -* Adminkickban <playername> - Kicks player from current game and bans player from reconnecting \(bans are stored in .ini file for later editing\) -* AdminForceVoiceMute <playername> - Blocks a player from sending voip to others -* AdminForceVoiceUnMute <playername> - Allows a player to resume sending voip to others -* AdminForceTextMute <playername> - Blocks a player from sending text to others -* AdminForceTextUnMute <playername> - Allows a player to resume sending text to others -* AdminPublishMapList - Overrides the server's map list for the current game type with the one on the client that used the command +- AdminLogin <password> - Logs you in as an admin +- AdminLogout - Logs you out of admin mode +- AdminRestartMap - Restarts the current map +- AdminChangeMap <MapName> - Loads a different map \(gametype will change too, depending on map\) +- Admin addbots <\#> - Adds number of bots +- Admin killbots - Removes all bots +- AdminPlayerList - Shows PlayerID of players +- Adminkick <playername> - Kicks player from current game +- Adminkickban <playername> - Kicks player from current game and bans player from reconnecting \(bans are stored in .ini file for later editing\) +- AdminForceVoiceMute <playername> - Blocks a player from sending voip to others +- AdminForceVoiceUnMute <playername> - Allows a player to resume sending voip to others +- AdminForceTextMute <playername> - Blocks a player from sending text to others +- AdminForceTextUnMute <playername> - Allows a player to resume sending text to others +- AdminPublishMapList - Overrides the server's map list for the current game type with the one on the client that used the command When your done you can logout with: AdminLogout - diff --git a/game-servers/unreal-tournament-99.md b/game-servers/unreal-tournament-99.md index ec7d6c9c..16dc1326 100644 --- a/game-servers/unreal-tournament-99.md +++ b/game-servers/unreal-tournament-99.md @@ -1,17 +1,17 @@ # Unreal Tournament 99 -![](../.gitbook/assets/ut99banner.jpg) +![Unreal Tournament 99 Logo](../.gitbook/assets/ut99banner.jpg) ## Server Files Unreal Tournament 99 Requires a few alterations from the official server download. Because of this, the LinuxGSM version of the server files includes the following. -* OldUnreal-UTPatch469a-Linux.tar.bz2 ([OldUnreal Patch](https://www.oldunreal.com/cgi-bin/yabb2/YaBB.pl?num=1569587267)) -* ut-server-436.tar (Latest Official Version) -* UTBonusPack.zip -* UTBonusPack2.zip (maps only) -* UTInoxxPack.zip -* UTBonusPack4.zip +- OldUnreal-UTPatch469a-Linux.tar.bz2 ([OldUnreal Patch](https://www.oldunreal.com/cgi-bin/yabb2/YaBB.pl?num=1569587267)) +- ut-server-436.tar (Latest Official Version) +- UTBonusPack.zip +- UTBonusPack2.zip (maps only) +- UTInoxxPack.zip +- UTBonusPack4.zip ## Server Resources @@ -27,9 +27,9 @@ With a default LinuxGSM Install, server settings can be configured in this file: You can change most of these settings in a browser by enabling the webserver and putting in settings there. -``` +```bash [Engine.GameReplicationInfo] -ServerName= +ServerName= ShortName= AdminName= AdminEmail= @@ -37,7 +37,7 @@ Region=0 MOTDLine1= MOTDLine2= MOTDLine3= -MOTDLine4= +MOTDLine4= [Botpack.ChallengeBotInfo] Difficulty=4 diff --git a/game-servers/valheim.md b/game-servers/valheim.md index bc747b33..7a7da899 100644 --- a/game-servers/valheim.md +++ b/game-servers/valheim.md @@ -1,10 +1,10 @@ # Valheim -
+![Valheim Logo](../.gitbook/assets/vhserver_header.jpg) ## Server Resources -* [Official Dedicated Server Guide](https://valheim.fandom.com/wiki/Valheim\_Dedicated\_Server) +- [Official Dedicated Server Guide](https://valheim.fandom.com/wiki/Valheim_Dedicated_Server) ## Valheim Servers require Passwords @@ -18,7 +18,7 @@ The Valheim in-game browser can be slow, as a workaround you can directly connec Valheim has been previously known to have problems with long server names and special characters, if you are having trouble connecting to a server try making its name shorter or remove special characters. -## Other Resources: +## Other Resources Add admins to Valheim server: diff --git a/guides/README.md b/guides/README.md index a1074135..1e4b8280 100644 --- a/guides/README.md +++ b/guides/README.md @@ -5,4 +5,3 @@ description: Guides that are used on multiple servers # Guides [Install Sourcemod and Metamod:Source](sourcemod-csgo-server.md) - diff --git a/guides/make-webserver-case-insensitive.md b/guides/make-webserver-case-insensitive.md index 994c83e2..8271529e 100644 Binary files a/guides/make-webserver-case-insensitive.md and b/guides/make-webserver-case-insensitive.md differ diff --git a/guides/sourcemod-csgo-server.md b/guides/sourcemod-csgo-server.md index b2fdf4fc..0161154e 100644 --- a/guides/sourcemod-csgo-server.md +++ b/guides/sourcemod-csgo-server.md @@ -6,39 +6,37 @@ description: Sourcemod Resources and Known Problems Sourcemod is a plugin for source games that can add functionality like voting systems, minigames, and server utilities. Sourcemod requires Metamod to run. -LinuxGSM includes a[ command](../commands/mods.md) that is able to install Sourcemod automatically. +LinuxGSM includes a [command](../commands/mods.md) that is able to install Sourcemod automatically. [LinuxGSM Mod Command](../commands/mods.md) ## Sourcemod Resources -**Sourcemod Official Resources** +### Sourcemod Official Resources -[Official Sourcemod Install Guide](https://wiki.alliedmods.net/Installing\_SourceMod) +[Official Sourcemod Install Guide](https://wiki.alliedmods.net/Installing_SourceMod) [Sourcemod Download Link](https://www.sourcemod.net/downloads.php?branch=stable) [Metamod Download Link](http://www.sourcemm.net/downloads.php?branch=stable) - - -**Sourcemod Plugins** +### Sourcemod Plugins Plugins can be downloaded from Alliedmodders website: -[Plugins Forum ](https://forums.alliedmods.net/forumdisplay.php?f=153) +[Plugins Forum](https://forums.alliedmods.net/forumdisplay.php?f=153) -[High Traffic Plugins Forum ](https://forums.alliedmods.net/forumdisplay.php?f=153) +[High Traffic Plugins Forum](https://forums.alliedmods.net/forumdisplay.php?f=153) -## **General Sourcemod Tips** +## General Sourcemod Tips If players are kicked after joining, make sure Sourcemod does not have any errors and is up to date Check folder hierarchy in archives before unpacking, each plugin creator organizes their archives differently. -The server may need to be set to sv\_pure 0 in some cases. +The server may need to be set to sv_pure 0 in some cases. -[Take note that some servers require a manually generated and placed .vdf file(link).](https://wiki.alliedmods.net/Installing\_Metamod:Source#GameInfo) +[Take note that some servers require a manually generated and placed .vdf file(link).](https://wiki.alliedmods.net/Installing_Metamod:Source#GameInfo) ## CS:GO Sourcemod Tips diff --git a/linux/README.md b/linux/README.md index c50d28ee..f5600395 100644 --- a/linux/README.md +++ b/linux/README.md @@ -1,4 +1 @@ # Linux - - - diff --git a/linux/distro.md b/linux/distro.md index 894d4cea..3c63de85 100644 --- a/linux/distro.md +++ b/linux/distro.md @@ -8,7 +8,7 @@ LinuxGSM developers primarily use Ubuntu for development and attempt to support ### Ubuntu -![](../.gitbook/assets/ubuntu\_black-orange\_hex\_su.png) +![Ubuntu Logo](../.gitbook/assets/ubuntu_black-orange_hex_su.png) #### **Reasons to use Ubuntu with LinuxGSM:** @@ -37,7 +37,7 @@ Ubuntu 22.04 LTS is recommended ### Debian -![](../.gitbook/assets/debian.png) +![Debian Logo](../.gitbook/assets/debian.png) #### **Reasons to use Debian with LinuxGSM:** @@ -58,7 +58,7 @@ Ubuntu 22.04 LTS is recommended Debian 12 "Bookworm" is recommended {% endhint %} -[https://en.wikipedia.org/wiki/Debian\_version\_history](https://en.wikipedia.org/wiki/Debian\_version\_history) +[https://en.wikipedia.org/wiki/Debian_version_history](https://en.wikipedia.org/wiki/Debian_version_history) | **Version** | **Status** | **Code name** | **Release date** | **Security support until** | **LTS until** | | ----------- | ---------------- | ------------- | ---------------- | -------------------------- | ------------- | @@ -66,7 +66,7 @@ Debian 12 "Bookworm" is recommended | 11 | oldstable | Bullseye | 14 August 2021 | | | | 12 | stable | Bookworm | 10 June 2023 | | | -[https://en.wikipedia.org/wiki/Debian\_version\_history#Release\_table](https://en.wikipedia.org/wiki/Debian\_version\_history#Release\_table) +[https://en.wikipedia.org/wiki/Debian_version_history#Release_table](https://en.wikipedia.org/wiki/Debian_version_history#Release_table) ## Enterprise Linux Distros @@ -74,7 +74,7 @@ LinuxGSM also works with Enterprise Linux distributions. Known for their stabili ### CentOS -![](../.gitbook/assets/centos.png) +![CentOS Logo](../.gitbook/assets/centos.png) {% hint style="info" %} CentOS is no longer recommended for use with LinuxGSM for hosting game servers. @@ -102,9 +102,7 @@ Rocky Linux or Alma Linux are now the recommended alternative Enterprise Linux D ### Rocky Linux - - -
+![Rocky Linux Logo](../.gitbook/assets/Rocky_Linux.png) #### **Reasons to use Rocky Linux with LinuxGSM:** @@ -115,14 +113,12 @@ Rocky Linux or Alma Linux are now the recommended alternative Enterprise Linux D #### **Ideal Use Cases:** -* Game Server Hosting: Rocky Linux's RHEL compatibility and stability make it an excellent choice for deploying and managing game servers with LinuxGSM. -* Continuity from CentOS: For users previously running game servers on CentOS with LinuxGSM, transitioning to Rocky Linux ensures a familiar and stable environment. +- Game Server Hosting: Rocky Linux's RHEL compatibility and stability make it an excellent choice for deploying and managing game servers with LinuxGSM. +- Continuity from CentOS: For users previously running game servers on CentOS with LinuxGSM, transitioning to Rocky Linux ensures a familiar and stable environment. ### **Alma Linux** - - -
+![Alma Linux Logo](../.gitbook/assets/Almalinux-logo-white-v2.png) #### **Reasons to use Alma Linux with LinuxGSM:** @@ -133,8 +129,8 @@ Rocky Linux or Alma Linux are now the recommended alternative Enterprise Linux D #### **Ideal Use Cases:** -* CentOS Replacement: For users transitioning from CentOS to Alma Linux for hosting game servers with LinuxGSM, the distribution's RHEL compatibility ensures continuity and stability. -* Enterprise Game Server Deployments: Alma Linux's enterprise-grade stability and long-term support make it well-suited for hosting game servers in professional gaming environments. +- CentOS Replacement: For users transitioning from CentOS to Alma Linux for hosting game servers with LinuxGSM, the distribution's RHEL compatibility ensures continuity and stability. +- Enterprise Game Server Deployments: Alma Linux's enterprise-grade stability and long-term support make it well-suited for hosting game servers in professional gaming environments. ### EPEL diff --git a/linux/file-ownership.md b/linux/file-ownership.md index 26c7f78b..da25aadf 100644 --- a/linux/file-ownership.md +++ b/linux/file-ownership.md @@ -2,12 +2,12 @@ ## Introduction -Linux files and directories always belong to a user and group. That is what we call ownership. +Linux files and directories always belong to a user and group. That is what we call ownership. If this can be boring to new users, remember that this is a huge part of what makes Linux as secure as it is. ## Check current ownership -### Check ownership in the current directory: +### Check ownership in the current directory `ls -l` @@ -26,14 +26,14 @@ drwxr-xr-x 5 ultimatebyte ultimatebyte 4096 Jan 29 22:24 steamcmd Syntax of the output is: -* `d` for directory or `-` for file -* user, then group, then others permissions -* number specifies the number of links or directories inside of a directory -* The user that owns the file, or directory -* The group that file or directory belongs to -* The size in bytes -* The date of last modification -* The name of the file +- `d` for directory or `-` for file +- user, then group, then others permissions +- number specifies the number of links or directories inside of a directory +- The user that owns the file, or directory +- The group that file or directory belongs to +- The size in bytes +- The date of last modification +- The name of the file ### Check ownership from all files and hidden files of any directory @@ -64,7 +64,7 @@ drwxr-xr-x 5 ultimatebyte ultimatebyte 4096 Jan 29 22:24 steamcmd -rw-r--r-- 1 ultimatebyte ultimatebyte 29 Jan 30 02:17 .tw-server.lock ``` -## All these commands require elevated privileges! +## All these commands require elevated privileges ## Change owner @@ -124,7 +124,6 @@ As usual, `chown --help` will provide you with all available arguments `chown -R user:group /path/to/dir` -#### Example: - -chown -R myuser:myuser /home/myuser +#### Example +`chown -R myuser:myuser /home/myuser` diff --git a/linux/firewalls.md b/linux/firewalls.md index 7e118775..e9f04cbf 100644 --- a/linux/firewalls.md +++ b/linux/firewalls.md @@ -33,10 +33,9 @@ Some game servers \(like Rust\) register their external IP with steam when they [eth0] 192.168.1.1 (LAN) | | ----------------- -| | --[WAN0] 71.2.5.23 (ISP A) -| | --[WAN1] 65.13.29.46 (ISP B) +| | --[WAN0] 71.2.5.23 (ISP A) +| | --[WAN1] 65.13.29.46 (ISP B) ------------------ ``` If your traffic is going out WAN0 you need to put the port forwards on the 71.2.5.23 address. If your outbound traffic is going out WAN1 you would need to put your port forwards on 65.13.29.46. - diff --git a/linux/ftp-scp.md b/linux/ftp-scp.md index f4759152..2075aaa8 100644 --- a/linux/ftp-scp.md +++ b/linux/ftp-scp.md @@ -1,20 +1,20 @@ # ftp-scp -SFTP \(Secure File Transfer Protocol\) is the transfer protocol to view and transfer files over SSH. SFTP works the same as FTP but is encrypted. +SFTP (Secure File Transfer Protocol) is the transfer protocol to view and transfer files over SSH. SFTP works the same as FTP but is encrypted. ## SFTP Advantages -* Encrypted -* Nothing extra to install \(such as FTP server\) -* Works like any other FTP server -* Compatible with the popular clients such as Filezilla and WinSCP -* You can login to any SSH accessable Linux user. +- Encrypted +- Nothing extra to install (such as FTP server) +- Works like any other FTP server +- Compatible with the popular clients such as Filezilla and WinSCP +- You can login to any SSH accessable Linux user. ## How to use SFTP -* Connect like any FTP except it uses the port \(default 22\) -* Use your linux username / password -* You might need to set protocol to SFTP in your FTP client. +- Connect like any FTP except it uses the port \(default 22\) +- Use your linux username / password +- You might need to set protocol to SFTP in your FTP client. ## Bad practice to avoid @@ -27,13 +27,12 @@ SFTP \(Secure File Transfer Protocol\) is the transfer protocol to view and tran Here is why you shouldn't -* By logging in as root, you might accidentally remove essential system files or put useless files into the wrong place and mess up with your system. -* But even more annoying, any file you'll write will belong to root, and the user won't be able to either read, change, or execute writtent files as root. -* FTP is an unencrypted protocol, therefore it is very unsecure to edit sensitive files using it. +- By logging in as root, you might accidentally remove essential system files or put useless files into the wrong place and mess up with your system. +- But even more annoying, any file you'll write will belong to root, and the user won't be able to either read, change, or execute writtent files as root. +- FTP is an unencrypted protocol, therefore it is very unsecure to edit sensitive files using it. **How to operate without root FTP login ?** -* If you need to edit system config files, then do like everyone else : use an SSH text editor like "nano" or "vi". -* Set your FTP so that you can login as users with a valid shell from the machine. Eventually, disable root FTP login. -* Oh, one more thing... Did we talk about SFTP ? - +- If you need to edit system config files, then do like everyone else : use an SSH text editor like "nano" or "vi". +- Set your FTP so that you can login as users with a valid shell from the machine. Eventually, disable root FTP login. +- Oh, one more thing... Did we talk about SFTP ? diff --git a/linux/network-interfaces.md b/linux/network-interfaces.md index 99f5be1b..dd797765 100644 --- a/linux/network-interfaces.md +++ b/linux/network-interfaces.md @@ -1,4 +1,3 @@ # network-interfaces -TODO - +[WIP] diff --git a/linux/permissions.md b/linux/permissions.md index fb67fcf8..8c20d053 100644 --- a/linux/permissions.md +++ b/linux/permissions.md @@ -1,7 +1,7 @@ # permissions -In Linux, files and directories are owned by a user and a group \(see [File Ownership](file-ownership.md)\). On top of that, this user, group, and other ones \(groups and users\), have different permissions on these files. That's what we call file permissions. -You might need to change them. +In Linux, files and directories are owned by a user and a group \(see [File Ownership](file-ownership.md)\). On top of that, this user, group, and other ones \(groups and users\), have different permissions on these files. That's what we call file permissions. +You might need to change them. If this can be boring to new users, remember that this is a huge part of what makes Linux as secured as it is, and you are required to know this if you wish to do anything serious with Linux. ## Check current permissions @@ -19,14 +19,14 @@ ultimatebyte@game:~$ ls -al twserver Explaination: -* First character is a a `-` for files, or a `d` for directories -* Three next ones are owner permissions: `rwx` -* Three next ones are group permissions: `rwx` -* Three next ones are "others permissions: `rwx` for groups and users that are now owning the file -* First user listed is the owner -* Next entry is the group owning the file +- First character is a a `-` for files, or a `d` for directories +- Three next ones are owner permissions: `rwx` +- Three next ones are group permissions: `rwx` +- Three next ones are "others permissions: `rwx` for groups and users that are now owning the file +- First user listed is the owner +- Next entry is the group owning the file -"r" stands for "read", "w" stands for "write", "x" stands for execute. +"r" stands for "read", "w" stands for "write", "x" stands for execute. If any letter from `rwx` is showed as a `-`, it means that the permission is not granted. ## Change permissions @@ -43,11 +43,11 @@ Append `-R` to your chmod `chmod -R` -### Syntax 1\) +### Syntax 1 Set all permissions at once -`chmod 777` == `chmod -a+rwx` +`chmod 777` == `chmod -a+rwx` `chmod 000` == `chmod -a-rwx` First number is for user, second is for group, third for others @@ -71,28 +71,28 @@ Default permissions are 755. If you wish to prevent other users from interacting `chmod -R 750 /home/userdir` -### Syntax 2\) +### Syntax 2 We used `rwx` for these, but of course, you should pick the permissions you wish to add or remove. #### Permissions add -`chmod +rwx filename` +`chmod +rwx filename` Will add read, write, and execute permissions to this file anyone on the machine. r stands for "read", w for "write", and x for "execute" -Example : `chmod +x filename` +Example : `chmod +x filename` Will make the file executable by anyone on the machine. #### Permissions remove -`chmod -rwx filename` Will remove read, write, and execute permissions to this file anyone on the machine. +`chmod -rwx filename` Will remove read, write, and execute permissions to this file anyone on the machine. Note : root user is the only exception. #### Permissions for user/group/others/all -`chmod -u+rwx` -`chmod -g+rwx` -`chmod -o+rwx` +`chmod -u+rwx` +`chmod -g+rwx` +`chmod -o+rwx` `chmod -a+rwx` #### Multiple permissions at once @@ -109,29 +109,28 @@ Advanced permissions management, you will likely not need this for game servers. No GUID -`chmod -R a-s /path/to/dir` +`chmod -R a-s /path/to/dir` `chmod -R 0xxx /path/to/dir` Example : `chmod -R 0640 /home/user/website` -**Set UID** +#### Set UID Files will run as the user -`chmod -R u+s /path/to/dir/` +`chmod -R u+s /path/to/dir/` `chmod -R 2xxx /path/to/dir` -**Set GID** +#### Set GID Any subdir and subfile will have the same group -`chmod -R g+s /path/to/dir/` +`chmod -R g+s /path/to/dir/` `chmod -R 4xxx /path/to/dir` -**Set GUID** +#### Set GUID and GID Set both UID and GID -`chmod -R a+s /path/to/dir/` +`chmod -R a+s /path/to/dir/` `chmod -R 6xxx /path/to/dir` - diff --git a/linux/save-space-with-symlinking.md b/linux/save-space-with-symlinking.md index 3bb10d49..a555b6ed 100644 --- a/linux/save-space-with-symlinking.md +++ b/linux/save-space-with-symlinking.md @@ -26,11 +26,10 @@ Change the game server folder ownership to be under their respective users and y `chown svencoop2 /home/svencoop2/serverfiles/svencoop_downloads` -The files in the symlinks do not need be owned by the gameserver users and will not be recognized by linuxGSM's ownership check. That being said, make sure they can be read by the gameserver users. +The files in the symlinks do not need be owned by the gameserver users and will not be recognized by linuxGSM's ownership check. That being said, make sure they can be read by the gameserver users. ## Symlink resources [Excellent description of differences between Symlinks and Hardlinks by OSTechNix](https://www.ostechnix.com/explaining-soft-link-and-hard-link-in-linux-with-examples/) [Official Ubuntu ln Documentation](http://manpages.ubuntu.com/manpages/disco/man1/ln.1.html) - diff --git a/networking/README.md b/networking/README.md index 7d6e6bbc..048579a4 100644 --- a/networking/README.md +++ b/networking/README.md @@ -1,2 +1 @@ # Networking - diff --git a/networking/ip-address.md b/networking/ip-address.md index a48e5a0c..94fc11f7 100644 --- a/networking/ip-address.md +++ b/networking/ip-address.md @@ -16,15 +16,15 @@ If your server is hosted on the internet using a server provider you should have ### Local Networks (Private) -Using a home server or virtual machine on your desktop is a great way to get started with LinuxGSM. However, a local network (LAN) may require a better understanding of networking equipment, how local IP addressing works, and technologies such as [DHCP](https://en.wikipedia.org/wiki/Dynamic\_Host\_Configuration\_Protocol) and [NAT](https://en.wikipedia.org/wiki/Network\_address\_translation). +Using a home server or virtual machine on your desktop is a great way to get started with LinuxGSM. However, a local network (LAN) may require a better understanding of networking equipment, how local IP addressing works, and technologies such as [DHCP](https://en.wikipedia.org/wiki/Dynamic_Host_Configuration_Protocol) and [NAT](https://en.wikipedia.org/wiki/Network_address_translation). When a server is hosted on a local network it will be given a private IP address that is only accessible to other devices on your local network. This is fine if you want to get friends around host a game server for a good old-fashioned LAN party. But if you want to allow online players access to your local game server you will need to configure your home router's firewall and setup port forwarding using NAT. ## Network Interfaces -All computers will have some sort of physical or virtual [network interface](https://en.wikipedia.org/wiki/Network\_interface) (ethernet, fiber optic, wi-fi) to connect to a network. On Linux, you can see your server's interfaces by using the following command. +All computers will have some sort of physical or virtual [network interface](https://en.wikipedia.org/wiki/Network_interface) (ethernet, fiber optic, wi-fi) to connect to a network. On Linux, you can see your server's interfaces by using the following command. -``` +```text ip -o link show ``` @@ -35,11 +35,13 @@ Typically you may see (depending on distro) a `localhost` loopback interface and An IP (Internet Protocol) address is a numerical label assigned to each device connected to a computer network that uses the Internet Protocol for communication. It serves two primary functions: host or network interface identification and location addressing. IP addresses enable devices to send and receive data within a network, facilitating communication and data transfer across the Internet. 1. **LAN IP Address:** - * Example: 192.168.1.10 - * Explanation: In a typical home or office network, devices are often assigned private IP addresses within the range defined by the Internet Engineering Task Force (IETF) for private networks. The "192.168.1.10" address is an example of a private IP address commonly used within a LAN. Each device on the local network would have a unique private IP address for internal communication. + + - Example: 192.168.1.10 + - Explanation: In a typical home or office network, devices are often assigned private IP addresses within the range defined by the Internet Engineering Task Force (IETF) for private networks. The "192.168.1.10" address is an example of a private IP address commonly used within a LAN. Each device on the local network would have a unique private IP address for internal communication. + 2. **Internet IP Address:** - * Example: 203.0.113.45 - * Explanation: Internet IP addresses, also known as public IP addresses, are assigned by Internet Service Providers (ISPs) and are globally unique. The "203.0.113.45" address is an example of a public IP address. Websites, servers, and other devices connected to the Internet have public IP addresses that are used for communication between different networks on a global scale. These addresses are essential for routing data across the Internet. + - Example: 203.0.113.45 + - Explanation: Internet IP addresses, also known as public IP addresses, are assigned by Internet Service Providers (ISPs) and are globally unique. The "203.0.113.45" address is an example of a public IP address. Websites, servers, and other devices connected to the Internet have public IP addresses that are used for communication between different networks on a global scale. These addresses are essential for routing data across the Internet. ### Virtual Private Networks diff --git a/networking/ports.md b/networking/ports.md index 72f91197..9a1a1a77 100644 --- a/networking/ports.md +++ b/networking/ports.md @@ -6,10 +6,10 @@ There are port standards set by IANA for common protocols such as HTTP (port 80) ## Vocabulary -* _**Port listening**_ is what a service like a game server does in order to receive packets from incoming connections: by listening to a port, the program waits for incoming packets on a given port. -* _**Port opening**_ happens on a firewall, it consists of allowing traffic to a port. -* _**Port redirection**_ is part of NAT and happens on a router or firewall. It consists of forwarding incoming traffic on a given port to a specific local IP. -* _**Network Address Translation (NAT)**_ is a method of remapping an IP address into another by modifying [network address](https://en.wikipedia.org/wiki/Network\_address) information. +- **Port listening** is what a service like a game server does in order to receive packets from incoming connections: by listening to a port, the program waits for incoming packets on a given port. +- **Port opening** happens on a firewall, it consists of allowing traffic to a port. +- **Port redirection** is part of NAT and happens on a router or firewall. It consists of forwarding incoming traffic on a given port to a specific local IP. +- **Network Address Translation (NAT)** is a method of remapping an IP address into another by modifying [network address](https://en.wikipedia.org/wiki/Network_address) information. ## Game Server Ports @@ -24,7 +24,7 @@ Depending upon which game server is being used, you can set game server ports wi LinuxGSM allows you to see the ports your game server is using with the `./gameserver details` command. -``` +```text Useful port diagnostic command: ss -tuplwn | grep RustDedicated @@ -41,7 +41,7 @@ Default ports are set in either the [start parameters](../configuration/start-pa You can use `./gameserver details` to find out where to edit port settings -``` +```text # Ports # ===================================== # Change ports by editing the parameters in: @@ -78,7 +78,7 @@ Each type of server has a default set of ports. This is fine to use if only one Source Default Ports -``` +```text port="27015" sourcetvport="27020" clientport="27005" @@ -88,7 +88,7 @@ clientport="27005" You can allocate ports incrementally, one after the other. With each server following on from the last. -``` +```text port="27015" sourcetvport="27016" clientport="27017" @@ -132,7 +132,7 @@ Ensure the game server ports are bound and listening before anything else. You c Depending on the game server not all ports will listen. However, a good rule is that the game and query ports will typically listen. {% endhint %} -``` +```text Useful port diagnostic command: ss -tuplwn | grep RustDedicated @@ -145,9 +145,9 @@ App 28082 tcp 0 Running the `ss` command will bring up any ports that are listening. If not, the game server has not started or not correctly binding to its allocated ports. -* Check that ports are not already in use by another application. -* Check that you are trying to listen to an actual interface IP. -* Check that the server does not crash upon start by checking console logs or try starting the server with `./gameserver debug` +- Check that ports are not already in use by another application. +- Check that you are trying to listen to an actual interface IP. +- Check that the server does not crash upon start by checking console logs or try starting the server with `./gameserver debug` ### Check the Firewall diff --git a/networking/source-engine.md b/networking/source-engine.md index 07027647..395d7b67 100644 --- a/networking/source-engine.md +++ b/networking/source-engine.md @@ -4,19 +4,16 @@ Both Source engine and GoldSrc engine use the following ports by default. -* Game Port: 27015 -* Query Port: 27015 -* RCON Port: 27015 -* Client Port: 27020 -* Source TV: 27005 +- Game Port: 27015 +- Query Port: 27015 +- RCON Port: 27015 +- Client Port: 27020 +- Source TV: 27005 ## Static Port Mapping (NAT/Docker) -The port that is configured in the start parameters _must_ be the port that is exposed to the Internet. This is because the game server reports the port that it is configured in start parameters to use to the master server. If this does not match the game client will not be able to connect to the server. +The port that is configured in the start parameters _must_ be the port that is exposed to the Internet. This is because the game server reports the port that it is configured in start parameters to use to the master server. If this does not match the game client will not be able to connect to the server.

Changing port using Docker or firewall

- -

Changing port using the start parameters

- diff --git a/other/README.md b/other/README.md index 8ee81eb6..9fa9c007 100644 --- a/other/README.md +++ b/other/README.md @@ -1,4 +1 @@ # Other - - - diff --git a/other/basic-usage.md b/other/basic-usage.md index 549e6c73..a44257a0 100644 --- a/other/basic-usage.md +++ b/other/basic-usage.md @@ -53,8 +53,8 @@ The [details](../commands/details.md) command provides information relevant to t Configuring a game server requires altering settings in various locations. Configuration is split in two main sections, Linuxgsm configuration and Game configuration. -* [LinuxGSM configuration](../configuration/linuxgsm-config.md) handles settings related to LinuxGSM -* [Game configuration](../configuration/game-server-config.md) handles settings related to the dedicated server. +- [LinuxGSM configuration](../configuration/linuxgsm-config.md) handles settings related to LinuxGSM +- [Game configuration](../configuration/game-server-config.md) handles settings related to the dedicated server. ### LinuxGSM Config @@ -144,12 +144,12 @@ For more info, see [update-lgsm](../commands/update-lgsm.md) You can use [Cronjobs](../configuration/cronjobs.md) to automate any LinuxGSM command. Most commonly used are: -* Automatically check for updates. [update](../commands/update.md) -* Automatically check for server crash and restart if needed. [monitor](../commands/monitor.md) -* Automatically keep LinuxGSM up to date. [update-lgsm](../commands/update-lgsm.md) -* Automatically restart the server at a given time. [start-stop-restart](../commands/start-stop-restart.md) -* Automatically update and restart the server. [force-update](../commands/force-update.md) -* Automatically backup the server. [backup](../commands/backup.md) +- Automatically check for updates. [update](../commands/update.md) +- Automatically check for server crash and restart if needed. [monitor](../commands/monitor.md) +- Automatically keep LinuxGSM up to date. [update-lgsm](../commands/update-lgsm.md) +- Automatically restart the server at a given time. [start-stop-restart](../commands/start-stop-restart.md) +- Automatically update and restart the server. [force-update](../commands/force-update.md) +- Automatically backup the server. [backup](../commands/backup.md) For more details, see [Cronjobs](../configuration/cronjobs.md). @@ -192,4 +192,3 @@ Use debug mode to help you if you are having issues starting the server. Debug a ``` For more info, see [debug](../commands/debug.md). - diff --git a/other/brand.md b/other/brand.md index 00219aa3..3872e1af 100644 --- a/other/brand.md +++ b/other/brand.md @@ -8,27 +8,27 @@ This is the LinuxGSM Brand Logo and all its variants Available in .svg and .png sizes 512px, 256px, 128px, 64px, 32px, 16px -| ![LinuxGSM\_colour\_logo](../.gitbook/assets/linuxgsm\_colour\_logo\_512.png) | ![LinuxGSM\_colour\_black\_logo](../.gitbook/assets/linuxgsm\_colour\_black\_logo\_512.png) | ![LinuxGSM\_colour\_white\_logo](../.gitbook/assets/linuxgsm\_colour\_white\_logo\_512.png) | ![LinuxGSM\_black\_logo](../.gitbook/assets/linuxgsm\_black\_logo\_512.png) | ![LinuxGSM\_white\_logo](../.gitbook/assets/linuxgsm\_white\_logo\_512.png) | -| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| Original | Colour Black | Colour White | Black | White | -| [.svg](https://github.com/GameServerManagers/LinuxGSM-Docs/tree/7a49c2c1480a685adb1574c8965f1a149fb9d874/images/brand/colour/LinuxGSM\_colour\_logo.svg) [.png](https://github.com/GameServerManagers/LinuxGSM-Docs/tree/7a49c2c1480a685adb1574c8965f1a149fb9d874/images/brand/colour/LinuxGSM\_colour\_logo\_512.png) | [.svg](https://github.com/GameServerManagers/LinuxGSM-Docs/tree/7a49c2c1480a685adb1574c8965f1a149fb9d874/images/brand/colour\_black/LinuxGSM\_colour\_black\_logo.svg) [.png](https://github.com/GameServerManagers/LinuxGSM-Docs/tree/7a49c2c1480a685adb1574c8965f1a149fb9d874/images/brand/colour\_black/LinuxGSM\_colour\_black\_logo\_512.png) | [.svg](https://github.com/GameServerManagers/LinuxGSM-Docs/tree/7a49c2c1480a685adb1574c8965f1a149fb9d874/images/brand/colour\_white/LinuxGSM\_colour\_white\_logo.svg) [.png](https://github.com/GameServerManagers/LinuxGSM-Docs/tree/7a49c2c1480a685adb1574c8965f1a149fb9d874/images/brand/colour\_white/LinuxGSM\_colour\_white\_logo\_512.png) | [.svg](https://github.com/GameServerManagers/LinuxGSM-Docs/tree/7a49c2c1480a685adb1574c8965f1a149fb9d874/images/brand/black/LinuxGSM\_black\_logo.svg) [.png](https://github.com/GameServerManagers/LinuxGSM-Docs/tree/7a49c2c1480a685adb1574c8965f1a149fb9d874/images/brand/black/LinuxGSM\_black\_logo\_512.png) | [.svg](https://github.com/GameServerManagers/LinuxGSM-Docs/tree/7a49c2c1480a685adb1574c8965f1a149fb9d874/images/brand/white/LinuxGSM\_white\_logo.svg) [.png](https://github.com/GameServerManagers/LinuxGSM-Docs/tree/7a49c2c1480a685adb1574c8965f1a149fb9d874/images/brand/white/LinuxGSM\_white\_logo\_512.png) | +| ![LinuxGSM_colour_logo](../.gitbook/assets/linuxgsm_colour_logo_512.png) | ![LinuxGSM_colour_black_logo](../.gitbook/assets/linuxgsm_colour_black_logo_512.png) | ![LinuxGSM_colour_white_logo](../.gitbook/assets/linuxgsm_colour_white_logo_512.png) | ![LinuxGSM_black_logo](../.gitbook/assets/linuxgsm_black_logo_512.png) | ![LinuxGSM_white_logo](../.gitbook/assets/linuxgsm_white_logo_512.png) | +| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| Original | Colour Black | Colour White | Black | White | +| [.svg](https://github.com/GameServerManagers/LinuxGSM-Docs/tree/7a49c2c1480a685adb1574c8965f1a149fb9d874/images/brand/colour/LinuxGSM_colour_logo.svg) [.png](https://github.com/GameServerManagers/LinuxGSM-Docs/tree/7a49c2c1480a685adb1574c8965f1a149fb9d874/images/brand/colour/LinuxGSM_colour_logo_512.png) | [.svg](https://github.com/GameServerManagers/LinuxGSM-Docs/tree/7a49c2c1480a685adb1574c8965f1a149fb9d874/images/brand/colour_black/LinuxGSM_colour_black_logo.svg) [.png](https://github.com/GameServerManagers/LinuxGSM-Docs/tree/7a49c2c1480a685adb1574c8965f1a149fb9d874/images/brand/colour_black/LinuxGSM_colour_black_logo_512.png) | [.svg](https://github.com/GameServerManagers/LinuxGSM-Docs/tree/7a49c2c1480a685adb1574c8965f1a149fb9d874/images/brand/colour_white/LinuxGSM_colour_white_logo.svg) [.png](https://github.com/GameServerManagers/LinuxGSM-Docs/tree/7a49c2c1480a685adb1574c8965f1a149fb9d874/images/brand/colour_white/LinuxGSM_colour_white_logo_512.png) | [.svg](https://github.com/GameServerManagers/LinuxGSM-Docs/tree/7a49c2c1480a685adb1574c8965f1a149fb9d874/images/brand/black/LinuxGSM_black_logo.svg) [.png](https://github.com/GameServerManagers/LinuxGSM-Docs/tree/7a49c2c1480a685adb1574c8965f1a149fb9d874/images/brand/black/LinuxGSM_black_logo_512.png) | [.svg](https://github.com/GameServerManagers/LinuxGSM-Docs/tree/7a49c2c1480a685adb1574c8965f1a149fb9d874/images/brand/white/LinuxGSM_white_logo.svg) [.png](https://github.com/GameServerManagers/LinuxGSM-Docs/tree/7a49c2c1480a685adb1574c8965f1a149fb9d874/images/brand/white/LinuxGSM_white_logo_512.png) | ## Logo + Wordmark > The "LinuxGSM" Logo with text -| ![LinuxGSM\_colour\_logo\_wordmark](../.gitbook/assets/linuxgsm\_colour\_logo\_wordmark\_512.png) | ![LinuxGSM\_colour\_black\_logo\_wordmark](../.gitbook/assets/linuxgsm\_colour\_black\_logo\_wordmark\_512.png) | ![LinuxGSM\_colour\_white\_logo\_wordmark](../.gitbook/assets/linuxgsm\_colour\_white\_logo\_wordmark\_512.png) | ![LinuxGSM\_colour\_white\_logo\_wordmark](../.gitbook/assets/linuxgsm\_black\_logo\_wordmark\_512.png) | ![LinuxGSM\_white\_logo\_wordmark](../.gitbook/assets/linuxgsm\_white\_logo\_wordmark\_512.png) | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Original | Colour Black | Colour White | Black | White | -| [.svg](https://github.com/GameServerManagers/LinuxGSM-Docs/tree/7a49c2c1480a685adb1574c8965f1a149fb9d874/images/brand/colour/LinuxGSM\_colour\_logo\_wordmark.svg) [.png](https://github.com/GameServerManagers/LinuxGSM-Docs/tree/7a49c2c1480a685adb1574c8965f1a149fb9d874/images/brand/colour/LinuxGSM\_colour\_logo\_wordmark\_512.png) | [.svg](https://github.com/GameServerManagers/LinuxGSM-Docs/tree/7a49c2c1480a685adb1574c8965f1a149fb9d874/images/brand/colour\_black/LinuxGSM\_colour\_black\_logo\_wordmark.svg) [.png](https://github.com/GameServerManagers/LinuxGSM-Docs/tree/7a49c2c1480a685adb1574c8965f1a149fb9d874/images/brand/colour\_black/LinuxGSM\_colour\_black\_logo\_wordmark\_512.png) | [.svg](https://github.com/GameServerManagers/LinuxGSM-Docs/tree/7a49c2c1480a685adb1574c8965f1a149fb9d874/images/brand/colour\_white/LinuxGSM\_colour\_white\_logo\_wordmark.svg) [.png](https://github.com/GameServerManagers/LinuxGSM-Docs/tree/7a49c2c1480a685adb1574c8965f1a149fb9d874/images/brand/colour\_white/LinuxGSM\_colour\_white\_logo\_wordmark\_512.png) | [.svg](https://github.com/GameServerManagers/LinuxGSM-Docs/tree/7a49c2c1480a685adb1574c8965f1a149fb9d874/images/brand/black/LinuxGSM\_black\_logo\_wordmark.svg) [.png](https://github.com/GameServerManagers/LinuxGSM-Docs/tree/7a49c2c1480a685adb1574c8965f1a149fb9d874/images/brand/black/LinuxGSM\_black\_logo\_wordmark\_512.png) | [.svg](https://github.com/GameServerManagers/LinuxGSM-Docs/tree/7a49c2c1480a685adb1574c8965f1a149fb9d874/images/brand/white/LinuxGSM\_white\_logo\_wordmark.svg) [.png](https://github.com/GameServerManagers/LinuxGSM-Docs/tree/7a49c2c1480a685adb1574c8965f1a149fb9d874/images/brand/white/LinuxGSM\_white\_logo\_wordmark\_512.png) | +| ![LinuxGSM_colour_logo_wordmark](../.gitbook/assets/linuxgsm_colour_logo_wordmark_512.png) | ![LinuxGSM_colour_black_logo_wordmark](../.gitbook/assets/linuxgsm_colour_black_logo_wordmark_512.png) | ![LinuxGSM_colour_white_logo_wordmark](../.gitbook/assets/linuxgsm_colour_white_logo_wordmark_512.png) | ![LinuxGSM_colour_white_logo_wordmark](../.gitbook/assets/linuxgsm_black_logo_wordmark_512.png) | ![LinuxGSM_white_logo_wordmark](../.gitbook/assets/linuxgsm_white_logo_wordmark_512.png) | +| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| Original | Colour Black | Colour White | Black | White | +| [.svg](https://github.com/GameServerManagers/LinuxGSM-Docs/tree/7a49c2c1480a685adb1574c8965f1a149fb9d874/images/brand/colour/LinuxGSM_colour_logo_wordmark.svg) [.png](https://github.com/GameServerManagers/LinuxGSM-Docs/tree/7a49c2c1480a685adb1574c8965f1a149fb9d874/images/brand/colour/LinuxGSM_colour_logo_wordmark_512.png) | [.svg](https://github.com/GameServerManagers/LinuxGSM-Docs/tree/7a49c2c1480a685adb1574c8965f1a149fb9d874/images/brand/colour_black/LinuxGSM_colour_black_logo_wordmark.svg) [.png](https://github.com/GameServerManagers/LinuxGSM-Docs/tree/7a49c2c1480a685adb1574c8965f1a149fb9d874/images/brand/colour_black/LinuxGSM_colour_black_logo_wordmark_512.png) | [.svg](https://github.com/GameServerManagers/LinuxGSM-Docs/tree/7a49c2c1480a685adb1574c8965f1a149fb9d874/images/brand/colour_white/LinuxGSM_colour_white_logo_wordmark.svg) [.png](https://github.com/GameServerManagers/LinuxGSM-Docs/tree/7a49c2c1480a685adb1574c8965f1a149fb9d874/images/brand/colour_white/LinuxGSM_colour_white_logo_wordmark_512.png) | [.svg](https://github.com/GameServerManagers/LinuxGSM-Docs/tree/7a49c2c1480a685adb1574c8965f1a149fb9d874/images/brand/black/LinuxGSM_black_logo_wordmark.svg) [.png](https://github.com/GameServerManagers/LinuxGSM-Docs/tree/7a49c2c1480a685adb1574c8965f1a149fb9d874/images/brand/black/LinuxGSM_black_logo_wordmark_512.png) | [.svg](https://github.com/GameServerManagers/LinuxGSM-Docs/tree/7a49c2c1480a685adb1574c8965f1a149fb9d874/images/brand/white/LinuxGSM_white_logo_wordmark.svg) [.png](https://github.com/GameServerManagers/LinuxGSM-Docs/tree/7a49c2c1480a685adb1574c8965f1a149fb9d874/images/brand/white/LinuxGSM_white_logo_wordmark_512.png) | ## Logo + Wordmark Short > A variation of the "LinuxGSM" Logo with text -| ![LinuxGSM\_colour\_logo\_wordmark](../.gitbook/assets/linuxgsm\_colour\_logo\_wordmark\_short\_512.png) | ![LinuxGSM\_colour\_black\_logo\_wordmark\_short](../.gitbook/assets/linuxgsm\_colour\_black\_logo\_wordmark\_short\_512.png) | ![LinuxGSM\_colour\_white\_logo\_wordmark\_short](../.gitbook/assets/linuxgsm\_colour\_white\_logo\_wordmark\_short\_512.png) | ![LinuxGSM\_colour\_white\_logo\_wordmark\_short](../.gitbook/assets/linuxgsm\_black\_logo\_wordmark\_short\_512.png) | ![LinuxGSM\_white\_logo\_wordmark\_short](../.gitbook/assets/linuxgsm\_white\_logo\_wordmark\_short\_512.png) | -| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Original | Colour Black | Colour White | Black | White | -| [.svg](https://github.com/GameServerManagers/LinuxGSM-Docs/tree/7a49c2c1480a685adb1574c8965f1a149fb9d874/images/brand/colour/LinuxGSM\_colour\_logo\_wordmark\_short.svg) [.png](https://github.com/GameServerManagers/LinuxGSM-Docs/tree/7a49c2c1480a685adb1574c8965f1a149fb9d874/images/brand/colour/LinuxGSM\_colour\_logo\_wordmark\_short\_512.png) | [.svg](https://github.com/GameServerManagers/LinuxGSM-Docs/tree/7a49c2c1480a685adb1574c8965f1a149fb9d874/images/brand/colour\_black/LinuxGSM\_colour\_black\_logo\_wordmark\_short.svg) [.png](https://github.com/GameServerManagers/LinuxGSM-Docs/tree/7a49c2c1480a685adb1574c8965f1a149fb9d874/images/brand/colour\_black/LinuxGSM\_colour\_black\_logo\_wordmark\_short\_512.png) | [.svg](https://github.com/GameServerManagers/LinuxGSM-Docs/tree/7a49c2c1480a685adb1574c8965f1a149fb9d874/images/brand/colour\_white/LinuxGSM\_colour\_white\_logo\_wordmark\_short.svg) [.png](https://github.com/GameServerManagers/LinuxGSM-Docs/tree/7a49c2c1480a685adb1574c8965f1a149fb9d874/images/brand/colour\_white/LinuxGSM\_colour\_white\_logo\_wordmark\_short\_512.png) | [.svg](https://github.com/GameServerManagers/LinuxGSM-Docs/tree/7a49c2c1480a685adb1574c8965f1a149fb9d874/images/brand/black/LinuxGSM\_black\_logo\_wordmark.svg) [.png](https://github.com/GameServerManagers/LinuxGSM-Docs/tree/7a49c2c1480a685adb1574c8965f1a149fb9d874/images/brand/black/LinuxGSM\_black\_logo\_wordmark\_short\_512.png) | [.svg](https://github.com/GameServerManagers/LinuxGSM-Docs/tree/7a49c2c1480a685adb1574c8965f1a149fb9d874/images/brand/white/LinuxGSM\_white\_logo\_wordmark.svg) [.png](https://github.com/GameServerManagers/LinuxGSM-Docs/tree/7a49c2c1480a685adb1574c8965f1a149fb9d874/images/brand/white/LinuxGSM\_white\_logo\_wordmark\_short\_512.png) | +| ![LinuxGSM_colour_logo_wordmark](../.gitbook/assets/linuxgsm_colour_logo_wordmark_short_512.png) | ![LinuxGSM_colour_black_logo_wordmark_short](../.gitbook/assets/linuxgsm_colour_black_logo_wordmark_short_512.png) | ![LinuxGSM_colour_white_logo_wordmark_short](../.gitbook/assets/linuxgsm_colour_white_logo_wordmark_short_512.png) | ![LinuxGSM_colour_white_logo_wordmark_short](../.gitbook/assets/linuxgsm_black_logo_wordmark_short_512.png) | ![LinuxGSM_white_logo_wordmark_short](../.gitbook/assets/linuxgsm_white_logo_wordmark_short_512.png) | +| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| Original | Colour Black | Colour White | Black | White | +| [.svg](https://github.com/GameServerManagers/LinuxGSM-Docs/tree/7a49c2c1480a685adb1574c8965f1a149fb9d874/images/brand/colour/LinuxGSM_colour_logo_wordmark_short.svg) [.png](https://github.com/GameServerManagers/LinuxGSM-Docs/tree/7a49c2c1480a685adb1574c8965f1a149fb9d874/images/brand/colour/LinuxGSM_colour_logo_wordmark_short_512.png) | [.svg](https://github.com/GameServerManagers/LinuxGSM-Docs/tree/7a49c2c1480a685adb1574c8965f1a149fb9d874/images/brand/colour_black/LinuxGSM_colour_black_logo_wordmark_short.svg) [.png](https://github.com/GameServerManagers/LinuxGSM-Docs/tree/7a49c2c1480a685adb1574c8965f1a149fb9d874/images/brand/colour_black/LinuxGSM_colour_black_logo_wordmark_short_512.png) | [.svg](https://github.com/GameServerManagers/LinuxGSM-Docs/tree/7a49c2c1480a685adb1574c8965f1a149fb9d874/images/brand/colour_white/LinuxGSM_colour_white_logo_wordmark_short.svg) [.png](https://github.com/GameServerManagers/LinuxGSM-Docs/tree/7a49c2c1480a685adb1574c8965f1a149fb9d874/images/brand/colour_white/LinuxGSM_colour_white_logo_wordmark_short_512.png) | [.svg](https://github.com/GameServerManagers/LinuxGSM-Docs/tree/7a49c2c1480a685adb1574c8965f1a149fb9d874/images/brand/black/LinuxGSM_black_logo_wordmark.svg) [.png](https://github.com/GameServerManagers/LinuxGSM-Docs/tree/7a49c2c1480a685adb1574c8965f1a149fb9d874/images/brand/black/LinuxGSM_black_logo_wordmark_short_512.png) | [.svg](https://github.com/GameServerManagers/LinuxGSM-Docs/tree/7a49c2c1480a685adb1574c8965f1a149fb9d874/images/brand/white/LinuxGSM_white_logo_wordmark.svg) [.png](https://github.com/GameServerManagers/LinuxGSM-Docs/tree/7a49c2c1480a685adb1574c8965f1a149fb9d874/images/brand/white/LinuxGSM_white_logo_wordmark_short_512.png) | ## Avatar diff --git a/other/server-migration.md b/other/server-migration.md index d33a011d..b5aa462e 100644 --- a/other/server-migration.md +++ b/other/server-migration.md @@ -13,4 +13,3 @@ It is possible to migrate an exising game server to LinuxGSM. 9. Run update to make sure you are up-to-date `./gameserver update` 10. Test that the server works. 11. Once complete delete `serverfilesbak` - diff --git a/requirements/README.md b/requirements/README.md index 1b8b4c16..3c3f15c7 100644 --- a/requirements/README.md +++ b/requirements/README.md @@ -1,4 +1 @@ # Dependencies - - - diff --git a/requirements/gamedig.md b/requirements/gamedig.md index 4d9614da..0076b5e6 100644 --- a/requirements/gamedig.md +++ b/requirements/gamedig.md @@ -14,7 +14,7 @@ If you already have an older version of nodejs installed or be having issues wit #### Ubuntu/Debian -``` +```bash sudo apt remove --purge nodejs npm sudo apt clean sudo apt autoclean @@ -46,7 +46,7 @@ Installing nodejs can be problematic, however, using the below should work well. Once nodejs is installed use npm to install gamedig with the following command. -``` +```bash npm install gamedig -g ``` @@ -54,13 +54,13 @@ npm install gamedig -g Updates to GameDig are regularly made. It is possible to update by running the npm update command. -``` +```bash npm update -g ``` You can also see which version of gamedig is installed by running the following. -``` +```bash npm list -g gamedig ``` @@ -70,59 +70,59 @@ You can also see which version of gamedig is installed by running the following. Extra info becomes available for game server details. -``` +```text Players: 0/8 Current Map: Outpost ``` ## Raw output -``` +```bash gamedig --type "protocol-valve" --host "1.2.3.4" --port "27015" ``` -``` +```json { - "name": "LinuxGSM Server", - "map": "StationKappa", - "password": false, - "raw": { - "protocol": 17, - "folder": "StickyBots", - "game": "StickyBots", - "steamappid": 0, - "numplayers": 0, - "numbots": 0, - "listentype": "d", - "environment": "l", - "secure": 0, - "version": "0.0.6.22", - "port": 7777, - "steamid": "90122418420694019", - "tags": "BUILDID:622,OWNINGID:90122418420694019,OWNINGNAME:LinuxGSM Server,P2PADDR:90122418420694019,P2PPORT:7777,SESSIONFLAGS:171", - "gameid": "889400", - "rules": { - "BUILDID_i": "622", - "NP_i": "0", - "OWNINGID": "90122418420694019", - "OWNINGNAME": "LinuxGSM Server", - "P2PADDR": "90122418420694019", - "P2PPORT": "7777", - "SESSIONFLAGS": "171", - "SN_s": "LinuxGSM Server" - } - }, - "maxplayers": 8, - "players": [], - "bots": [], - "query": { - "host": "1.2.3.4", - "address": "1.2.3.4", - "port": 27015, - "port_query": 27015, - "type": "protocol-valve", - "duration": 90, - "attempts": 1 - } + "name": "LinuxGSM Server", + "map": "StationKappa", + "password": false, + "raw": { + "protocol": 17, + "folder": "StickyBots", + "game": "StickyBots", + "steamappid": 0, + "numplayers": 0, + "numbots": 0, + "listentype": "d", + "environment": "l", + "secure": 0, + "version": "0.0.6.22", + "port": 7777, + "steamid": "90122418420694019", + "tags": "BUILDID:622,OWNINGID:90122418420694019,OWNINGNAME:LinuxGSM Server,P2PADDR:90122418420694019,P2PPORT:7777,SESSIONFLAGS:171", + "gameid": "889400", + "rules": { + "BUILDID_i": "622", + "NP_i": "0", + "OWNINGID": "90122418420694019", + "OWNINGNAME": "LinuxGSM Server", + "P2PADDR": "90122418420694019", + "P2PPORT": "7777", + "SESSIONFLAGS": "171", + "SN_s": "LinuxGSM Server" + } + }, + "maxplayers": 8, + "players": [], + "bots": [], + "query": { + "host": "1.2.3.4", + "address": "1.2.3.4", + "port": 27015, + "port_query": 27015, + "type": "protocol-valve", + "duration": 90, + "attempts": 1 + } } ``` diff --git a/requirements/glibc.md b/requirements/glibc.md index 63d6f1c1..e363f39f 100644 --- a/requirements/glibc.md +++ b/requirements/glibc.md @@ -12,16 +12,16 @@ A complete list can be found [here](https://linuxgsm.com/data/glibc). List of distros and there glibc version. -| Distro | glibc | -| :--- | :--- | -| CentOS 7 | 2.17 | -| CentOS 8 | 2.28 | -| Debian 9 | 2.24 | -| Debian 10 | 2.28 | -| Debian 11 | 2.31 | -| Ubuntu 16.04 LTS | 2.23 | -| Ubuntu 18.04 LTS | 2.27 | -| Ubuntu 20.04 LTS | 2.31 | +| Distro | glibc | +| :--------------- | :---- | +| CentOS 7 | 2.17 | +| CentOS 8 | 2.28 | +| Debian 9 | 2.24 | +| Debian 10 | 2.28 | +| Debian 11 | 2.31 | +| Ubuntu 16.04 LTS | 2.23 | +| Ubuntu 18.04 LTS | 2.27 | +| Ubuntu 20.04 LTS | 2.31 | [distrowatch.com](http://distrowatch.com) is also a great source to find this information. @@ -29,6 +29,5 @@ glibc version history available on [Wikipedia](https://en.wikipedia.org/wiki/GNU ## External Links -* [distrowatch.com](http://distrowatch.com/) -* [glibc Homepage](http://www.gnu.org/software/libc/) - +- [distrowatch.com](http://distrowatch.com/) +- [glibc Homepage](http://www.gnu.org/software/libc/) diff --git a/requirements/java.md b/requirements/java.md index 5e1de5de..6b35d978 100644 --- a/requirements/java.md +++ b/requirements/java.md @@ -12,7 +12,7 @@ If you are unsure which version to choose simply pick the default JRE. To install the most up to date JRE for the distro run: -``` +```bash apt install default-jre ``` @@ -20,19 +20,19 @@ apt install default-jre For `openjdk`, run the following changing the version number: -``` +```bash apt install openjdk-8-jre ``` -``` +```bash apt install openjdk-11-jre ``` -``` +```bash apt install openjdk-16-jre ``` -``` +```bash apt install openjdk-17-jre ``` @@ -40,11 +40,11 @@ apt install openjdk-17-jre Run the following command, changing the version number: -``` +```bash yum install java-1.8.0-openjdk ``` -``` +```bash yum install java-11-openjdk ``` diff --git a/requirements/jq.md b/requirements/jq.md index 810108d7..f9df17a0 100644 --- a/requirements/jq.md +++ b/requirements/jq.md @@ -2,13 +2,12 @@ `jq` allows LinuxGSM to filter json files to extract specific useful data. -| Distro | Version | -| :--- | :--- | -| Ubuntu LTS 16.04 | 1.4 | -| Ubuntu LTS 18.04 | 1.5 | -| Debian 8 | 1.4 | -| Debian 9 | 1.5 | -| Debian 10 | 1.5 | -| CentOS 7 | 1.6 | -| CentOS 8 | 1.5 | - +| Distro | Version | +| :--------------- | :------ | +| Ubuntu LTS 16.04 | 1.4 | +| Ubuntu LTS 18.04 | 1.5 | +| Debian 8 | 1.4 | +| Debian 9 | 1.5 | +| Debian 10 | 1.5 | +| CentOS 7 | 1.6 | +| CentOS 8 | 1.5 | diff --git a/requirements/tmux.md b/requirements/tmux.md index 4ccb2bd9..961b4471 100644 --- a/requirements/tmux.md +++ b/requirements/tmux.md @@ -1,7 +1,5 @@ # tmux - -
LinuxGSM uses [tmux](https://tmux.github.io) to run servers in the background so the server instance is not terminated when you close a terminal session. @@ -10,15 +8,15 @@ LinuxGSM uses [tmux](https://tmux.github.io) to run servers in the background so LinuxGSM requires _tmux => 1.6_ {% endhint %} -Tmux is a key component of LinuxGSM and replaced [screen](http://en.wikipedia.org/wiki/GNU\_Screen) which was used on earlier versions. tmux has a few improvements over screen; mainly being better at handling standard Linux users, this was a major issue when developing with screen. tmux allows LinuxGSM to call up a game server running in the background so you can see what it is doing; this feature is available with [console](../commands/console.md) feature. +Tmux is a key component of LinuxGSM and replaced [screen](http://en.wikipedia.org/wiki/GNU_Screen) which was used on earlier versions. tmux has a few improvements over screen; mainly being better at handling standard Linux users, this was a major issue when developing with screen. tmux allows LinuxGSM to call up a game server running in the background so you can see what it is doing; this feature is available with [console](../commands/console.md) feature. ![LinuxGSM using tmux in console](../.gitbook/assets/xeficdv.png) -### tmuxception +## tmuxception Some server admins have attempted to run LinuxGSM within a `tmux` or `screen` session. As LinuxGSM calls tmux it is not possible to run LinuxGSM within a tmux or screen session. -![](../.gitbook/assets/tmuxception.png) +![Tmuxception meme](../.gitbook/assets/tmuxception.png) ## Known Issues @@ -34,23 +32,23 @@ tmux 1.8 is installed on CentOS 7 by default see guide below to installed a newe This issue normally occuires with CentOS and is caused by the standard user not having permissions to user _`/dev/ptmx`_. -``` +```text create session failed: ./srcds_linux -game csgo: Operation not permitted ``` To fix this the user needs to be part of the `tty` group. -``` +```bash usermod -G tty csgoserver ``` To confirm the user has been added check _`/etc/group`_. -``` +```bash grep tty /etc/group ``` -``` +```bash tty:x:5:csgoserver ``` @@ -60,18 +58,18 @@ If the default version of tmux (1.8) installed on CentOS 7 it will fail to log t Install Ghettoforge with the following command. -``` +```bash yum install http://mirror.ghettoforge.org/distributions/gf/gf-release-latest.gf.el7.noarch.rpm ``` Install tmux using the Ghettoforge repo. -``` +```bash yum --enablerepo=gf-plus install tmux ``` Once installed restart the server to complete the upgrade. -``` +```bash restart ``` diff --git a/steamcmd/README.md b/steamcmd/README.md index f85258a3..410bffe0 100644 --- a/steamcmd/README.md +++ b/steamcmd/README.md @@ -1,8 +1,8 @@ # SteamCMD -![](<../.gitbook/assets/steamcmd (1).png>) +![SteamCMD Logo](<../.gitbook/assets/steamcmd (1).png>) -SteamCMD is a command-line based Steam client developed by Valve that is used to remotely download game files. This is very useful for game servers, as it is significantly easier to keep them up-to-date. Any game that supports dedicated servers will have its server files available on SteamCMD. All you need is the AppID which can be found on Valve's [wiki](https://developer.valvesoftware.com/wiki/Dedicated\_Servers\_List) or [SteamDB](https://steamdb.info/search/?a=app\&q=server). +SteamCMD is a command-line based Steam client developed by Valve that is used to remotely download game files. This is very useful for game servers, as it is significantly easier to keep them up-to-date. Any game that supports dedicated servers will have its server files available on SteamCMD. All you need is the AppID which can be found on Valve's [wiki](https://developer.valvesoftware.com/wiki/Dedicated_Servers_List) or [SteamDB](https://steamdb.info/search/?a=app&q=server). {% hint style="info" %} You can only download server files for the operating system that you are using SteamCMD on. @@ -26,7 +26,7 @@ Some game servers require you to login to SteamCMD using a steam login to allow If this is the case LinuxGSM will prompt you on installation to set a steam _username_ and _password._ This can be set by editing the following settings within the [LinuxGSM config](../configuration/linuxgsm-config.md). -``` +```bash ## SteamCMD Login steamuser="username" steampass="password" @@ -55,7 +55,7 @@ Steam Guard is an additional layer of security that can be applied to a Steam ac If Steam Guard is enabled on an account when a login to from an unrecognized device happens an access code will be required as verification. Depending on the account Steam Guard settings, either an email with a code or a code from the Steam Mobile app on a smartphone is required. {% hint style="info" %} -For more info visit [steam support](https://support.steampowered.com/kb\_article.php?ref=4020-ALZM-5519). +For more info visit [steam support](https://support.steampowered.com/kb_article.php?ref=4020-ALZM-5519). {% endhint %} ### Authentication Methods for SteamCMD @@ -64,24 +64,22 @@ For more info visit [steam support](https://support.steampowered.com/kb\_article 2. Username and password - Steam Guard via Email 3. Username and password - Steam Guard via Smartphone (not compatible with LinuxGSM) -**Username and Password - No Steam Guard** +### Username and Password - No Steam Guard Simply requires your Steam username and password. -**Username and Password - Steam Guard via Email** +### Username and Password - Steam Guard via Email Requires your Steam username and password and you will also receive an email on the first login to SteamCMD and be required to enter a code. Once the code is entered your server is authorised to use the steam account you entered. -**Username and Password - Steam Guard via Smartphone (not compatible with LinuxGSM)** +### Username and Password - Steam Guard via Smartphone (not compatible with LinuxGSM) Requires your Steam Username & Password but also requires you have the Steam app on your phone to use 2-factor Authentication. -### Using Steam Guard with LinuxGSM +## Using Steam Guard with LinuxGSM Both options 1 & 2 work with LinuxGSM. Steam Guard via Smartphone is not compatible because it requires a code every time you login to SteamCMD. This is problematic if you want your game servers to auto-update. If you have Steam Guard via email enabled the first time you start SteamCMD you will be prompted to enter a steam Guard code and you will receive an email with the code. Copy and paste the code into the prompt and press enter. You will not need to enter a code again. - -## diff --git a/steamcmd/branch.md b/steamcmd/branch.md index 8ffdd177..4faad4d4 100644 --- a/steamcmd/branch.md +++ b/steamcmd/branch.md @@ -16,7 +16,7 @@ A list of all available branches for a game server are listed on SteamDB under t ## Select a Branch -The default SteamCMD branch is `public`. However, it is possible to use other builds by entering a branch name in the `branch` setting in your [LinuxGSM config](../configuration/linuxgsm-config.md). +The default SteamCMD branch is `public`. However, it is possible to use other builds by entering a branch name in the `branch` setting in your [LinuxGSM config](../configuration/linuxgsm-config.md). ```text # Steam App Branch Select @@ -31,4 +31,3 @@ Some branches require a password. This can be done by entering a password in the ```text betapassword="branchpassword" ``` - diff --git a/steamcmd/errors.md b/steamcmd/errors.md index 4289a661..7fb835bb 100644 --- a/steamcmd/errors.md +++ b/steamcmd/errors.md @@ -16,11 +16,14 @@ SteamCMD uses hexadecimal numbers to give its current "state". Every time SteamC Seems to affect HLDS based servers. Running again often fixes the issue -``` +```text Error! App '90' state is 0x10E after update job. ``` -
ReasonError! App '90' state is 0x10E after update job.
Hex0x10EReason
Decimal/StateFlags270Hex
+| 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. ``` -
ReasonNo connection to content servers
Reason 2Received 401 (Unauthorized) HTTP response for depot 11
Hex0x6
Decimal/StateFlags6
+| 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 bcfcdf22..9ee55b1a 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 131ab2e2..76100157 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 fe8605a5..a3bf63cf 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 c1b9fac2..7c89e420 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 55c896ef..dea6c5c6 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,20 +18,20 @@ 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 @@ -64,13 +64,13 @@ yum install tmux 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) @@ -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,8 +116,6 @@ 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. 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. @@ -141,7 +139,7 @@ Find and edit the following line and change it to the IP address you want to use ip="0.0.0.0" ``` -## version \`GLIBC\_2.15′ not found +## version \`GLIBC_2.15′ not found ``` version `GLIBC_2.15′ not found @@ -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. @@ -232,15 +230,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 +246,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? diff --git a/support/game-server.md b/support/game-server.md index 34bc72ed..7c0348ca 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 38029307..5e3e1a31 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/)