Przeglądaj źródła

Merge remote-tracking branch 'origin/develop' into develop

UltimateByte 8 lat temu
rodzic
commit
3882ab51d4
100 zmienionych plików z 999 dodań i 1720 usunięć
  1. 15 0
      .github/request-info.yml
  2. 15 0
      .github/support.yml
  3. 21 0
      .github/welcome.yml
  4. 11 4
      .travis.yml
  5. 2 2
      CONTRIBUTING.md
  6. 13 4
      ISSUE_TEMPLATE.md
  7. 0 0
      README.md
  8. BIN
      images/icons/centos-icon-32.png
  9. BIN
      images/icons/debian-icon-32.png
  10. BIN
      images/icons/ubuntu-icon-32.png
  11. 0 3
      images/logo/README.md
  12. BIN
      images/logo/apple-touch-icon-precomposed.png
  13. BIN
      images/logo/assets/lgsm-font-pt_sans.zip
  14. BIN
      images/logo/assets/lgsm-font-source_code_pro.zip
  15. 0 238
      images/logo/assets/svg/linuxgsm_black_gradiant_vector.svg
  16. 0 304
      images/logo/assets/svg/linuxgsm_black_gradiant_vector_full.svg
  17. 0 286
      images/logo/assets/svg/linuxgsm_black_vector.svg
  18. 0 248
      images/logo/assets/svg/linuxgsm_white_vector.svg
  19. 0 324
      images/logo/assets/svg/linuxgsm_white_vector_full.svg
  20. BIN
      images/logo/facebook.png
  21. BIN
      images/logo/lgsm-dark-full.png
  22. BIN
      images/logo/lgsm-dark-square-114.png
  23. BIN
      images/logo/lgsm-dark-square-16.png
  24. BIN
      images/logo/lgsm-dark-square-184.png
  25. BIN
      images/logo/lgsm-dark-square-24.png
  26. BIN
      images/logo/lgsm-dark-square-512.png
  27. BIN
      images/logo/lgsm-dark-square-64.png
  28. BIN
      images/logo/lgsm-light-full.png
  29. BIN
      images/logo/lgsm_full.png
  30. BIN
      images/logo/lgsmbutton.png
  31. BIN
      images/wallpaper/LinuxGSM_wallpaper.png
  32. BIN
      images/wallpaper/LinuxGSM_wallpaper_2.png
  33. 1 1
      lgsm/config-default/config-lgsm/bb2server/_default.cfg
  34. 118 0
      lgsm/config-default/config-lgsm/bdserver/_default.cfg
  35. 1 1
      lgsm/config-default/config-lgsm/bmdmserver/_default.cfg
  36. 1 1
      lgsm/config-default/config-lgsm/boserver/_default.cfg
  37. 120 0
      lgsm/config-default/config-lgsm/bt1944server/_default.cfg
  38. 1 1
      lgsm/config-default/config-lgsm/csgoserver/_default.cfg
  39. 1 1
      lgsm/config-default/config-lgsm/cssserver/_default.cfg
  40. 1 1
      lgsm/config-default/config-lgsm/emserver/_default.cfg
  41. 104 0
      lgsm/config-default/config-lgsm/etlserver/_default.cfg
  42. 1 1
      lgsm/config-default/config-lgsm/gmodserver/_default.cfg
  43. 1 1
      lgsm/config-default/config-lgsm/insserver/_default.cfg
  44. 1 1
      lgsm/config-default/config-lgsm/nmrihserver/_default.cfg
  45. 10 2
      lgsm/config-default/config-lgsm/rustserver/_default.cfg
  46. 118 0
      lgsm/config-default/config-lgsm/rwserver/_default.cfg
  47. 1 1
      lgsm/config-default/config-lgsm/tf2server/_default.cfg
  48. 1 1
      lgsm/config-default/config-lgsm/tuserver/_default.cfg
  49. 1 1
      lgsm/config-default/config-lgsm/ut3server/_default.cfg
  50. 1 1
      lgsm/config-default/config-lgsm/zpsserver/_default.cfg
  51. 4 0
      lgsm/data/serverlist.csv
  52. 3 3
      lgsm/functions/alert.sh
  53. 3 3
      lgsm/functions/alert_discord.sh
  54. 1 1
      lgsm/functions/alert_email.sh
  55. 2 2
      lgsm/functions/alert_ifttt.sh
  56. 2 2
      lgsm/functions/alert_mailgun.sh
  57. 1 1
      lgsm/functions/alert_pushbullet.sh
  58. 4 4
      lgsm/functions/alert_pushover.sh
  59. 2 2
      lgsm/functions/check.sh
  60. 1 1
      lgsm/functions/check_config.sh
  61. 14 14
      lgsm/functions/check_deps.sh
  62. 1 1
      lgsm/functions/check_executable.sh
  63. 2 2
      lgsm/functions/check_glibc.sh
  64. 14 10
      lgsm/functions/check_ip.sh
  65. 1 1
      lgsm/functions/check_logs.sh
  66. 18 18
      lgsm/functions/check_permissions.sh
  67. 2 2
      lgsm/functions/check_root.sh
  68. 3 3
      lgsm/functions/check_status.sh
  69. 2 3
      lgsm/functions/check_steamcmd.sh
  70. 1 1
      lgsm/functions/check_system_dir.sh
  71. 3 3
      lgsm/functions/check_system_requirements.sh
  72. 1 1
      lgsm/functions/check_tmuxception.sh
  73. 15 15
      lgsm/functions/command_backup.sh
  74. 5 5
      lgsm/functions/command_console.sh
  75. 7 7
      lgsm/functions/command_debug.sh
  76. 3 2
      lgsm/functions/command_details.sh
  77. 14 0
      lgsm/functions/command_dev_clear_functions.sh
  78. 1 1
      lgsm/functions/command_dev_debug.sh
  79. 8 8
      lgsm/functions/command_dev_detect_deps.sh
  80. 10 6
      lgsm/functions/command_dev_detect_glibc.sh
  81. 11 7
      lgsm/functions/command_dev_detect_ldd.sh
  82. 44 0
      lgsm/functions/command_dev_query_raw.sh
  83. 9 9
      lgsm/functions/command_fastdl.sh
  84. 1 1
      lgsm/functions/command_install.sh
  85. 1 1
      lgsm/functions/command_install_resources_mta.sh
  86. 3 3
      lgsm/functions/command_mods_install.sh
  87. 4 4
      lgsm/functions/command_mods_remove.sh
  88. 4 4
      lgsm/functions/command_mods_update.sh
  89. 138 66
      lgsm/functions/command_monitor.sh
  90. 3 3
      lgsm/functions/command_postdetails.sh
  91. 1 1
      lgsm/functions/command_restart.sh
  92. 23 22
      lgsm/functions/command_start.sh
  93. 18 18
      lgsm/functions/command_stop.sh
  94. 2 2
      lgsm/functions/command_test_alert.sh
  95. 4 4
      lgsm/functions/command_ts3_server_pass.sh
  96. 1 1
      lgsm/functions/command_update.sh
  97. 1 1
      lgsm/functions/command_update_functions.sh
  98. 5 5
      lgsm/functions/command_update_linuxgsm.sh
  99. 7 7
      lgsm/functions/command_validate.sh
  100. 11 11
      lgsm/functions/command_wipe.sh

+ 15 - 0
.github/request-info.yml

@@ -0,0 +1,15 @@
+# Configuration for request-info - https://github.com/behaviorbot/request-info
+
+# *Required* Comment to reply with
+requestInfoReplyComment: >
+  We require more information for this issue.
+  https://linuxgsm.com/support/#guide
+
+# *OPTIONAL* default titles to check against for lack of descriptiveness
+# MUST BE ALL LOWERCASE
+#requestInfoDefaultTitles:
+#  - update readme.md
+#  - updates
+
+# *OPTIONAL* Label to be added to Issues and Pull Requests with insufficient information given
+requestInfoLabelToAdd: Status: needs more info

+ 15 - 0
.github/support.yml

@@ -0,0 +1,15 @@
+# Configuration for support-requests - https://github.com/dessant/support-requests
+
+# Label used to mark issues as support requests
+supportLabel: Type: support
+# Comment to post on issues marked as support requests. Add a link
+# to a support page, or set to `false` to disable
+supportComment: >
+  We use the issue tracker exclusively for bug reports and feature requests.
+  However, this issue appears to be a support request. Please use our
+  support channels to get help with the project.
+  https://linuxgsm.com/support/
+# Whether to close issues marked as support requests
+close: true
+# Whether to lock issues marked as support requests
+lock: false

+ 21 - 0
.github/welcome.yml

@@ -0,0 +1,21 @@
+# Configuration for welcome - https://github.com/behaviorbot/welcome
+
+# Configuration for new-issue-welcome - https://github.com/behaviorbot/new-issue-welcome
+
+# Comment to be posted to on first time issues
+newIssueWelcomeComment: >
+  Thanks for opening your first issue. Be sure to follow the issue template! and guide for posting. https://linuxgsm.com/support/#guide
+
+# Configuration for new-pr-welcome - https://github.com/behaviorbot/new-pr-welcome
+
+# Comment to be posted to on PRs from first time contributors in your repository
+newPRWelcomeComment: >
+  Thanks for opening this pull request! Please check out our contributing guidelines.
+
+# Configuration for first-pr-merge - https://github.com/behaviorbot/first-pr-merge
+
+# Comment to be posted to on pull requests merged by a first time user
+firstPRMergeComment: >
+  Congrats on merging your first pull request! Thank you for supporting LinuxGSM!
+
+# It is recommend to include as many gifs and emojis as possible

+ 11 - 4
.travis.yml

@@ -30,8 +30,15 @@ addons:
     - libstdc++6:i386
     - libstdc++6:i386
     - net-tools
     - net-tools
     - iproute2
     - iproute2
+    - shellcheck
 
 
-script:
-
-    - bash tests/tests_jc2server.sh
-    - bash tests/tests_ts3server.sh
+jobs:
+  include:
+    - stage: jobs
+      script: bash tests/tests_jc2server.sh
+    - # stage name not required
+      script: bash tests/tests_fctrserver.sh
+    - # stage name not required
+      script: bash tests/tests_ts3server.sh
+    - # stage name not required
+      script: bash tests/tests_shellcheck.sh

+ 2 - 2
CONTRIBUTING.md

@@ -2,7 +2,7 @@
 
 
 We are really glad you're reading this, because if you are then you have shown an interest in helping make LinuxGSM great.
 We are really glad you're reading this, because if you are then you have shown an interest in helping make LinuxGSM great.
 
 
-If you haven't already, come find us on [Discord](https://gameservermanagers.com/discord). From there you will have contact with other contributers of the project. We want you working on things you're excited about.
+If you haven't already, come find us on [Discord](https://linuxgsm.com/discord). From there you will have contact with other contributers of the project. We want you working on things you're excited about.
 
 
 Before working on a project we recommend that you create a issue in regards to the issue/feature. This will prevent duplicates while you work on the feature. If an issue already exists, make note that you are working on it so nobody else wastes their time working on the same project at the same time!
 Before working on a project we recommend that you create a issue in regards to the issue/feature. This will prevent duplicates while you work on the feature. If an issue already exists, make note that you are working on it so nobody else wastes their time working on the same project at the same time!
 
 
@@ -36,4 +36,4 @@ This will help us in understanding your code and determining where problems may
 Start reading our code and you'll get the hang of it. Explore how functions are organized and you'll see how we strive for readable code.
 Start reading our code and you'll get the hang of it. Explore how functions are organized and you'll see how we strive for readable code.
 
 
 Please give the following document a read and adjust your code according to its specifications.
 Please give the following document a read and adjust your code according to its specifications.
-[Syntax & Coding Conventions](https://github.com/GameServerManagers/LinuxGSM/wiki/Syntax-&-Conventions)
+[Syntax & Coding Conventions](https://github.com/GameServerManagers/LinuxGSM/wiki/Syntax-and-Conventions)

+ 13 - 4
ISSUE_TEMPLATE.md

@@ -1,8 +1,17 @@
 Please select the "Preview" tab above to view this message correctly.
 Please select the "Preview" tab above to view this message correctly.
 
 
-Please note that this is an issue tracker for **LinuxGSM** related bugs and feature requests and **not** for the games themselves.
+Follow **[this guide](https://linuxgsm.com/support/#guide)** to make sure you post the correct info.
+For general support visit the **[steam group](https://linuxgsm.com/steam)**
 
 
-**Therefore personal server issues on GitHub will be closed without a kiss.**
+GitHub is **ONLY** for:
+* LinuxGSM bugs
+* feature suggestions
+* code contributions
 
 
-Please follow **[this article](https://github.com/GameServerManagers/LinuxGSM/wiki/Support)** for optimal assistance
-and do not forget to remove this text before opening the issue.
+GitHub is **NOT** for:
+* General support
+* Specific game server issues (e.g CS:GO, TF2)
+* Dedicated server issues (e.g Ubuntu, CentOS)
+* Anything not directly related to LinuxGSM development
+
+**Any general support issues on GitHub will be closed.**

Plik diff jest za duży
+ 0 - 0
README.md


BIN
images/icons/centos-icon-32.png


BIN
images/icons/debian-icon-32.png


BIN
images/icons/ubuntu-icon-32.png


+ 0 - 3
images/logo/README.md

@@ -1,3 +0,0 @@
-# LinuxGSM - Official Logos
-For Reference the original design can be found here.
-http://twolofbees.com/artwork.php?iid=870

BIN
images/logo/apple-touch-icon-precomposed.png


BIN
images/logo/assets/lgsm-font-pt_sans.zip


BIN
images/logo/assets/lgsm-font-source_code_pro.zip


+ 0 - 238
images/logo/assets/svg/linuxgsm_black_gradiant_vector.svg

@@ -1,238 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:xlink="http://www.w3.org/1999/xlink"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   width="550.72363"
-   height="829.10431"
-   id="svg4312"
-   version="1.1"
-   inkscape:version="0.92.1 r15371"
-   sodipodi:docname="lgsm_vecto_s.svg">
-  <title
-     id="title5291">Stycil Tux</title>
-  <defs
-     id="defs4314">
-    <linearGradient
-       id="linearGradient3910-6-0-8-7-7-8">
-      <stop
-         style="stop-color:#000000;stop-opacity:1;"
-         offset="0"
-         id="stop3912-5-9-3-8-7-4" />
-      <stop
-         style="stop-color:#4c4c4c;stop-opacity:1;"
-         offset="1"
-         id="stop3914-0-1-3-0-6-9" />
-    </linearGradient>
-    <linearGradient
-       y2="497.71365"
-       x2="140.00095"
-       y1="230.00362"
-       x1="140.00095"
-       gradientTransform="matrix(3.0012867,0,0,3.0012867,-152.31552,-675.94661)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient4970"
-       xlink:href="#linearGradient3910-6-0-8-7-7-8"
-       inkscape:collect="always" />
-    <linearGradient
-       id="linearGradient3910-6-0-8-7-81">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="0"
-         id="stop3912-5-9-3-8-5" />
-      <stop
-         style="stop-color:#a6a6a6;stop-opacity:1;"
-         offset="1"
-         id="stop3914-0-1-3-0-64" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient4565-3">
-      <stop
-         style="stop-color:#939393;stop-opacity:1;"
-         offset="0"
-         id="stop4567-1" />
-      <stop
-         style="stop-color:#000000;stop-opacity:1;"
-         offset="1"
-         id="stop4569-9" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient4617-7">
-      <stop
-         id="stop4619-9"
-         offset="0"
-         style="stop-color:#ffffff;stop-opacity:0;" />
-      <stop
-         id="stop4621-5"
-         offset="1"
-         style="stop-color:#a6a6a6;stop-opacity:0.5" />
-    </linearGradient>
-    <clipPath
-       clipPathUnits="userSpaceOnUse"
-       id="clipPath4719-2">
-      <rect
-         style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:15;marker:none;enable-background:accumulate"
-         id="rect4721-4"
-         width="1352.3417"
-         height="1135.7903"
-         x="-490.55533"
-         y="-358.505" />
-    </clipPath>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3910-6-0-8-7-7-8"
-       id="linearGradient5197"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(3.0012867,0,0,3.0012867,-152.31552,-675.94661)"
-       x1="140.00095"
-       y1="230.00362"
-       x2="140.00095"
-       y2="497.71365" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3910-6-0-8-7-7-8"
-       id="linearGradient5427"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(3.0012867,0,0,3.0012867,-152.31552,-675.94661)"
-       x1="140.00095"
-       y1="230.00362"
-       x2="140.00095"
-       y2="497.71365" />
-  </defs>
-  <sodipodi:namedview
-     id="base"
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1.0"
-     inkscape:pageopacity="0.0"
-     inkscape:pageshadow="2"
-     inkscape:zoom="0.25"
-     inkscape:cx="89.228893"
-     inkscape:cy="462.02473"
-     inkscape:document-units="px"
-     inkscape:current-layer="g6064"
-     showgrid="false"
-     fit-margin-top="0"
-     fit-margin-left="0"
-     fit-margin-right="0"
-     fit-margin-bottom="0"
-     inkscape:window-width="1920"
-     inkscape:window-height="1017"
-     inkscape:window-x="-8"
-     inkscape:window-y="-8"
-     inkscape:window-maximized="1" />
-  <metadata
-     id="metadata4317">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title>Stycil Tux</dc:title>
-        <dc:creator>
-          <cc:Agent>
-            <dc:title>Cheeseness (Josh Bush)</dc:title>
-          </cc:Agent>
-        </dc:creator>
-        <dc:subject>
-          <rdf:Bag>
-            <rdf:li>tux linux icon</rdf:li>
-          </rdf:Bag>
-        </dc:subject>
-        <dc:description>A stylised stencil (a &quot;stycil&quot; - isn't that catchy) inspired by Larry Ewing's Tux illustration.
-http://en.wikipedia.org/wiki/Tux
-
-You're under no obligation to do so, but if you do something with this, drop me a line - I'd love to hear about it.
-cheese@twolofbees.com</dc:description>
-        <dc:date>2012-01-02</dc:date>
-        <cc:license
-           rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" />
-        <dc:source>http://twolofbees.com/uploads/2012/stycil_tux.svg</dc:source>
-        <dc:relation>http://twolofbees.com/artwork.php?iid=870</dc:relation>
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     id="g6064"
-     transform="translate(56.568542)"
-     style="display:inline">
-    <g
-       transform="translate(-756.17483,-402.59665)"
-       id="g5961-3"
-       style="display:inline">
-      <g
-         transform="translate(-452.34937,725.009)"
-         id="g5391-8-7">
-        <path
-           sodipodi:nodetypes="ccccc"
-           inkscape:connector-curvature="0"
-           id="path5199-1-3-9"
-           d="m 1295.2947,213.49225 v 51.44487 h 265.7241 v -51.44487 z"
-           style="fill:#000000;stroke:none;stroke-width:0.37795275;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
-        <path
-           sodipodi:nodetypes="ccccc"
-           inkscape:connector-curvature="0"
-           id="path5199-9-5-2"
-           d="m 1295.2947,277.56671 v 51.44487 h 265.7241 v -51.44487 z"
-           style="fill:#000000;stroke:none;stroke-width:0.37795275;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
-        <path
-           sodipodi:nodetypes="ccccc"
-           inkscape:connector-curvature="0"
-           id="path5199-8-9-8"
-           d="m 1295.2947,341.64115 v 51.44487 h 265.7241 v -51.44487 z"
-           style="fill:#000000;stroke:none;stroke-width:0.37795275;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
-        <g
-           style="fill:#000000"
-           transform="translate(-0.90575)"
-           id="g5258-9-9">
-          <path
-             inkscape:connector-curvature="0"
-             d="m 1424.625,162.97931 a 4.75,4 0 0 1 -4.75,4 4.75,4 0 0 1 -4.75,-4 4.75,4 0 0 1 4.75,-4 4.75,4 0 0 1 4.75,4 z m 18.375,-0.25 a 4.75,4 0 0 1 -4.75,4 4.75,4 0 0 1 -4.75,-4 4.75,4 0 0 1 4.75,-4 4.75,4 0 0 1 4.75,4 z m -146.7996,-13.31157 v 51.44487 h 265.7241 v -51.44487 z"
-             style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.37795275;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-             id="path5239-0-4-2" />
-        </g>
-      </g>
-      <path
-         style="fill:#000000;stroke:none;stroke-width:0.1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-         d="m 912.26148,854.87423 v 7.27539 c 0,2.79634 4.1201,7.15235 7.0974,7.15235 h 57.0982 57.09622 c 2.9773,0 7.0974,-4.35601 7.0974,-7.15235 v -7.27539 h -64.19362 z"
-         id="path5429-1-9"
-         inkscape:connector-curvature="0" />
-      <path
-         inkscape:connector-curvature="0"
-         style="fill:#000000;stroke:none;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-         d="m 969.04908,749.4172 c -1.2404,0 -6.5507,5.41807 -6.5507,6.21875 v 4.91993 h 0.9531 c 0,43.5553 3.7609,25.12079 3.3398,62.125 0,0.82719 4.4526,3.88671 5.4356,3.88671 v 8.39649 h -1.125 v 1.0625 h -3.2266 v 0.5957 h -48.9883 c -2.8742,0 -6.9863,4.8837 -6.9863,7.15234 v 7.2754 h 128.75002 v -7.2754 c 0,-2.79633 -4.1361,-7.15234 -7.125,-7.15234 h -8.3535 v -0.79492 h -2.166 v -3.18164 h -1.1485 v -1.28125 h -8.9726 -8.9707 v 1.28125 h -1.1485 v 3.18164 h -2.166 v 0.79492 h -16.46682 v -0.5957 h -3.2246 v -1.0625 h -1.1269 v -8.39649 c 0.983,0 5.4355,-3.05952 5.4355,-3.88671 -0.4211,-37.00421 3.3399,-18.5697 3.3398,-62.125 h 0.9532 v -4.91993 c 0,-0.80068 -5.3104,-6.21875 -6.5508,-6.21875 h -6.9551 z"
-         id="path5429-3-7-4" />
-      <path
-         style="fill:none;stroke:#ff00ff;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-         d="m 912.26148,851.05049 v -7.27539 c 0,-2.79634 4.1201,-7.15235 7.0974,-7.15235 h 57.0982 57.09622 c 2.9773,0 7.0974,4.35601 7.0974,7.15235 v 7.27539 h -64.19362 z"
-         id="path5429-7-77-6"
-         inkscape:connector-curvature="0" />
-    </g>
-    <g
-       transform="translate(-55.729306)"
-       id="g5425"
-       style="display:inline">
-      <path
-         style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#f6bd0e;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:16;marker:none;enable-background:accumulate"
-         d="m 116.05923,577.93526 c -3.48,0.20109 -7.3256,1.1375 -11.63,2.90735 -27.54822,11.32986 -15.44643,35.19849 -27.48069,50.27156 -12.03367,15.07396 -36.19673,7.81324 -43.79988,38.64156 -7.60286,30.82892 109.26727,182.19131 172.10487,156.34843 62.838,-25.84288 39.4726,-215.66466 12.3803,-232.22455 -27.0917,-16.55961 -39.0863,5.6223 -58.2436,3.37644 -16.1637,-1.89502 -24.5385,-20.40725 -43.331,-19.32079 z m 316.5418,0 c -17.3826,0.30013 -25.7964,17.496 -41.3614,19.32079 -19.1572,2.24586 -31.1518,-19.93605 -58.2435,-3.37644 -27.0923,16.55989 -50.4576,206.38137 12.3803,232.22455 62.8376,25.84288 179.7077,-125.51951 172.1049,-156.34843 -7.6032,-30.82832 -31.6726,-23.5676 -43.7063,-38.64156 -12.0342,-15.07307 0.069,-38.9417 -27.4803,-50.27156 -5.1656,-2.12371 -9.6822,-2.97637 -13.6937,-2.90735 z"
-         id="path4372-7-9"
-         inkscape:connector-curvature="0"
-         sodipodi:nodetypes="ccccsssccssscccc"
-         inkscape:label="path4372-7-9" />
-      <path
-         style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:url(#linearGradient5427);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:16;marker:none;enable-background:accumulate"
-         d="M 275.31501,-1.7916665e-6 C 194.26645,-1.7916665e-6 146.68586,49.443198 137.72462,116.11228 128.76368,182.78135 143.19147,194.9981 120.74874,263.26927 98.30602,331.53923 -2.31211,448.5711 0.04059,556.5511 c 0.73262,33.61801 4.60398,62.7266 11.34877,88.1628 8.26915,-13.70117 20.521,-23.35722 29.45012,-27.48068 6.9708,-3.21799 10.34005,-4.76544 11.91151,-5.34589 0.2281,-1.72724 1.11168,-5.65953 2.71977,-13.41216 2.20895,-10.64736 10.67498,-27.3186 25.13578,-38.2664 -0.14707,-3.31673 -0.30674,-6.59923 -0.37516,-10.0354 -1.67022,-83.75241 84.89138,-174.48761 100.82462,-227.44141 15.93263,-52.952 9.00175,-58.40504 11.62998,-71.56178 2.62793,-13.15674 12.77468,-28.48221 27.38675,-40.70495 1.39198,-1.1651 2.74677,-1.67532 4.12676,-1.68823 13.32151,-0.12605 26.65263,48.37144 52.42857,48.39576 25.77596,0.03 39.1848,-59.11995 54.02317,-46.70753 14.61207,12.22304 24.75882,27.54821 27.38674,40.70495 2.62823,13.15674 -4.30325,18.60978 11.62999,71.56178 15.93322,52.9532 102.40085,143.6887 100.73065,227.44141 -0.069,3.40406 -0.2311,6.65445 -0.3751,9.94176 14.525,10.94599 23.0156,27.68686 25.2294,38.36004 1.6081,7.75263 2.492,11.68492 2.7201,13.41216 1.5666,0.57954 4.95,2.21674 11.9112,5.43983 8.9321,4.13577 21.1104,13.7738 29.3564,27.48068 6.7629,-25.46262 10.7089,-54.59011 11.4425,-88.25674 2.3527,-107.98 -98.3591,-225.01217 -120.80184,-293.28183 C 407.43855,194.9981 421.95998,182.78135 412.99903,116.11228 404.03809,49.443198 356.36355,-1.7916666e-6 275.31501,-1.7916665e-6 Z M 271.93856,763.54594 c -1.37309,8.8712 -3.21648,17.57674 -5.62741,25.98004 -3.92959,13.69607 -9.66505,27.42155 -18.19531,39.11067 8.8406,0.54803 17.90178,0.62006 27.19917,0.18608 9.29738,0.43308 18.35556,0.36075 27.19916,-0.18608 -8.53027,-11.68912 -14.26572,-25.4146 -18.1953,-39.11067 -2.41093,-8.4033 -4.25433,-17.10884 -5.62741,-25.98004 -1.12519,0.03 -2.24077,0.093 -3.37645,0.093 -1.13569,0 -2.25127,-0.072 -3.37645,-0.093 z"
-         id="path4372-7-91"
-         inkscape:connector-curvature="0"
-         sodipodi:nodetypes="ssssccccccsccccscsccccccsssscscccscsc" />
-    </g>
-  </g>
-</svg>

+ 0 - 304
images/logo/assets/svg/linuxgsm_black_gradiant_vector_full.svg

@@ -1,304 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:xlink="http://www.w3.org/1999/xlink"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   width="1710.7236"
-   height="830.10431"
-   id="svg4312"
-   version="1.1"
-   inkscape:version="0.92.1 r15371"
-   sodipodi:docname="linuxgsm_black_gradiant_vector_full.svg"
-   inkscape:export-filename="C:\Users\me\Google Drive\Projects\Linux Game Server Manager\media\logos\master rasta\linuxgsm_black_gradiant_vector_full.png"
-   inkscape:export-xdpi="84.68"
-   inkscape:export-ydpi="84.68">
-  <title
-     id="title5291">Stycil Tux</title>
-  <defs
-     id="defs4314">
-    <linearGradient
-       id="linearGradient3910-6-0-8-7-7-8">
-      <stop
-         style="stop-color:#000000;stop-opacity:1;"
-         offset="0"
-         id="stop3912-5-9-3-8-7-4" />
-      <stop
-         style="stop-color:#4c4c4c;stop-opacity:1;"
-         offset="1"
-         id="stop3914-0-1-3-0-6-9" />
-    </linearGradient>
-    <linearGradient
-       y2="497.71365"
-       x2="140.00095"
-       y1="230.00362"
-       x1="140.00095"
-       gradientTransform="matrix(3.0012867,0,0,3.0012867,-152.31552,-675.94661)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient4970"
-       xlink:href="#linearGradient3910-6-0-8-7-7-8"
-       inkscape:collect="always" />
-    <linearGradient
-       id="linearGradient3910-6-0-8-7-81">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="0"
-         id="stop3912-5-9-3-8-5" />
-      <stop
-         style="stop-color:#a6a6a6;stop-opacity:1;"
-         offset="1"
-         id="stop3914-0-1-3-0-64" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient4565-3">
-      <stop
-         style="stop-color:#939393;stop-opacity:1;"
-         offset="0"
-         id="stop4567-1" />
-      <stop
-         style="stop-color:#000000;stop-opacity:1;"
-         offset="1"
-         id="stop4569-9" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient4617-7">
-      <stop
-         id="stop4619-9"
-         offset="0"
-         style="stop-color:#ffffff;stop-opacity:0;" />
-      <stop
-         id="stop4621-5"
-         offset="1"
-         style="stop-color:#a6a6a6;stop-opacity:0.5" />
-    </linearGradient>
-    <clipPath
-       clipPathUnits="userSpaceOnUse"
-       id="clipPath4719-2">
-      <rect
-         style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:15;marker:none;enable-background:accumulate"
-         id="rect4721-4"
-         width="1352.3417"
-         height="1135.7903"
-         x="-490.55533"
-         y="-358.505" />
-    </clipPath>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3910-6-0-8-7-7-8"
-       id="linearGradient5197"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(3.0012867,0,0,3.0012867,-152.31552,-675.94661)"
-       x1="140.00095"
-       y1="230.00362"
-       x2="140.00095"
-       y2="497.71365" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3910-6-0-8-7-7-8"
-       id="linearGradient5427"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(3.0012867,0,0,3.0012867,-152.31552,-675.94661)"
-       x1="140.00095"
-       y1="230.00362"
-       x2="140.00095"
-       y2="497.71365" />
-  </defs>
-  <sodipodi:namedview
-     id="base"
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1.0"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:zoom="1"
-     inkscape:cx="1228.4325"
-     inkscape:cy="395.54805"
-     inkscape:document-units="px"
-     inkscape:current-layer="svg4312"
-     showgrid="false"
-     fit-margin-top="0"
-     fit-margin-left="0"
-     fit-margin-right="0"
-     fit-margin-bottom="0"
-     inkscape:window-width="1920"
-     inkscape:window-height="1017"
-     inkscape:window-x="-8"
-     inkscape:window-y="-8"
-     inkscape:window-maximized="1"
-     inkscape:pagecheckerboard="false" />
-  <metadata
-     id="metadata4317">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title>Stycil Tux</dc:title>
-        <dc:creator>
-          <cc:Agent>
-            <dc:title>Cheeseness (Josh Bush)</dc:title>
-          </cc:Agent>
-        </dc:creator>
-        <dc:subject>
-          <rdf:Bag>
-            <rdf:li>tux linux icon</rdf:li>
-          </rdf:Bag>
-        </dc:subject>
-        <dc:description>A stylised stencil (a &quot;stycil&quot; - isn't that catchy) inspired by Larry Ewing's Tux illustration.
-http://en.wikipedia.org/wiki/Tux
-
-You're under no obligation to do so, but if you do something with this, drop me a line - I'd love to hear about it.
-cheese@twolofbees.com</dc:description>
-        <dc:date>2012-01-02</dc:date>
-        <cc:license
-           rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" />
-        <dc:source>http://twolofbees.com/uploads/2012/stycil_tux.svg</dc:source>
-        <dc:relation>http://twolofbees.com/artwork.php?iid=870</dc:relation>
-      </cc:Work>
-      <cc:License
-         rdf:about="http://creativecommons.org/publicdomain/zero/1.0/">
-        <cc:permits
-           rdf:resource="http://creativecommons.org/ns#Reproduction" />
-        <cc:permits
-           rdf:resource="http://creativecommons.org/ns#Distribution" />
-        <cc:permits
-           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
-      </cc:License>
-    </rdf:RDF>
-  </metadata>
-  <g
-     inkscape:groupmode="layer"
-     id="layer1"
-     inkscape:label="Layer 1" />
-  <g
-     id="g6064"
-     transform="translate(56.568542,1.0001456)"
-     style="display:inline">
-    <g
-       transform="translate(-756.17483,-402.59665)"
-       id="g5961-3"
-       style="display:inline">
-      <g
-         transform="translate(-452.34937,725.009)"
-         id="g5391-8-7">
-        <path
-           sodipodi:nodetypes="ccccc"
-           inkscape:connector-curvature="0"
-           id="path5199-1-3-9"
-           d="m 1295.2947,213.49225 v 51.44487 h 265.7241 v -51.44487 z"
-           style="fill:#000000;stroke:none;stroke-width:0.37795275;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
-        <path
-           sodipodi:nodetypes="ccccc"
-           inkscape:connector-curvature="0"
-           id="path5199-9-5-2"
-           d="m 1295.2947,277.56671 v 51.44487 h 265.7241 v -51.44487 z"
-           style="fill:#000000;stroke:none;stroke-width:0.37795275;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
-        <path
-           sodipodi:nodetypes="ccccc"
-           inkscape:connector-curvature="0"
-           id="path5199-8-9-8"
-           d="m 1295.2947,341.64115 v 51.44487 h 265.7241 v -51.44487 z"
-           style="fill:#000000;stroke:none;stroke-width:0.37795275;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
-        <g
-           style="fill:#000000"
-           transform="translate(-0.90575)"
-           id="g5258-9-9">
-          <path
-             inkscape:connector-curvature="0"
-             d="m 1424.625,162.97931 a 4.75,4 0 0 1 -4.75,4 4.75,4 0 0 1 -4.75,-4 4.75,4 0 0 1 4.75,-4 4.75,4 0 0 1 4.75,4 z m 18.375,-0.25 a 4.75,4 0 0 1 -4.75,4 4.75,4 0 0 1 -4.75,-4 4.75,4 0 0 1 4.75,-4 4.75,4 0 0 1 4.75,4 z m -146.7996,-13.31157 v 51.44487 h 265.7241 v -51.44487 z"
-             style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.37795275;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-             id="path5239-0-4-2" />
-        </g>
-      </g>
-      <path
-         style="fill:#000000;stroke:none;stroke-width:0.1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-         d="m 912.26148,854.87423 v 7.27539 c 0,2.79634 4.1201,7.15235 7.0974,7.15235 h 57.0982 57.09622 c 2.9773,0 7.0974,-4.35601 7.0974,-7.15235 v -7.27539 h -64.19362 z"
-         id="path5429-1-9"
-         inkscape:connector-curvature="0" />
-      <path
-         inkscape:connector-curvature="0"
-         style="fill:#000000;stroke:none;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-         d="m 969.04908,749.4172 c -1.2404,0 -6.5507,5.41807 -6.5507,6.21875 v 4.91993 h 0.9531 c 0,43.5553 3.7609,25.12079 3.3398,62.125 0,0.82719 4.4526,3.88671 5.4356,3.88671 v 8.39649 h -1.125 v 1.0625 h -3.2266 v 0.5957 h -48.9883 c -2.8742,0 -6.9863,4.8837 -6.9863,7.15234 v 7.2754 h 128.75002 v -7.2754 c 0,-2.79633 -4.1361,-7.15234 -7.125,-7.15234 h -8.3535 v -0.79492 h -2.166 v -3.18164 h -1.1485 v -1.28125 h -8.9726 -8.9707 v 1.28125 h -1.1485 v 3.18164 h -2.166 v 0.79492 h -16.46682 v -0.5957 h -3.2246 v -1.0625 h -1.1269 v -8.39649 c 0.983,0 5.4355,-3.05952 5.4355,-3.88671 -0.4211,-37.00421 3.3399,-18.5697 3.3398,-62.125 h 0.9532 v -4.91993 c 0,-0.80068 -5.3104,-6.21875 -6.5508,-6.21875 h -6.9551 z"
-         id="path5429-3-7-4" />
-      <path
-         style="fill:none;stroke:#ff00ff;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-         d="m 912.26148,851.05049 v -7.27539 c 0,-2.79634 4.1201,-7.15235 7.0974,-7.15235 h 57.0982 57.09622 c 2.9773,0 7.0974,4.35601 7.0974,7.15235 v 7.27539 h -64.19362 z"
-         id="path5429-7-77-6"
-         inkscape:connector-curvature="0" />
-    </g>
-    <g
-       transform="translate(-55.729306)"
-       id="g5425"
-       style="display:inline">
-      <path
-         style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#f6bd0e;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:16;marker:none;enable-background:accumulate"
-         d="m 116.05923,577.93526 c -3.48,0.20109 -7.3256,1.1375 -11.63,2.90735 -27.54822,11.32986 -15.44643,35.19849 -27.48069,50.27156 -12.03367,15.07396 -36.19673,7.81324 -43.79988,38.64156 -7.60286,30.82892 109.26727,182.19131 172.10487,156.34843 62.838,-25.84288 39.4726,-215.66466 12.3803,-232.22455 -27.0917,-16.55961 -39.0863,5.6223 -58.2436,3.37644 -16.1637,-1.89502 -24.5385,-20.40725 -43.331,-19.32079 z m 316.5418,0 c -17.3826,0.30013 -25.7964,17.496 -41.3614,19.32079 -19.1572,2.24586 -31.1518,-19.93605 -58.2435,-3.37644 -27.0923,16.55989 -50.4576,206.38137 12.3803,232.22455 62.8376,25.84288 179.7077,-125.51951 172.1049,-156.34843 -7.6032,-30.82832 -31.6726,-23.5676 -43.7063,-38.64156 -12.0342,-15.07307 0.069,-38.9417 -27.4803,-50.27156 -5.1656,-2.12371 -9.6822,-2.97637 -13.6937,-2.90735 z"
-         id="path4372-7-9"
-         inkscape:connector-curvature="0"
-         sodipodi:nodetypes="ccccsssccssscccc"
-         inkscape:label="path4372-7-9" />
-      <path
-         style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:url(#linearGradient5427);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:16;marker:none;enable-background:accumulate"
-         d="M 275.31501,-1.7916665e-6 C 194.26645,-1.7916665e-6 146.68586,49.443198 137.72462,116.11228 128.76368,182.78135 143.19147,194.9981 120.74874,263.26927 98.30602,331.53923 -2.31211,448.5711 0.04059,556.5511 c 0.73262,33.61801 4.60398,62.7266 11.34877,88.1628 8.26915,-13.70117 20.521,-23.35722 29.45012,-27.48068 6.9708,-3.21799 10.34005,-4.76544 11.91151,-5.34589 0.2281,-1.72724 1.11168,-5.65953 2.71977,-13.41216 2.20895,-10.64736 10.67498,-27.3186 25.13578,-38.2664 -0.14707,-3.31673 -0.30674,-6.59923 -0.37516,-10.0354 -1.67022,-83.75241 84.89138,-174.48761 100.82462,-227.44141 15.93263,-52.952 9.00175,-58.40504 11.62998,-71.56178 2.62793,-13.15674 12.77468,-28.48221 27.38675,-40.70495 1.39198,-1.1651 2.74677,-1.67532 4.12676,-1.68823 13.32151,-0.12605 26.65263,48.37144 52.42857,48.39576 25.77596,0.03 39.1848,-59.11995 54.02317,-46.70753 14.61207,12.22304 24.75882,27.54821 27.38674,40.70495 2.62823,13.15674 -4.30325,18.60978 11.62999,71.56178 15.93322,52.9532 102.40085,143.6887 100.73065,227.44141 -0.069,3.40406 -0.2311,6.65445 -0.3751,9.94176 14.525,10.94599 23.0156,27.68686 25.2294,38.36004 1.6081,7.75263 2.492,11.68492 2.7201,13.41216 1.5666,0.57954 4.95,2.21674 11.9112,5.43983 8.9321,4.13577 21.1104,13.7738 29.3564,27.48068 6.7629,-25.46262 10.7089,-54.59011 11.4425,-88.25674 2.3527,-107.98 -98.3591,-225.01217 -120.80184,-293.28183 C 407.43855,194.9981 421.95998,182.78135 412.99903,116.11228 404.03809,49.443198 356.36355,-1.7916666e-6 275.31501,-1.7916665e-6 Z M 271.93856,763.54594 c -1.37309,8.8712 -3.21648,17.57674 -5.62741,25.98004 -3.92959,13.69607 -9.66505,27.42155 -18.19531,39.11067 8.8406,0.54803 17.90178,0.62006 27.19917,0.18608 9.29738,0.43308 18.35556,0.36075 27.19916,-0.18608 -8.53027,-11.68912 -14.26572,-25.4146 -18.1953,-39.11067 -2.41093,-8.4033 -4.25433,-17.10884 -5.62741,-25.98004 -1.12519,0.03 -2.24077,0.093 -3.37645,0.093 -1.13569,0 -2.25127,-0.072 -3.37645,-0.093 z"
-         id="path4372-7-91"
-         inkscape:connector-curvature="0"
-         sodipodi:nodetypes="ssssccccccsccccscsccccccsssscscccscsc" />
-    </g>
-    <flowRoot
-       xml:space="preserve"
-       id="flowRoot4513"
-       style="font-style:normal;font-weight:normal;font-size:40px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none"
-       transform="translate(-56.568542,-1.8359376e-6)"><flowRegion
-         id="flowRegion4515"><rect
-           id="rect4517"
-           width="584"
-           height="560"
-           x="532"
-           y="65.104309" /></flowRegion><flowPara
-         id="flowPara4519" /></flowRoot>    <flowRoot
-       xml:space="preserve"
-       id="flowRoot4521"
-       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:40px;line-height:1.25;font-family:'PT Sans';-inkscape-font-specification:'PT Sans';letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none"
-       transform="translate(-56.568542,-1.8359376e-6)"><flowRegion
-         id="flowRegion4523"
-         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'PT Sans';-inkscape-font-specification:'PT Sans'"><rect
-           id="rect4525"
-           width="476"
-           height="536"
-           x="548"
-           y="81.104309"
-           style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'PT Sans';-inkscape-font-specification:'PT Sans'" /></flowRegion><flowPara
-         id="flowPara4527" /></flowRoot>    <text
-       xml:space="preserve"
-       style="font-style:normal;font-weight:normal;font-size:169.59358215px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:4.23983955"
-       x="429.06406"
-       y="220.41109"
-       id="text4531"
-       transform="scale(1.0093264,0.99075977)"
-       inkscape:export-filename="C:\Users\me\Google Drive\Projects\Linux Game Server Manager\media\logos\master rasta\text4531.png"
-       inkscape:export-xdpi="118.84"
-       inkscape:export-ydpi="118.84"><tspan
-         sodipodi:role="line"
-         id="tspan4529"
-         x="429.06406"
-         y="220.41109"
-         style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:213.33334351px;font-family:'PT Sans';-inkscape-font-specification:'PT Sans';fill:#f6bd0e;fill-opacity:1;stroke-width:4.23983955">Linux</tspan><tspan
-         sodipodi:role="line"
-         x="429.06406"
-         y="487.07776"
-         id="tspan4535"
-         style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:213.33334351px;font-family:'PT Sans';-inkscape-font-specification:'PT Sans';stroke-width:4.23983955"> Game Server</tspan><tspan
-         sodipodi:role="line"
-         x="429.06406"
-         y="753.74445"
-         id="tspan4537"
-         style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:213.33334351px;font-family:'PT Sans';-inkscape-font-specification:'PT Sans';stroke-width:4.23983955">  Managers_</tspan></text>
-  </g>
-</svg>

+ 0 - 286
images/logo/assets/svg/linuxgsm_black_vector.svg

@@ -1,286 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:xlink="http://www.w3.org/1999/xlink"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   width="550.72363"
-   height="829.10431"
-   id="svg4312"
-   version="1.1"
-   inkscape:version="0.92.1 r15371"
-   sodipodi:docname="linuxgsm_black_vector.svg">
-  <title
-     id="title5291">Stycil Tux</title>
-  <defs
-     id="defs4314">
-    <linearGradient
-       id="linearGradient3910-6-0-8-7-7-8">
-      <stop
-         style="stop-color:#000000;stop-opacity:1;"
-         offset="0"
-         id="stop3912-5-9-3-8-7-4" />
-      <stop
-         style="stop-color:#4c4c4c;stop-opacity:1;"
-         offset="1"
-         id="stop3914-0-1-3-0-6-9" />
-    </linearGradient>
-    <linearGradient
-       y2="497.71365"
-       x2="140.00095"
-       y1="230.00362"
-       x1="140.00095"
-       gradientTransform="matrix(3.0012867,0,0,3.0012867,-152.31552,-675.94661)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient4970"
-       xlink:href="#linearGradient3910-6-0-8-7-7-8"
-       inkscape:collect="always" />
-    <linearGradient
-       id="linearGradient3910-6-0-8-7-81">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="0"
-         id="stop3912-5-9-3-8-5" />
-      <stop
-         style="stop-color:#a6a6a6;stop-opacity:1;"
-         offset="1"
-         id="stop3914-0-1-3-0-64" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient4565-3">
-      <stop
-         style="stop-color:#939393;stop-opacity:1;"
-         offset="0"
-         id="stop4567-1" />
-      <stop
-         style="stop-color:#000000;stop-opacity:1;"
-         offset="1"
-         id="stop4569-9" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient4617-7">
-      <stop
-         id="stop4619-9"
-         offset="0"
-         style="stop-color:#ffffff;stop-opacity:0;" />
-      <stop
-         id="stop4621-5"
-         offset="1"
-         style="stop-color:#a6a6a6;stop-opacity:0.5" />
-    </linearGradient>
-    <clipPath
-       clipPathUnits="userSpaceOnUse"
-       id="clipPath4719-2">
-      <rect
-         style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:15;marker:none;enable-background:accumulate"
-         id="rect4721-4"
-         width="1352.3417"
-         height="1135.7903"
-         x="-490.55533"
-         y="-358.505" />
-    </clipPath>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3910-6-0-8-7-7-8"
-       id="linearGradient5197"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(3.0012867,0,0,3.0012867,-152.31552,-675.94661)"
-       x1="140.00095"
-       y1="230.00362"
-       x2="140.00095"
-       y2="497.71365" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3910-6-0-8-7-7-8"
-       id="linearGradient5427"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(3.0012867,0,0,3.0012867,-152.31552,-675.94661)"
-       x1="140.00095"
-       y1="230.00362"
-       x2="140.00095"
-       y2="497.71365" />
-  </defs>
-  <sodipodi:namedview
-     id="base"
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1.0"
-     inkscape:pageopacity="0.0"
-     inkscape:pageshadow="2"
-     inkscape:zoom="1"
-     inkscape:cx="397.59441"
-     inkscape:cy="382.02473"
-     inkscape:document-units="px"
-     inkscape:current-layer="g6064"
-     showgrid="false"
-     fit-margin-top="0"
-     fit-margin-left="0"
-     fit-margin-right="0"
-     fit-margin-bottom="0"
-     inkscape:window-width="1920"
-     inkscape:window-height="1017"
-     inkscape:window-x="-8"
-     inkscape:window-y="-8"
-     inkscape:window-maximized="1" />
-  <metadata
-     id="metadata4317">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title>Stycil Tux</dc:title>
-        <dc:creator>
-          <cc:Agent>
-            <dc:title>Cheeseness (Josh Bush)</dc:title>
-          </cc:Agent>
-        </dc:creator>
-        <dc:subject>
-          <rdf:Bag>
-            <rdf:li>tux linux icon</rdf:li>
-          </rdf:Bag>
-        </dc:subject>
-        <dc:description>A stylised stencil (a &quot;stycil&quot; - isn't that catchy) inspired by Larry Ewing's Tux illustration.
-http://en.wikipedia.org/wiki/Tux
-
-You're under no obligation to do so, but if you do something with this, drop me a line - I'd love to hear about it.
-cheese@twolofbees.com</dc:description>
-        <dc:date>2012-01-02</dc:date>
-        <cc:license
-           rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" />
-        <dc:source>http://twolofbees.com/uploads/2012/stycil_tux.svg</dc:source>
-        <dc:relation>http://twolofbees.com/artwork.php?iid=870</dc:relation>
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     id="g6064"
-     transform="translate(56.568542)"
-     style="display:inline">
-    <g
-       transform="translate(-756.17483,-402.59665)"
-       id="g5961-3"
-       style="display:inline">
-      <g
-         transform="translate(-452.34937,725.009)"
-         id="g5391-8-7">
-        <path
-           sodipodi:nodetypes="ccccc"
-           inkscape:connector-curvature="0"
-           id="path5199-1-3-9"
-           d="m 1295.2947,213.49225 v 51.44487 h 265.7241 v -51.44487 z"
-           style="fill:#000000;stroke:none;stroke-width:0.37795275;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
-        <path
-           sodipodi:nodetypes="ccccc"
-           inkscape:connector-curvature="0"
-           id="path5199-9-5-2"
-           d="m 1295.2947,277.56671 v 51.44487 h 265.7241 v -51.44487 z"
-           style="fill:#000000;stroke:none;stroke-width:0.37795275;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
-        <path
-           sodipodi:nodetypes="ccccc"
-           inkscape:connector-curvature="0"
-           id="path5199-8-9-8"
-           d="m 1295.2947,341.64115 v 51.44487 h 265.7241 v -51.44487 z"
-           style="fill:#000000;stroke:none;stroke-width:0.37795275;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
-        <g
-           style="fill:#000000"
-           transform="translate(-0.90575)"
-           id="g5258-9-9">
-          <path
-             inkscape:connector-curvature="0"
-             d="m 1424.625,162.97931 a 4.75,4 0 0 1 -4.75,4 4.75,4 0 0 1 -4.75,-4 4.75,4 0 0 1 4.75,-4 4.75,4 0 0 1 4.75,4 z m 18.375,-0.25 a 4.75,4 0 0 1 -4.75,4 4.75,4 0 0 1 -4.75,-4 4.75,4 0 0 1 4.75,-4 4.75,4 0 0 1 4.75,4 z m -146.7996,-13.31157 v 51.44487 h 265.7241 v -51.44487 z"
-             style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.37795275;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-             id="path5239-0-4-2" />
-        </g>
-      </g>
-      <path
-         style="fill:#000000;stroke:none;stroke-width:0.1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-         d="m 912.26148,854.87423 v 7.27539 c 0,2.79634 4.1201,7.15235 7.0974,7.15235 h 57.0982 57.09622 c 2.9773,0 7.0974,-4.35601 7.0974,-7.15235 v -7.27539 h -64.19362 z"
-         id="path5429-1-9"
-         inkscape:connector-curvature="0" />
-      <path
-         inkscape:connector-curvature="0"
-         style="fill:#000000;stroke:none;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-         d="m 969.04908,749.4172 c -1.2404,0 -6.5507,5.41807 -6.5507,6.21875 v 4.91993 h 0.9531 c 0,43.5553 3.7609,25.12079 3.3398,62.125 0,0.82719 4.4526,3.88671 5.4356,3.88671 v 8.39649 h -1.125 v 1.0625 h -3.2266 v 0.5957 h -48.9883 c -2.8742,0 -6.9863,4.8837 -6.9863,7.15234 v 7.2754 h 128.75002 v -7.2754 c 0,-2.79633 -4.1361,-7.15234 -7.125,-7.15234 h -8.3535 v -0.79492 h -2.166 v -3.18164 h -1.1485 v -1.28125 h -8.9726 -8.9707 v 1.28125 h -1.1485 v 3.18164 h -2.166 v 0.79492 h -16.46682 v -0.5957 h -3.2246 v -1.0625 h -1.1269 v -8.39649 c 0.983,0 5.4355,-3.05952 5.4355,-3.88671 -0.4211,-37.00421 3.3399,-18.5697 3.3398,-62.125 h 0.9532 v -4.91993 c 0,-0.80068 -5.3104,-6.21875 -6.5508,-6.21875 h -6.9551 z"
-         id="path5429-3-7-4" />
-      <path
-         style="fill:none;stroke:#ff00ff;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-         d="m 912.26148,851.05049 v -7.27539 c 0,-2.79634 4.1201,-7.15235 7.0974,-7.15235 h 57.0982 57.09622 c 2.9773,0 7.0974,4.35601 7.0974,7.15235 v 7.27539 h -64.19362 z"
-         id="path5429-7-77-6"
-         inkscape:connector-curvature="0" />
-    </g>
-    <g
-       transform="translate(-55.729306)"
-       id="g5425"
-       style="display:inline">
-      <path
-         style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#f6bd0e;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:16;marker:none;enable-background:accumulate"
-         d="m 116.05923,577.93526 c -3.48,0.20109 -7.3256,1.1375 -11.63,2.90735 -27.54822,11.32986 -15.44643,35.19849 -27.48069,50.27156 -12.03367,15.07396 -36.19673,7.81324 -43.79988,38.64156 -7.60286,30.82892 109.26727,182.19131 172.10487,156.34843 62.838,-25.84288 39.4726,-215.66466 12.3803,-232.22455 -27.0917,-16.55961 -39.0863,5.6223 -58.2436,3.37644 -16.1637,-1.89502 -24.5385,-20.40725 -43.331,-19.32079 z m 316.5418,0 c -17.3826,0.30013 -25.7964,17.496 -41.3614,19.32079 -19.1572,2.24586 -31.1518,-19.93605 -58.2435,-3.37644 -27.0923,16.55989 -50.4576,206.38137 12.3803,232.22455 62.8376,25.84288 179.7077,-125.51951 172.1049,-156.34843 -7.6032,-30.82832 -31.6726,-23.5676 -43.7063,-38.64156 -12.0342,-15.07307 0.069,-38.9417 -27.4803,-50.27156 -5.1656,-2.12371 -9.6822,-2.97637 -13.6937,-2.90735 z"
-         id="path4372-7-9"
-         inkscape:connector-curvature="0"
-         sodipodi:nodetypes="ccccsssccssscccc"
-         inkscape:label="path4372-7-9" />
-      <path
-         style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:url(#linearGradient5427);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:16;marker:none;enable-background:accumulate"
-         d="M 275.31501,-1.7916665e-6 C 194.26645,-1.7916665e-6 146.68586,49.443198 137.72462,116.11228 128.76368,182.78135 143.19147,194.9981 120.74874,263.26927 98.30602,331.53923 -2.31211,448.5711 0.04059,556.5511 c 0.73262,33.61801 4.60398,62.7266 11.34877,88.1628 8.26915,-13.70117 20.521,-23.35722 29.45012,-27.48068 6.9708,-3.21799 10.34005,-4.76544 11.91151,-5.34589 0.2281,-1.72724 1.11168,-5.65953 2.71977,-13.41216 2.20895,-10.64736 10.67498,-27.3186 25.13578,-38.2664 -0.14707,-3.31673 -0.30674,-6.59923 -0.37516,-10.0354 -1.67022,-83.75241 84.89138,-174.48761 100.82462,-227.44141 15.93263,-52.952 9.00175,-58.40504 11.62998,-71.56178 2.62793,-13.15674 12.77468,-28.48221 27.38675,-40.70495 1.39198,-1.1651 2.74677,-1.67532 4.12676,-1.68823 13.32151,-0.12605 26.65263,48.37144 52.42857,48.39576 25.77596,0.03 39.1848,-59.11995 54.02317,-46.70753 14.61207,12.22304 24.75882,27.54821 27.38674,40.70495 2.62823,13.15674 -4.30325,18.60978 11.62999,71.56178 15.93322,52.9532 102.40085,143.6887 100.73065,227.44141 -0.069,3.40406 -0.2311,6.65445 -0.3751,9.94176 14.525,10.94599 23.0156,27.68686 25.2294,38.36004 1.6081,7.75263 2.492,11.68492 2.7201,13.41216 1.5666,0.57954 4.95,2.21674 11.9112,5.43983 8.9321,4.13577 21.1104,13.7738 29.3564,27.48068 6.7629,-25.46262 10.7089,-54.59011 11.4425,-88.25674 2.3527,-107.98 -98.3591,-225.01217 -120.80184,-293.28183 C 407.43855,194.9981 421.95998,182.78135 412.99903,116.11228 404.03809,49.443198 356.36355,-1.7916666e-6 275.31501,-1.7916665e-6 Z M 271.93856,763.54594 c -1.37309,8.8712 -3.21648,17.57674 -5.62741,25.98004 -3.92959,13.69607 -9.66505,27.42155 -18.19531,39.11067 8.8406,0.54803 17.90178,0.62006 27.19917,0.18608 9.29738,0.43308 18.35556,0.36075 27.19916,-0.18608 -8.53027,-11.68912 -14.26572,-25.4146 -18.1953,-39.11067 -2.41093,-8.4033 -4.25433,-17.10884 -5.62741,-25.98004 -1.12519,0.03 -2.24077,0.093 -3.37645,0.093 -1.13569,0 -2.25127,-0.072 -3.37645,-0.093 z"
-         id="path4372-7-91"
-         inkscape:connector-curvature="0"
-         sodipodi:nodetypes="ssssccccccsccccscsccccccsssscscccscsc" />
-    </g>
-    <path
-       style="fill:#000000;fill-opacity:1"
-       d="m 114.59441,283.23565 c 0,-0.24417 1.59959,-4.40667 3.55464,-9.25 3.63491,-9.00495 9.23801,-27.28845 11.96125,-39.03081 3.90844,-16.85289 4.64856,-25.10578 5.49513,-61.27526 0.50046,-21.38213 1.516,-42.09154 2.45188,-50 1.57119,-13.27699 5.4476,-31.36537 8.08998,-37.750001 l 1.34507,-3.25 h 128.8934 128.8934 l 2.63985,8.75 c 6.08103,20.156101 7.61955,34.406361 8.6641,80.250001 0.89562,39.30731 1.86887,48.82949 7.0831,69.30099 2.80302,11.00486 8.63504,28.95882 11.55539,35.57344 1.30505,2.95594 2.37281,5.76844 2.37281,6.25 0,0.48538 -16.91415,0.87557 -37.95469,0.87557 h -37.95468 l -0.56349,-3.25 c -0.30992,-1.7875 -0.93391,-10.02932 -1.38663,-18.31515 -0.79328,-14.51864 -0.95643,-15.34226 -4.4972,-22.70384 -6.90636,-14.35891 -21.97739,-30.71166 -28.31639,-30.72455 -4.37845,-0.009 -7.44212,3.3144 -19.37708,21.01926 -14.2565,21.14873 -22.42203,27.97905 -31.92472,26.70447 -9.8998,-1.32784 -18.30259,-8.82427 -31.07877,-27.72648 -14.74352,-21.81289 -17.97303,-23.64117 -27.45345,-15.5418 -7.14,6.0999 -15.61506,17.44854 -20.1057,26.92283 -3.66096,7.72383 -3.75314,8.20992 -4.51711,23.82022 -0.42894,8.76451 -1.05551,16.80388 -1.39238,17.86526 -0.59088,1.86169 -1.95084,1.92978 -38.5451,1.92978 -20.86294,0 -37.93261,-0.19977 -37.93261,-0.44393 z"
-       id="path4513"
-       inkscape:connector-curvature="0"
-       transform="translate(-56.568542)" />
-    <path
-       style="fill:#000000;fill-opacity:1"
-       d="m 39.594409,421.1642 c 0,-2.46749 18.185161,-36.06364 43.051057,-79.5346 8.950557,-15.64751 19.753034,-35.20002 24.005494,-43.45002 l 7.73176,-15 h 38.10604 38.10604 l -2e-4,2.23249 c -1e-4,1.22787 -1.99431,10.07578 -4.43156,19.66203 -7.78392,30.6158 -10.11179,35.29497 -49.17014,98.83517 l -10.89849,17.72969 -43.250001,0.0203 c -23.7875,0.0112 -43.25,-0.21161 -43.25,-0.49507 z"
-       id="path4515"
-       inkscape:connector-curvature="0"
-       transform="translate(-56.568542)" />
-    <path
-       style="fill:#000000;fill-opacity:1"
-       d="M 1.6139312,543.92958 C 1.641425,537.2401 4.063405,519.97082 6.6187735,508.24388 11.235559,487.05683 20.217862,461.53331 32.507714,434.67958 l 6.178397,-13.5 43.454149,0.27069 c 23.89978,0.14889 43.45415,0.51009 43.45415,0.80269 0,0.29259 -2.7456,5.28856 -6.10133,11.10216 -23.740815,41.12952 -36.428347,75.98168 -38.526541,105.83092 l -0.66733,9.49354 H 40.946809 1.5944086 Z"
-       id="path4517"
-       inkscape:connector-curvature="0"
-       transform="translate(-56.568542)" />
-    <path
-       style="fill:#000000;fill-opacity:1"
-       d="M 12.11918,641.52282 C 7.434105,628.52087 1.5944086,582.80229 1.5944086,559.12511 v -10.44553 h 39.5000004 39.5 v 5.52174 c 0,5.37128 -0.152511,5.67425 -5.596954,11.11869 -10.385281,10.38528 -16.990895,22.73555 -20.01306,37.41768 l -1.754338,8.52283 -9.567824,4.6363 c -11.35871,5.50411 -20.095112,12.38399 -26.434177,20.81682 -2.839037,3.77675 -4.811755,5.63374 -5.108876,4.80918 z"
-       id="path4519"
-       inkscape:connector-curvature="0"
-       transform="translate(-56.568542)" />
-    <path
-       style="fill:#000000;fill-opacity:1"
-       d="m 254.16359,821.45812 c 7.52064,-12.19811 14.23801,-31.7349 18.14694,-52.77854 0.74974,-4.0362 1.14242,-4.53002 3.80989,-4.79125 l 2.97399,-0.29125 1.85186,9.79125 c 3.45673,18.27665 11.55543,39.66605 19.70443,52.04125 l 2.14011,3.25 h -26.53977 -26.53978 z"
-       id="path4521"
-       inkscape:connector-curvature="0"
-       transform="translate(-56.568542)" />
-    <path
-       style="fill:#000000;fill-opacity:1"
-       d="m 535.09441,636.96904 c -5.54021,-7.77645 -15.28282,-15.56204 -26.40806,-21.1034 l -9.40806,-4.68606 -2.11797,-9.5 c -3.40509,-15.27326 -11.54346,-29.68916 -21.63936,-38.33087 l -3.92655,-3.36099 v -10.77573 c 0,-13.74446 -2.22522,-28.68219 -6.46689,-43.4117 -3.47339,-12.06159 -9.76927,-28.70642 -14.06363,-37.18093 l -2.48152,-4.89705 41.9254,-0.27137 41.92541,-0.27136 5.08406,15.5 c 9.90205,30.18876 13.08225,48.71682 13.06685,76.12834 -0.0115,20.54191 -1.15712,36.33581 -3.98003,54.87166 -2.29557,15.07316 -6.0516,33.01825 -6.8971,32.95201 -0.3369,-0.0264 -2.41255,-2.57454 -4.61255,-5.66255 z"
-       id="path4523"
-       inkscape:connector-curvature="0"
-       transform="translate(-56.568542)" />
-    <path
-       style="fill:#000000;fill-opacity:1"
-       d="m 443.09441,452.10697 c -5.67275,-11.13765 -16.52406,-29.55199 -45.92151,-77.92739 -17.75407,-29.21548 -23.39832,-41.31692 -29.96695,-64.25 l -1.50374,-5.25 41.6961,0.007 41.6961,0.007 3.91592,7.24331 c 2.15375,3.98382 11.87827,21.19331 21.61004,38.24331 20.98319,36.76244 28.29962,50.14554 37.85218,69.23861 8.14156,16.27284 19.45527,42.26131 18.71857,42.99801 -0.27223,0.27223 -18.85536,0.71456 -41.29584,0.98295 l -40.80087,0.48797 z"
-       id="path4525"
-       inkscape:connector-curvature="0"
-       transform="translate(-56.568542)" />
-    <path
-       style="fill:#000000;fill-opacity:1"
-       d="m 364.20108,297.42958 c -0.87675,-3.9875 -1.87817,-8.7125 -2.22538,-10.5 l -0.63129,-3.25 h 37.04321 c 20.37377,0 37.64252,-0.21632 38.375,-0.48072 0.88636,-0.31994 2.98736,2.94106 6.28175,9.75 2.72247,5.6269 5.12247,10.56822 5.33333,10.98072 0.21086,0.4125 -18.28395,0.75 -41.09958,0.75 h -41.48295 z"
-       id="path4527"
-       inkscape:connector-curvature="0"
-       transform="translate(-56.568542)" />
-  </g>
-</svg>

+ 0 - 248
images/logo/assets/svg/linuxgsm_white_vector.svg

@@ -1,248 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:xlink="http://www.w3.org/1999/xlink"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   width="550.72363"
-   height="829.10431"
-   id="svg4312"
-   version="1.1"
-   inkscape:version="0.92.1 r15371"
-   sodipodi:docname="linuxgsm_logo_white.svg"
-   inkscape:export-filename="C:\Users\me\Desktop\lgsm media\linuxgsm_logo_white.png"
-   inkscape:export-xdpi="61.009998"
-   inkscape:export-ydpi="61.009998">
-  <title
-     id="title5291">Stycil Tux</title>
-  <defs
-     id="defs4314">
-    <linearGradient
-       id="linearGradient3910-6-0-8-7-7-8">
-      <stop
-         style="stop-color:#000000;stop-opacity:1;"
-         offset="0"
-         id="stop3912-5-9-3-8-7-4" />
-      <stop
-         style="stop-color:#4c4c4c;stop-opacity:1;"
-         offset="1"
-         id="stop3914-0-1-3-0-6-9" />
-    </linearGradient>
-    <linearGradient
-       y2="497.71365"
-       x2="140.00095"
-       y1="230.00362"
-       x1="140.00095"
-       gradientTransform="matrix(3.0012867,0,0,3.0012867,-152.31552,-675.94661)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient4970"
-       xlink:href="#linearGradient3910-6-0-8-7-7-8"
-       inkscape:collect="always" />
-    <linearGradient
-       id="linearGradient3910-6-0-8-7-81">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="0"
-         id="stop3912-5-9-3-8-5" />
-      <stop
-         style="stop-color:#a6a6a6;stop-opacity:1;"
-         offset="1"
-         id="stop3914-0-1-3-0-64" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient4565-3">
-      <stop
-         style="stop-color:#939393;stop-opacity:1;"
-         offset="0"
-         id="stop4567-1" />
-      <stop
-         style="stop-color:#000000;stop-opacity:1;"
-         offset="1"
-         id="stop4569-9" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient4617-7">
-      <stop
-         id="stop4619-9"
-         offset="0"
-         style="stop-color:#ffffff;stop-opacity:0;" />
-      <stop
-         id="stop4621-5"
-         offset="1"
-         style="stop-color:#a6a6a6;stop-opacity:0.5" />
-    </linearGradient>
-    <clipPath
-       clipPathUnits="userSpaceOnUse"
-       id="clipPath4719-2">
-      <rect
-         style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:15;marker:none;enable-background:accumulate"
-         id="rect4721-4"
-         width="1352.3417"
-         height="1135.7903"
-         x="-490.55533"
-         y="-358.505" />
-    </clipPath>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3910-6-0-8-7-7-8"
-       id="linearGradient5197"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(3.0012867,0,0,3.0012867,-152.31552,-675.94661)"
-       x1="140.00095"
-       y1="230.00362"
-       x2="140.00095"
-       y2="497.71365" />
-  </defs>
-  <sodipodi:namedview
-     id="base"
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1.0"
-     inkscape:pageopacity="0.0"
-     inkscape:pageshadow="2"
-     inkscape:zoom="1"
-     inkscape:cx="258.13863"
-     inkscape:cy="366.87337"
-     inkscape:document-units="px"
-     inkscape:current-layer="g6064"
-     showgrid="false"
-     fit-margin-top="0"
-     fit-margin-left="0"
-     fit-margin-right="0"
-     fit-margin-bottom="0"
-     inkscape:window-width="1920"
-     inkscape:window-height="1017"
-     inkscape:window-x="-8"
-     inkscape:window-y="-8"
-     inkscape:window-maximized="1"
-     inkscape:pagecheckerboard="true" />
-  <metadata
-     id="metadata4317">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title>Stycil Tux</dc:title>
-        <dc:creator>
-          <cc:Agent>
-            <dc:title>Cheeseness (Josh Bush)</dc:title>
-          </cc:Agent>
-        </dc:creator>
-        <dc:subject>
-          <rdf:Bag>
-            <rdf:li>tux linux icon</rdf:li>
-          </rdf:Bag>
-        </dc:subject>
-        <dc:description>A stylised stencil (a &quot;stycil&quot; - isn't that catchy) inspired by Larry Ewing's Tux illustration.
-http://en.wikipedia.org/wiki/Tux
-
-You're under no obligation to do so, but if you do something with this, drop me a line - I'd love to hear about it.
-cheese@twolofbees.com</dc:description>
-        <dc:date>2012-01-02</dc:date>
-        <cc:license
-           rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" />
-        <dc:source>http://twolofbees.com/uploads/2012/stycil_tux.svg</dc:source>
-        <dc:relation>http://twolofbees.com/artwork.php?iid=870</dc:relation>
-      </cc:Work>
-      <cc:License
-         rdf:about="http://creativecommons.org/publicdomain/zero/1.0/">
-        <cc:permits
-           rdf:resource="http://creativecommons.org/ns#Reproduction" />
-        <cc:permits
-           rdf:resource="http://creativecommons.org/ns#Distribution" />
-        <cc:permits
-           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
-      </cc:License>
-    </rdf:RDF>
-  </metadata>
-  <g
-     id="g6064"
-     transform="translate(56.568542)"
-     style="display:inline">
-    <g
-       transform="translate(-756.17483,-402.59665)"
-       id="g5961-3"
-       style="display:inline;fill:#ababb2;fill-opacity:1">
-      <g
-         transform="translate(-452.34937,725.009)"
-         id="g5391-8-7"
-         style="fill:#ababb2;fill-opacity:1">
-        <path
-           sodipodi:nodetypes="ccccc"
-           inkscape:connector-curvature="0"
-           id="path5199-1-3-9"
-           d="m 1295.2947,213.49225 v 51.44487 h 265.7241 v -51.44487 z"
-           style="fill:#ababb2;stroke:none;stroke-width:0.37795275;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;fill-opacity:1" />
-        <path
-           sodipodi:nodetypes="ccccc"
-           inkscape:connector-curvature="0"
-           id="path5199-9-5-2"
-           d="m 1295.2947,277.56671 v 51.44487 h 265.7241 v -51.44487 z"
-           style="fill:#ababb2;stroke:none;stroke-width:0.37795275;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;fill-opacity:1" />
-        <path
-           sodipodi:nodetypes="ccccc"
-           inkscape:connector-curvature="0"
-           id="path5199-8-9-8"
-           d="m 1295.2947,341.64115 v 51.44487 h 265.7241 v -51.44487 z"
-           style="fill:#ababb2;stroke:none;stroke-width:0.37795275;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;fill-opacity:1" />
-        <g
-           style="fill:#ababb2;fill-opacity:1"
-           transform="translate(-0.90575)"
-           id="g5258-9-9">
-          <path
-             inkscape:connector-curvature="0"
-             d="m 1424.625,162.97931 a 4.75,4 0 0 1 -4.75,4 4.75,4 0 0 1 -4.75,-4 4.75,4 0 0 1 4.75,-4 4.75,4 0 0 1 4.75,4 z m 18.375,-0.25 a 4.75,4 0 0 1 -4.75,4 4.75,4 0 0 1 -4.75,-4 4.75,4 0 0 1 4.75,-4 4.75,4 0 0 1 4.75,4 z m -146.7996,-13.31157 v 51.44487 h 265.7241 v -51.44487 z"
-             style="fill:#ababb2;fill-opacity:1;stroke:none;stroke-width:0.37795275;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-             id="path5239-0-4-2" />
-        </g>
-      </g>
-      <path
-         style="fill:#ababb2;stroke:none;stroke-width:0.1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;fill-opacity:1"
-         d="m 912.26148,854.87423 v 7.27539 c 0,2.79634 4.1201,7.15235 7.0974,7.15235 h 57.0982 57.09622 c 2.9773,0 7.0974,-4.35601 7.0974,-7.15235 v -7.27539 h -64.19362 z"
-         id="path5429-1-9"
-         inkscape:connector-curvature="0" />
-      <path
-         inkscape:connector-curvature="0"
-         style="fill:#ababb2;stroke:none;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;fill-opacity:1"
-         d="m 969.04908,749.4172 c -1.2404,0 -6.5507,5.41807 -6.5507,6.21875 v 4.91993 h 0.9531 c 0,43.5553 3.7609,25.12079 3.3398,62.125 0,0.82719 4.4526,3.88671 5.4356,3.88671 v 8.39649 h -1.125 v 1.0625 h -3.2266 v 0.5957 h -48.9883 c -2.8742,0 -6.9863,4.8837 -6.9863,7.15234 v 7.2754 h 128.75002 v -7.2754 c 0,-2.79633 -4.1361,-7.15234 -7.125,-7.15234 h -8.3535 v -0.79492 h -2.166 v -3.18164 h -1.1485 v -1.28125 h -8.9726 -8.9707 v 1.28125 h -1.1485 v 3.18164 h -2.166 v 0.79492 h -16.46682 v -0.5957 h -3.2246 v -1.0625 h -1.1269 v -8.39649 c 0.983,0 5.4355,-3.05952 5.4355,-3.88671 -0.4211,-37.00421 3.3399,-18.5697 3.3398,-62.125 h 0.9532 v -4.91993 c 0,-0.80068 -5.3104,-6.21875 -6.5508,-6.21875 h -6.9551 z"
-         id="path5429-3-7-4" />
-      <path
-         style="fill:#ababb2;stroke:#ff00ff;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;fill-opacity:1"
-         d="m 912.26148,851.05049 v -7.27539 c 0,-2.79634 4.1201,-7.15235 7.0974,-7.15235 h 57.0982 57.09622 c 2.9773,0 7.0974,4.35601 7.0974,7.15235 v 7.27539 h -64.19362 z"
-         id="path5429-7-77-6"
-         inkscape:connector-curvature="0" />
-    </g>
-    <g
-       transform="translate(-55.729306)"
-       id="g5425"
-       style="display:inline">
-      <path
-         style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#f6bd0e;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:16;marker:none;enable-background:accumulate"
-         d="m 116.05923,577.93526 c -3.48,0.20109 -7.3256,1.1375 -11.63,2.90735 -27.54822,11.32986 -15.44643,35.19849 -27.48069,50.27156 -12.03367,15.07396 -36.19673,7.81324 -43.79988,38.64156 -7.60286,30.82892 109.26727,182.19131 172.10487,156.34843 62.838,-25.84288 39.4726,-215.66466 12.3803,-232.22455 -27.0917,-16.55961 -39.0863,5.6223 -58.2436,3.37644 -16.1637,-1.89502 -24.5385,-20.40725 -43.331,-19.32079 z m 316.5418,0 c -17.3826,0.30013 -25.7964,17.496 -41.3614,19.32079 -19.1572,2.24586 -31.1518,-19.93605 -58.2435,-3.37644 -27.0923,16.55989 -50.4576,206.38137 12.3803,232.22455 62.8376,25.84288 179.7077,-125.51951 172.1049,-156.34843 -7.6032,-30.82832 -31.6726,-23.5676 -43.7063,-38.64156 -12.0342,-15.07307 0.069,-38.9417 -27.4803,-50.27156 -5.1656,-2.12371 -9.6822,-2.97637 -13.6937,-2.90735 z"
-         id="path4372-7-9"
-         inkscape:connector-curvature="0"
-         sodipodi:nodetypes="ccccsssccssscccc"
-         inkscape:label="path4372-7-9" />
-      <path
-         style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:16;marker:none;enable-background:accumulate"
-         d="M 275.31501,-1.7916665e-6 C 194.26645,-1.7916665e-6 146.68586,49.443198 137.72462,116.11228 128.76368,182.78135 143.19147,194.9981 120.74874,263.26927 98.30602,331.53923 -2.31211,448.5711 0.04059,556.5511 c 0.73262,33.61801 4.60398,62.7266 11.34877,88.1628 8.26915,-13.70117 20.521,-23.35722 29.45012,-27.48068 6.9708,-3.21799 10.34005,-4.76544 11.91151,-5.34589 0.2281,-1.72724 1.11168,-5.65953 2.71977,-13.41216 2.20895,-10.64736 10.67498,-27.3186 25.13578,-38.2664 -0.14707,-3.31673 -0.30674,-6.59923 -0.37516,-10.0354 -1.67022,-83.75241 84.89138,-174.48761 100.82462,-227.44141 15.93263,-52.952 9.00175,-58.40504 11.62998,-71.56178 2.62793,-13.15674 12.77468,-28.48221 27.38675,-40.70495 1.39198,-1.1651 2.74677,-1.67532 4.12676,-1.68823 13.32151,-0.12605 26.65263,48.37144 52.42857,48.39576 25.77596,0.03 39.1848,-59.11995 54.02317,-46.70753 14.61207,12.22304 24.75882,27.54821 27.38674,40.70495 2.62823,13.15674 -4.30325,18.60978 11.62999,71.56178 15.93322,52.9532 102.40085,143.6887 100.73065,227.44141 -0.069,3.40406 -0.2311,6.65445 -0.3751,9.94176 14.525,10.94599 23.0156,27.68686 25.2294,38.36004 1.6081,7.75263 2.492,11.68492 2.7201,13.41216 1.5666,0.57954 4.95,2.21674 11.9112,5.43983 8.9321,4.13577 21.1104,13.7738 29.3564,27.48068 6.7629,-25.46262 10.7089,-54.59011 11.4425,-88.25674 2.3527,-107.98 -98.3591,-225.01217 -120.80184,-293.28183 C 407.43855,194.9981 421.95998,182.78135 412.99903,116.11228 404.03809,49.443198 356.36355,-1.7916666e-6 275.31501,-1.7916665e-6 Z M 271.93856,763.54594 c -1.37309,8.8712 -3.21648,17.57674 -5.62741,25.98004 -3.92959,13.69607 -9.66505,27.42155 -18.19531,39.11067 8.8406,0.54803 17.90178,0.62006 27.19917,0.18608 9.29738,0.43308 18.35556,0.36075 27.19916,-0.18608 -8.53027,-11.68912 -14.26572,-25.4146 -18.1953,-39.11067 -2.41093,-8.4033 -4.25433,-17.10884 -5.62741,-25.98004 -1.12519,0.03 -2.24077,0.093 -3.37645,0.093 -1.13569,0 -2.25127,-0.072 -3.37645,-0.093 z"
-         id="path4372-7-91"
-         inkscape:connector-curvature="0"
-         sodipodi:nodetypes="ssssccccccsccccscsccccccsssscscccscsc" />
-    </g>
-    <path
-       style="fill:#ababb2;fill-opacity:0"
-       d="m 143.73409,497.33094 v -25.5 h 132.5 132.5 v 25.5 25.5 h -132.5 -132.5 z m 126.95432,-8.94496 c 3.54491,-4.27135 -2.78295,-9.83008 -6.92404,-6.08245 -2.43802,2.20639 -2.56466,3.85017 -0.45885,5.95598 1.96721,1.96722 5.80071,2.03289 7.38289,0.12647 z m 18.06193,-0.36711 c 4.2279,-3.42355 -1.243,-9.41376 -5.92103,-6.48306 -2.33049,1.46002 -2.61483,5.44202 -0.49906,6.9891 2.39868,1.75396 3.76179,1.64651 6.42009,-0.50604 z"
-       id="path3731"
-       inkscape:connector-curvature="0"
-       transform="translate(-56.568542)" />
-  </g>
-</svg>

+ 0 - 324
images/logo/assets/svg/linuxgsm_white_vector_full.svg

@@ -1,324 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:xlink="http://www.w3.org/1999/xlink"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   width="1710.7236"
-   height="830.10431"
-   id="svg4312"
-   version="1.1"
-   inkscape:version="0.92.1 r15371"
-   sodipodi:docname="linuxgsm_white_vector_full.svg"
-   inkscape:export-filename="C:\Users\me\Google Drive\Projects\Linux Game Server Manager\media\graphics\logos\dark\lgsm-dark-full.png"
-   inkscape:export-xdpi="84.68"
-   inkscape:export-ydpi="84.68">
-  <title
-     id="title5291">Stycil Tux</title>
-  <defs
-     id="defs4314">
-    <linearGradient
-       id="linearGradient3910-6-0-8-7-7-8">
-      <stop
-         style="stop-color:#000000;stop-opacity:1;"
-         offset="0"
-         id="stop3912-5-9-3-8-7-4" />
-      <stop
-         style="stop-color:#4c4c4c;stop-opacity:1;"
-         offset="1"
-         id="stop3914-0-1-3-0-6-9" />
-    </linearGradient>
-    <linearGradient
-       y2="497.71365"
-       x2="140.00095"
-       y1="230.00362"
-       x1="140.00095"
-       gradientTransform="matrix(3.0012867,0,0,3.0012867,-152.31552,-675.94661)"
-       gradientUnits="userSpaceOnUse"
-       id="linearGradient4970"
-       xlink:href="#linearGradient3910-6-0-8-7-7-8"
-       inkscape:collect="always" />
-    <linearGradient
-       id="linearGradient3910-6-0-8-7-81">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="0"
-         id="stop3912-5-9-3-8-5" />
-      <stop
-         style="stop-color:#a6a6a6;stop-opacity:1;"
-         offset="1"
-         id="stop3914-0-1-3-0-64" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient4565-3">
-      <stop
-         style="stop-color:#939393;stop-opacity:1;"
-         offset="0"
-         id="stop4567-1" />
-      <stop
-         style="stop-color:#000000;stop-opacity:1;"
-         offset="1"
-         id="stop4569-9" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient4617-7">
-      <stop
-         id="stop4619-9"
-         offset="0"
-         style="stop-color:#ffffff;stop-opacity:0;" />
-      <stop
-         id="stop4621-5"
-         offset="1"
-         style="stop-color:#a6a6a6;stop-opacity:0.5" />
-    </linearGradient>
-    <clipPath
-       clipPathUnits="userSpaceOnUse"
-       id="clipPath4719-2">
-      <rect
-         style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:15;marker:none;enable-background:accumulate"
-         id="rect4721-4"
-         width="1352.3417"
-         height="1135.7903"
-         x="-490.55533"
-         y="-358.505" />
-    </clipPath>
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3910-6-0-8-7-7-8"
-       id="linearGradient5197"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(3.0012867,0,0,3.0012867,-152.31552,-675.94661)"
-       x1="140.00095"
-       y1="230.00362"
-       x2="140.00095"
-       y2="497.71365" />
-  </defs>
-  <sodipodi:namedview
-     id="base"
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1.0"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:zoom="1"
-     inkscape:cx="1126.276"
-     inkscape:cy="424.55397"
-     inkscape:document-units="px"
-     inkscape:current-layer="g6064"
-     showgrid="false"
-     fit-margin-top="0"
-     fit-margin-left="0"
-     fit-margin-right="0"
-     fit-margin-bottom="0"
-     inkscape:window-width="1920"
-     inkscape:window-height="1017"
-     inkscape:window-x="-8"
-     inkscape:window-y="-8"
-     inkscape:window-maximized="1"
-     inkscape:pagecheckerboard="true" />
-  <metadata
-     id="metadata4317">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title>Stycil Tux</dc:title>
-        <dc:creator>
-          <cc:Agent>
-            <dc:title>Cheeseness (Josh Bush)</dc:title>
-          </cc:Agent>
-        </dc:creator>
-        <dc:subject>
-          <rdf:Bag>
-            <rdf:li>tux linux icon</rdf:li>
-          </rdf:Bag>
-        </dc:subject>
-        <dc:description>A stylised stencil (a &quot;stycil&quot; - isn't that catchy) inspired by Larry Ewing's Tux illustration.
-http://en.wikipedia.org/wiki/Tux
-
-You're under no obligation to do so, but if you do something with this, drop me a line - I'd love to hear about it.
-cheese@twolofbees.com</dc:description>
-        <dc:date>2012-01-02</dc:date>
-        <cc:license
-           rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" />
-        <dc:source>http://twolofbees.com/uploads/2012/stycil_tux.svg</dc:source>
-        <dc:relation>http://twolofbees.com/artwork.php?iid=870</dc:relation>
-      </cc:Work>
-      <cc:License
-         rdf:about="http://creativecommons.org/publicdomain/zero/1.0/">
-        <cc:permits
-           rdf:resource="http://creativecommons.org/ns#Reproduction" />
-        <cc:permits
-           rdf:resource="http://creativecommons.org/ns#Distribution" />
-        <cc:permits
-           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
-      </cc:License>
-    </rdf:RDF>
-  </metadata>
-  <g
-     inkscape:groupmode="layer"
-     id="layer1"
-     inkscape:label="Layer 1" />
-  <g
-     id="g6064"
-     transform="translate(56.568542,1.0001456)"
-     style="display:inline">
-    <g
-       transform="translate(-756.17483,-402.59665)"
-       id="g5961-3"
-       style="display:inline;fill:#ababb2;fill-opacity:1">
-      <g
-         transform="translate(-452.34937,725.009)"
-         id="g5391-8-7"
-         style="fill:#ababb2;fill-opacity:1">
-        <path
-           sodipodi:nodetypes="ccccc"
-           inkscape:connector-curvature="0"
-           id="path5199-1-3-9"
-           d="m 1295.2947,213.49225 v 51.44487 h 265.7241 v -51.44487 z"
-           style="fill:#ababb2;stroke:none;stroke-width:0.37795275;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;fill-opacity:1" />
-        <path
-           sodipodi:nodetypes="ccccc"
-           inkscape:connector-curvature="0"
-           id="path5199-9-5-2"
-           d="m 1295.2947,277.56671 v 51.44487 h 265.7241 v -51.44487 z"
-           style="fill:#ababb2;stroke:none;stroke-width:0.37795275;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;fill-opacity:1" />
-        <path
-           sodipodi:nodetypes="ccccc"
-           inkscape:connector-curvature="0"
-           id="path5199-8-9-8"
-           d="m 1295.2947,341.64115 v 51.44487 h 265.7241 v -51.44487 z"
-           style="fill:#ababb2;stroke:none;stroke-width:0.37795275;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;fill-opacity:1" />
-        <g
-           style="fill:#ababb2;fill-opacity:1"
-           transform="translate(-0.90575)"
-           id="g5258-9-9">
-          <path
-             inkscape:connector-curvature="0"
-             d="m 1424.625,162.97931 a 4.75,4 0 0 1 -4.75,4 4.75,4 0 0 1 -4.75,-4 4.75,4 0 0 1 4.75,-4 4.75,4 0 0 1 4.75,4 z m 18.375,-0.25 a 4.75,4 0 0 1 -4.75,4 4.75,4 0 0 1 -4.75,-4 4.75,4 0 0 1 4.75,-4 4.75,4 0 0 1 4.75,4 z m -146.7996,-13.31157 v 51.44487 h 265.7241 v -51.44487 z"
-             style="fill:#ababb2;fill-opacity:1;stroke:none;stroke-width:0.37795275;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-             id="path5239-0-4-2" />
-        </g>
-      </g>
-      <path
-         style="fill:#ababb2;stroke:none;stroke-width:0.1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;fill-opacity:1"
-         d="m 912.26148,854.87423 v 7.27539 c 0,2.79634 4.1201,7.15235 7.0974,7.15235 h 57.0982 57.09622 c 2.9773,0 7.0974,-4.35601 7.0974,-7.15235 v -7.27539 h -64.19362 z"
-         id="path5429-1-9"
-         inkscape:connector-curvature="0" />
-      <path
-         inkscape:connector-curvature="0"
-         style="fill:#ababb2;stroke:none;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;fill-opacity:1"
-         d="m 969.04908,749.4172 c -1.2404,0 -6.5507,5.41807 -6.5507,6.21875 v 4.91993 h 0.9531 c 0,43.5553 3.7609,25.12079 3.3398,62.125 0,0.82719 4.4526,3.88671 5.4356,3.88671 v 8.39649 h -1.125 v 1.0625 h -3.2266 v 0.5957 h -48.9883 c -2.8742,0 -6.9863,4.8837 -6.9863,7.15234 v 7.2754 h 128.75002 v -7.2754 c 0,-2.79633 -4.1361,-7.15234 -7.125,-7.15234 h -8.3535 v -0.79492 h -2.166 v -3.18164 h -1.1485 v -1.28125 h -8.9726 -8.9707 v 1.28125 h -1.1485 v 3.18164 h -2.166 v 0.79492 h -16.46682 v -0.5957 h -3.2246 v -1.0625 h -1.1269 v -8.39649 c 0.983,0 5.4355,-3.05952 5.4355,-3.88671 -0.4211,-37.00421 3.3399,-18.5697 3.3398,-62.125 h 0.9532 v -4.91993 c 0,-0.80068 -5.3104,-6.21875 -6.5508,-6.21875 h -6.9551 z"
-         id="path5429-3-7-4" />
-      <path
-         style="fill:#ababb2;stroke:#ff00ff;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;fill-opacity:1"
-         d="m 912.26148,851.05049 v -7.27539 c 0,-2.79634 4.1201,-7.15235 7.0974,-7.15235 h 57.0982 57.09622 c 2.9773,0 7.0974,4.35601 7.0974,7.15235 v 7.27539 h -64.19362 z"
-         id="path5429-7-77-6"
-         inkscape:connector-curvature="0" />
-    </g>
-    <g
-       transform="translate(-55.729306)"
-       id="g5425"
-       style="display:inline">
-      <path
-         style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#f6bd0e;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:16;marker:none;enable-background:accumulate"
-         d="m 116.05923,577.93526 c -3.48,0.20109 -7.3256,1.1375 -11.63,2.90735 -27.54822,11.32986 -15.44643,35.19849 -27.48069,50.27156 -12.03367,15.07396 -36.19673,7.81324 -43.79988,38.64156 -7.60286,30.82892 109.26727,182.19131 172.10487,156.34843 62.838,-25.84288 39.4726,-215.66466 12.3803,-232.22455 -27.0917,-16.55961 -39.0863,5.6223 -58.2436,3.37644 -16.1637,-1.89502 -24.5385,-20.40725 -43.331,-19.32079 z m 316.5418,0 c -17.3826,0.30013 -25.7964,17.496 -41.3614,19.32079 -19.1572,2.24586 -31.1518,-19.93605 -58.2435,-3.37644 -27.0923,16.55989 -50.4576,206.38137 12.3803,232.22455 62.8376,25.84288 179.7077,-125.51951 172.1049,-156.34843 -7.6032,-30.82832 -31.6726,-23.5676 -43.7063,-38.64156 -12.0342,-15.07307 0.069,-38.9417 -27.4803,-50.27156 -5.1656,-2.12371 -9.6822,-2.97637 -13.6937,-2.90735 z"
-         id="path4372-7-9"
-         inkscape:connector-curvature="0"
-         sodipodi:nodetypes="ccccsssccssscccc"
-         inkscape:label="path4372-7-9" />
-      <path
-         style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:16;marker:none;enable-background:accumulate"
-         d="M 275.31501,-1.7916665e-6 C 194.26645,-1.7916665e-6 146.68586,49.443198 137.72462,116.11228 128.76368,182.78135 143.19147,194.9981 120.74874,263.26927 98.30602,331.53923 -2.31211,448.5711 0.04059,556.5511 c 0.73262,33.61801 4.60398,62.7266 11.34877,88.1628 8.26915,-13.70117 20.521,-23.35722 29.45012,-27.48068 6.9708,-3.21799 10.34005,-4.76544 11.91151,-5.34589 0.2281,-1.72724 1.11168,-5.65953 2.71977,-13.41216 2.20895,-10.64736 10.67498,-27.3186 25.13578,-38.2664 -0.14707,-3.31673 -0.30674,-6.59923 -0.37516,-10.0354 -1.67022,-83.75241 84.89138,-174.48761 100.82462,-227.44141 15.93263,-52.952 9.00175,-58.40504 11.62998,-71.56178 2.62793,-13.15674 12.77468,-28.48221 27.38675,-40.70495 1.39198,-1.1651 2.74677,-1.67532 4.12676,-1.68823 13.32151,-0.12605 26.65263,48.37144 52.42857,48.39576 25.77596,0.03 39.1848,-59.11995 54.02317,-46.70753 14.61207,12.22304 24.75882,27.54821 27.38674,40.70495 2.62823,13.15674 -4.30325,18.60978 11.62999,71.56178 15.93322,52.9532 102.40085,143.6887 100.73065,227.44141 -0.069,3.40406 -0.2311,6.65445 -0.3751,9.94176 14.525,10.94599 23.0156,27.68686 25.2294,38.36004 1.6081,7.75263 2.492,11.68492 2.7201,13.41216 1.5666,0.57954 4.95,2.21674 11.9112,5.43983 8.9321,4.13577 21.1104,13.7738 29.3564,27.48068 6.7629,-25.46262 10.7089,-54.59011 11.4425,-88.25674 2.3527,-107.98 -98.3591,-225.01217 -120.80184,-293.28183 C 407.43855,194.9981 421.95998,182.78135 412.99903,116.11228 404.03809,49.443198 356.36355,-1.7916666e-6 275.31501,-1.7916665e-6 Z M 271.93856,763.54594 c -1.37309,8.8712 -3.21648,17.57674 -5.62741,25.98004 -3.92959,13.69607 -9.66505,27.42155 -18.19531,39.11067 8.8406,0.54803 17.90178,0.62006 27.19917,0.18608 9.29738,0.43308 18.35556,0.36075 27.19916,-0.18608 -8.53027,-11.68912 -14.26572,-25.4146 -18.1953,-39.11067 -2.41093,-8.4033 -4.25433,-17.10884 -5.62741,-25.98004 -1.12519,0.03 -2.24077,0.093 -3.37645,0.093 -1.13569,0 -2.25127,-0.072 -3.37645,-0.093 z"
-         id="path4372-7-91"
-         inkscape:connector-curvature="0"
-         sodipodi:nodetypes="ssssccccccsccccscsccccccsssscscccscsc" />
-    </g>
-    <flowRoot
-       xml:space="preserve"
-       id="flowRoot4513"
-       style="font-style:normal;font-weight:normal;font-size:40px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none"
-       transform="translate(-56.568542,-1.8359376e-6)"><flowRegion
-         id="flowRegion4515"><rect
-           id="rect4517"
-           width="584"
-           height="560"
-           x="532"
-           y="65.104309" /></flowRegion><flowPara
-         id="flowPara4519" /></flowRoot>    <flowRoot
-       xml:space="preserve"
-       id="flowRoot4521"
-       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:40px;line-height:1.25;font-family:'PT Sans';-inkscape-font-specification:'PT Sans';letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none"
-       transform="translate(-56.568542,-1.8359376e-6)"><flowRegion
-         id="flowRegion4523"
-         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'PT Sans';-inkscape-font-specification:'PT Sans'"><rect
-           id="rect4525"
-           width="476"
-           height="536"
-           x="548"
-           y="81.104309"
-           style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'PT Sans';-inkscape-font-specification:'PT Sans'" /></flowRegion><flowPara
-         id="flowPara4527" /></flowRoot>    <text
-       xml:space="preserve"
-       style="font-style:normal;font-weight:normal;font-size:169.59358215px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:4.23983955"
-       x="429.06406"
-       y="220.41109"
-       id="text4531"
-       transform="scale(1.0093264,0.99075977)"
-       inkscape:export-filename="C:\Users\me\Google Drive\Projects\Linux Game Server Manager\media\logos\master rasta\text4531.png"
-       inkscape:export-xdpi="118.84"
-       inkscape:export-ydpi="118.84"><tspan
-         sodipodi:role="line"
-         id="tspan4529"
-         x="429.06406"
-         y="220.41109"
-         style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:213.33334351px;font-family:'PT Sans';-inkscape-font-specification:'PT Sans';fill:#ababb2;fill-opacity:1;stroke-width:4.23983955">Linux</tspan><tspan
-         sodipodi:role="line"
-         x="429.06406"
-         y="487.07776"
-         id="tspan4535"
-         style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:213.33334351px;font-family:'PT Sans';-inkscape-font-specification:'PT Sans';fill:#7dffff;fill-opacity:0.77900552;stroke-width:4.23983955"> <tspan
-   style="fill:#ffffff;fill-opacity:1;opacity:1"
-   id="tspan942">Game Server</tspan></tspan><tspan
-         sodipodi:role="line"
-         x="429.06406"
-         y="753.74445"
-         id="tspan4537"
-         style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:213.33334351px;font-family:'PT Sans';-inkscape-font-specification:'PT Sans';fill:#f9f9f9;fill-opacity:0;stroke-width:4.23983955"><tspan
-   style="fill:#ffffff;fill-opacity:1;opacity:1"
-   id="tspan876">  Managers_</tspan>_</tspan></text>
-    <flowRoot
-       xml:space="preserve"
-       id="flowRoot2606"
-       style="fill:black;fill-opacity:1;stroke:none;font-family:sans-serif;font-style:normal;font-weight:normal;font-size:40px;line-height:1.25;letter-spacing:0px;word-spacing:0px"><flowRegion
-         id="flowRegion2608"><rect
-           id="rect2610"
-           width="596"
-           height="244"
-           x="551"
-           y="408.10431" /></flowRegion><flowPara
-         id="flowPara2612"></flowPara></flowRoot>  </g>
-  <path
-     style="fill:#ffffff;fill-opacity:0"
-     d="m 103.95897,305.64737 c 0,-0.29209 1.98741,-4.48823 4.41646,-9.32476 10.29339,-20.49537 17.26545,-40.28401 22.07901,-62.66635 3.9742,-18.47945 4.59123,-25.6379 5.51655,-64 0.79547,-32.97852 2.08256,-50.45634 4.54764,-61.75359 l 0.60083,-2.75359 135.12878,0.25359 135.12878,0.25359 0.7479,3.5 c 2.31683,10.84216 4.06464,35.3419 4.85112,68 0.91823,38.12897 1.41461,42.93974 6.60364,64 4.40569,17.881 10.0926,33.73138 17.82493,49.68112 l 7.42651,15.31888 H 407.51376 366.1964 l -1.20552,-4.75 c -2.93,-11.54485 -4.20984,-20.83185 -4.95211,-35.9344 -0.77423,-15.75263 -0.89123,-16.38609 -4.38555,-23.74414 -4.52737,-9.53335 -8.2765,-14.98271 -15.95627,-23.1924 -5.98826,-6.40148 -10.16413,-9.37906 -13.15352,-9.37906 -3.01465,0 -9.01166,6.69118 -17.89249,19.96358 -14.5779,21.78668 -21.89779,28.26554 -31.84767,28.18846 -10.48815,-0.0812 -17.90838,-6.63067 -34.16101,-30.15204 -9.08036,-13.14143 -13.92437,-18 -17.94601,-18 -2.78994,0 -17.0247,14.17371 -22.5033,22.40678 -7.65084,11.49747 -9.29829,17.42848 -10.30335,37.09322 -0.57802,11.30946 -1.63236,20.34738 -3.14974,27 l -2.28089,10 -41.25,0.26109 c -22.6875,0.1436 -41.25,0.0221 -41.25,-0.26998 z"
-     id="path858"
-     inkscape:connector-curvature="0" />
-  <path
-     style="fill:#ffffff;fill-opacity:0"
-     d="m 517.45897,621.51377 c -1.1,-0.86839 -5.55983,-3.235 -9.91074,-5.25913 l -7.91074,-3.68024 -2.77827,-11.29969 c -3.50583,-14.25876 -8.76676,-23.87229 -18.53319,-33.86648 l -7.13295,-7.2993 0.50085,-6.23958 c 0.56479,-7.03604 -0.9597,-22.97762 -3.30005,-34.50852 -4.32021,-21.28575 -18.56308,-55.37094 -35.39473,-84.70457 -3.47149,-6.05 -6.50225,-11.3375 -6.73501,-11.75 -0.23276,-0.4125 19.33809,-0.75 43.49078,-0.75 h 43.91398 l 4.19984,9.0393 c 18.10421,38.96563 27.55172,68.78316 31.67198,99.9607 2.56585,19.41552 1.31093,51.25328 -3.20255,81.25 l -1.61751,10.75 -12.63084,-0.0318 c -9.96138,-0.0251 -13.05354,-0.3655 -14.63085,-1.61069 z"
-     id="path860"
-     inkscape:connector-curvature="0" />
-  <path
-     style="fill:#ffffff;fill-opacity:0"
-     d="m 131.38196,230.39891 c 2.26043,-7.12198 3.80851,-27.49521 4.57759,-60.24265 0.8735,-37.19355 2.20679,-52.48825 5.97138,-68.5 5.698,-24.235019 17.42655,-45.8345 34.04809,-62.703515 l 7.68211,-7.796486 h 92.50635 92.50635 l 8.46293,8.778947 c 10.02293,10.397199 17.50821,21.162474 23.38694,33.634919 11.75298,24.935379 15.0362,45.563325 16.48717,103.586135 0.83379,33.34278 1.27259,39.85533 3.45308,51.25 l 0.7176,3.75 h -35.05284 -35.05285 l -4.47347,-5.81362 c -6.22632,-8.09156 -16.26919,-17.18638 -18.97791,-17.18638 -4.40434,0 -9.15051,4.57291 -16.34675,15.75 l -4.66783,7.25 h -30.18389 -30.18388 l -3.77528,-5.75 c -8.62521,-13.13676 -14.1939,-18.04759 -19.07583,-16.8223 -2.85946,0.71768 -15.11364,12.62294 -18.93212,18.39304 l -2.7657,4.17926 h -35.4345 c -33.3485,0 -35.40167,-0.10345 -34.87674,-1.75735 z"
-     id="path862"
-     inkscape:connector-curvature="0" />
-</svg>

BIN
images/logo/facebook.png


BIN
images/logo/lgsm-dark-full.png


BIN
images/logo/lgsm-dark-square-114.png


BIN
images/logo/lgsm-dark-square-16.png


BIN
images/logo/lgsm-dark-square-184.png


BIN
images/logo/lgsm-dark-square-24.png


BIN
images/logo/lgsm-dark-square-512.png


BIN
images/logo/lgsm-dark-square-64.png


BIN
images/logo/lgsm-light-full.png


BIN
images/logo/lgsm_full.png


BIN
images/logo/lgsmbutton.png


BIN
images/wallpaper/LinuxGSM_wallpaper.png


BIN
images/wallpaper/LinuxGSM_wallpaper_2.png


+ 1 - 1
lgsm/config-default/config-lgsm/bb2server/_default.cfg

@@ -18,7 +18,7 @@ maxplayers="20"
 
 
 ## Optional: Game Server Login Token
 ## Optional: Game Server Login Token
 # GSLT can be used for running a public server.
 # GSLT can be used for running a public server.
-# More info: https://gameservermanagers.com/gslt
+# More info: https://linuxgsm.com/gslt
 gslt=""
 gslt=""
 
 
 ## Server Start Command | https://github.com/GameServerManagers/LinuxGSM/wiki/Start-Parameters#additional-parameters
 ## Server Start Command | https://github.com/GameServerManagers/LinuxGSM/wiki/Start-Parameters#additional-parameters

+ 118 - 0
lgsm/config-default/config-lgsm/bdserver/_default.cfg

@@ -0,0 +1,118 @@
+##################################
+######## Default Settings ########
+##################################
+# DO NOT EDIT WILL BE OVERWRITTEN!
+# Copy settings from here and use them in either
+# common.cfg - applies settings to every instance
+# [instance].cfg - applies settings to a specific instance
+
+#### Server Settings ####
+
+## Server Start Settings | https://github.com/GameServerManagers/LinuxGSM/wiki/Start-Parameters
+ip="0.0.0.0"
+port="27015"
+clientport="27005"
+defaultmap="pve_tomb"
+maxplayers="3"
+
+## Server Start Command | https://github.com/GameServerManagers/LinuxGSM/wiki/Start-Parameters#additional-parameters
+fn_parms(){
+parms="-game bdef -strictportbind +ip ${ip} -port ${port} +clientport ${clientport} +map ${defaultmap} +servercfgfile ${servercfg} -maxplayers ${maxplayers}"
+}
+
+#### LinuxGSM Settings ####
+
+## Notification Alerts
+# (on|off)
+
+# More info | https://github.com/GameServerManagers/LinuxGSM/wiki/Alerts#more-info
+postalert="off"
+postdays="7"
+posttarget="https://hastebin.com"
+
+# Discord Alerts | https://github.com/GameServerManagers/LinuxGSM/wiki/Discord
+discordalert="off"
+discordwebhook="webhook"
+
+# Email Alerts | https://github.com/GameServerManagers/LinuxGSM/wiki/Email
+emailalert="off"
+email="email@example.com"
+emailfrom=""
+
+# IFTTT Alerts | https://github.com/GameServerManagers/LinuxGSM/wiki/IFTTT
+iftttalert="off"
+ifttttoken="accesstoken"
+iftttevent="linuxgsm_alert"
+
+# Mailgun Email Alerts | https://github.com/GameServerManagers/LinuxGSM/wiki/mailgun
+mailgunalert="off"
+mailguntoken="accesstoken"
+mailgundomain="example.com"
+mailgunemailfrom="alert@example.com"
+mailgunemail="email@myemail.com"
+
+# Pushbullet Alerts | https://github.com/GameServerManagers/LinuxGSM/wiki/Pushbullet
+pushbulletalert="off"
+pushbullettoken="accesstoken"
+channeltag=""
+
+# Pushover Alerts | https://github.com/GameServerManagers/LinuxGSM/wiki/Pushover
+pushoveralert="off"
+pushovertoken="accesstoken"
+
+# Telegram Alerts | https://github.com/GameServerManagers/LinuxGSM/wiki/Telegram
+telegramalert="off"
+telegramtoken="accesstoken"
+telegramchatid=""
+
+## Updating | https://github.com/GameServerManagers/LinuxGSM/wiki/Update
+updateonstart="off"
+
+## Backup | https://github.com/GameServerManagers/LinuxGSM/wiki/Backup
+maxbackups="4"
+maxbackupdays="30"
+stoponbackup="on"
+
+## Logging | https://github.com/GameServerManagers/LinuxGSM/wiki/Logging
+consolelogging="on"
+logdays="7"
+
+#### LinuxGSM Advanced Settings ####
+
+## SteamCMD Settings
+# Server appid
+appid="817300"
+
+## LinuxGSM Server Details
+# Do not edit
+gamename="Base Defense"
+engine="goldsource"
+
+#### Directories ####
+# Edit with care
+
+## Server Specific Directories
+systemdir="${serverfiles}/bdef"
+executabledir="${serverfiles}"
+executable="./hlds_run"
+servercfg="${servicename}.cfg"
+servercfgdefault="server.cfg"
+servercfgdir="${systemdir}"
+servercfgfullpath="${servercfgdir}/${servercfg}"
+
+## Backup Directory
+backupdir="${rootdir}/backups"
+
+## Logging Directories
+logdir="${rootdir}/log"
+gamelogdir="${systemdir}/logs"
+lgsmlogdir="${logdir}/script"
+consolelogdir="${logdir}/console"
+lgsmlog="${lgsmlogdir}/${servicename}-script.log"
+consolelog="${consolelogdir}/${servicename}-console.log"
+alertlog="${lgsmlogdir}/${servicename}-alert.log"
+postdetailslog="${lgsmlogdir}/${servicename}-postdetails.log"
+
+## Logs Naming
+lgsmlogdate="${lgsmlogdir}/${servicename}-script-$(date '+%Y-%m-%d-%H:%M:%S').log"
+consolelogdate="${consolelogdir}/${servicename}-console-$(date '+%Y-%m-%d-%H:%M:%S').log"

+ 1 - 1
lgsm/config-default/config-lgsm/bmdmserver/_default.cfg

@@ -18,7 +18,7 @@ maxplayers="16"
 
 
 ## Optional: Game Server Login Token
 ## Optional: Game Server Login Token
 # GSLT can be used for running a public server.
 # GSLT can be used for running a public server.
-# More info: https://gameservermanagers.com/gslt
+# More info: https://linuxgsm.com/gslt
 gslt=""
 gslt=""
 
 
 ## Server Start Command | https://github.com/GameServerManagers/LinuxGSM/wiki/Start-Parameters#additional-parameters
 ## Server Start Command | https://github.com/GameServerManagers/LinuxGSM/wiki/Start-Parameters#additional-parameters

+ 1 - 1
lgsm/config-default/config-lgsm/boserver/_default.cfg

@@ -10,7 +10,7 @@
 
 
 ## Optional: Game Server Login Token
 ## Optional: Game Server Login Token
 # GSLT can be used for running a public server.
 # GSLT can be used for running a public server.
-# More info: https://gameservermanagers.com/gslt
+# More info: https://linuxgsm.com/gslt
 gslt=""
 gslt=""
 ip=""
 ip=""
 
 

+ 120 - 0
lgsm/config-default/config-lgsm/bt1944server/_default.cfg

@@ -0,0 +1,120 @@
+##################################
+######## Default Settings ########
+##################################
+# DO NOT EDIT WILL BE OVERWRITTEN!
+# Copy settings from here and use them in either
+# common.cfg - applies settings to every instance
+# [instance].cfg - applies settings to a specific instance
+
+#### Server Settings ####
+
+## Server Start Settings | https://github.com/GameServerManagers/LinuxGSM/wiki/Start-Parameters
+ip="0.0.0.0"
+port="7777"
+queryport="7780"
+
+## Server Start Command | https://github.com/GameServerManagers/LinuxGSM/wiki/Start-Parameters#additional-parameters
+fn_parms(){
+parms="/Game/Maps/Final_Maps/Derailed?Game=/Script/ShooterGame.BombGameMode?listen -log -broadcastip=\"${ip}\" -PORT=${port} -QueryPort=${queryport} -defgameini=\"${servercfgfullpath}\""
+}
+
+#### LinuxGSM Settings ####
+
+## Notification Alerts
+# (on|off)
+
+# More info | https://github.com/GameServerManagers/LinuxGSM/wiki/Alerts#more-info
+postalert="off"
+postdays="7"
+posttarget="https://hastebin.com"
+
+# Discord Alerts | https://github.com/GameServerManagers/LinuxGSM/wiki/Discord
+discordalert="off"
+discordwebhook="webhook"
+
+# Email Alerts | https://github.com/GameServerManagers/LinuxGSM/wiki/Email
+emailalert="off"
+email="email@example.com"
+emailfrom=""
+
+# IFTTT Alerts | https://github.com/GameServerManagers/LinuxGSM/wiki/IFTTT
+iftttalert="off"
+ifttttoken="accesstoken"
+iftttevent="linuxgsm_alert"
+
+# Mailgun Email Alerts | https://github.com/GameServerManagers/LinuxGSM/wiki/mailgun
+mailgunalert="off"
+mailguntoken="accesstoken"
+mailgundomain="example.com"
+mailgunemailfrom="alert@example.com"
+mailgunemail="email@myemail.com"
+
+# Pushbullet Alerts | https://github.com/GameServerManagers/LinuxGSM/wiki/Pushbullet
+pushbulletalert="off"
+pushbullettoken="accesstoken"
+channeltag=""
+
+# Pushover Alerts | https://github.com/GameServerManagers/LinuxGSM/wiki/Pushover
+pushoveralert="off"
+pushovertoken="accesstoken"
+
+# Telegram Alerts | https://github.com/GameServerManagers/LinuxGSM/wiki/Telegram
+telegramalert="off"
+telegramtoken="accesstoken"
+telegramchatid=""
+
+## Updating | https://github.com/GameServerManagers/LinuxGSM/wiki/Update
+updateonstart="off"
+
+## Backup | https://github.com/GameServerManagers/LinuxGSM/wiki/Backup
+maxbackups="4"
+maxbackupdays="30"
+stoponbackup="on"
+
+## Logging | https://github.com/GameServerManagers/LinuxGSM/wiki/Logging
+consolelogging="on"
+logdays="7"
+
+#### LinuxGSM Advanced Settings ####
+
+## SteamCMD Settings
+# Server appid
+appid="805140"
+# Steam App Branch Select
+# Allows to opt into the various Steam app branches. Default branch is "".
+# Example: "-beta latest_experimental"
+branch=""
+
+## LinuxGSM Server Details
+# Do not edit
+gamename="Battalion 1944"
+engine="unreal4"
+
+#### Directories ####
+# Edit with care
+
+## Server Specific Directories
+systemdir="${serverfiles}/Linux/Battalion"
+executabledir="${systemdir}/Binaries/Linux"
+executable="./BattalionServer"
+servercfgdir="${systemdir}/Saved/Config/LinuxServer"
+servercfg="${servicename}.ini"
+servercfgdefault="DefaultGame.ini"
+servercfgfullpath="${servercfgdir}/${servercfg}"
+
+## Backup Directory
+backupdir="${lgsmdir}/backup"
+
+## Logging Directories
+logdir="${rootdir}/log"
+gamelogdir="${systemdir}/Saved/Logs"
+lgsmlogdir="${logdir}/script"
+consolelogdir="${logdir}/console"
+lgsmlog="${lgsmlogdir}/${servicename}-script.log"
+consolelog="${consolelogdir}/${servicename}-console.log"
+alertlog="${lgsmlogdir}/${servicename}-alert.log"
+postdetailslog="${lgsmlogdir}/${servicename}-postdetails.log"
+
+## Logs Naming
+lgsmlogdate="${lgsmlogdir}/${servicename}-script-$(date '+%Y-%m-%d-%H:%M:%S').log"
+consolelogdate="${consolelogdir}/${servicename}-console-$(date '+%Y-%m-%d-%H:%M:%S').log"

+ 1 - 1
lgsm/config-default/config-lgsm/csgoserver/_default.cfg

@@ -30,7 +30,7 @@ tickrate="64"
 
 
 ## Required: Game Server Login Token
 ## Required: Game Server Login Token
 # GSLT is required for running a public server.
 # GSLT is required for running a public server.
-# More info: https://gameservermanagers.com/gslt
+# More info: https://linuxgsm.com/gslt
 gslt=""
 gslt=""
 
 
 ## Optional: Workshop Parameters
 ## Optional: Workshop Parameters

+ 1 - 1
lgsm/config-default/config-lgsm/cssserver/_default.cfg

@@ -18,7 +18,7 @@ maxplayers="16"
 
 
 ## Required: Game Server Login Token
 ## Required: Game Server Login Token
 # GSLT is required for running a public server.
 # GSLT is required for running a public server.
-# More info: https://gameservermanagers.com/gslt
+# More info: https://linuxgsm.com/gslt
 gslt=""
 gslt=""
 
 
 ## Server Start Command | https://github.com/GameServerManagers/LinuxGSM/wiki/Start-Parameters#additional-parameters
 ## Server Start Command | https://github.com/GameServerManagers/LinuxGSM/wiki/Start-Parameters#additional-parameters

+ 1 - 1
lgsm/config-default/config-lgsm/emserver/_default.cfg

@@ -18,7 +18,7 @@ maxplayers="62"
 
 
 ## Optional: Game Server Login Token
 ## Optional: Game Server Login Token
 # GSLT can be used for running a public server.
 # GSLT can be used for running a public server.
-# More info: https://gameservermanagers.com/gslt
+# More info: https://linuxgsm.com/gslt
 gslt=""
 gslt=""
 
 
 ## Server Start Command | https://github.com/GameServerManagers/LinuxGSM/wiki/Start-Parameters#additional-parameters
 ## Server Start Command | https://github.com/GameServerManagers/LinuxGSM/wiki/Start-Parameters#additional-parameters

+ 104 - 0
lgsm/config-default/config-lgsm/etlserver/_default.cfg

@@ -0,0 +1,104 @@
+##################################
+######## Default Settings ########
+##################################
+# DO NOT EDIT WILL BE OVERWRITTEN!
+# Copy settings from here and use them in either
+# common.cfg - applies settings to every instance
+# [instance].cfg - applies settings to a specific instance
+
+#### Server Settings ####
+
+## Server Start Command | https://github.com/GameServerManagers/LinuxGSM/wiki/Start-Parameters#additional-parameters
+fn_parms(){
+	parms="+set net_strict 1 +set fs_homepath ${serverfiles} +exec ${servercfg}"
+}
+
+#### LinuxGSM Settings ####
+
+## Notification Alerts
+# (on|off)
+
+# More info | https://github.com/GameServerManagers/LinuxGSM/wiki/Alerts#more-info
+postalert="off"
+postdays="7"
+posttarget="https://hastebin.com"
+
+# Discord Alerts | https://github.com/GameServerManagers/LinuxGSM/wiki/Discord
+discordalert="off"
+discordwebhook="webhook"
+
+# Email Alerts | https://github.com/GameServerManagers/LinuxGSM/wiki/Email
+emailalert="off"
+email="email@example.com"
+emailfrom=""
+
+# IFTTT Alerts | https://github.com/GameServerManagers/LinuxGSM/wiki/IFTTT
+iftttalert="off"
+ifttttoken="accesstoken"
+iftttevent="linuxgsm_alert"
+
+# Mailgun Email Alerts | https://github.com/GameServerManagers/LinuxGSM/wiki/mailgun
+mailgunalert="off"
+mailguntoken="accesstoken"
+mailgundomain="example.com"
+mailgunemailfrom="alert@example.com"
+mailgunemail="email@myemail.com"
+
+# Pushbullet Alerts | https://github.com/GameServerManagers/LinuxGSM/wiki/Pushbullet
+pushbulletalert="off"
+pushbullettoken="accesstoken"
+channeltag=""
+
+# Pushover Alerts | https://github.com/GameServerManagers/LinuxGSM/wiki/Pushover
+pushoveralert="off"
+pushovertoken="accesstoken"
+
+# Telegram Alerts | https://github.com/GameServerManagers/LinuxGSM/wiki/Telegram
+telegramalert="off"
+telegramtoken="accesstoken"
+telegramchatid=""
+
+## Backup | https://github.com/GameServerManagers/LinuxGSM/wiki/Backup
+maxbackups="4"
+maxbackupdays="30"
+stoponbackup="on"
+
+## Logging | https://github.com/GameServerManagers/LinuxGSM/wiki/Logging
+consolelogging="on"
+logdays="7"
+
+#### LinuxGSM Advanced Settings ####
+
+## LinuxGSM Server Details
+# Do not edit
+gamename="ET: Legacy"
+engine="idtech3"
+
+#### Directories ####
+# Edit with care
+
+## Server Specific Directories
+systemdir="${serverfiles}"
+executabledir="${systemdir}"
+executable="./etlded"
+servercfg="${servicename}.cfg"
+servercfgdefault="server.cfg"
+servercfgdir="${systemdir}/etmain"
+servercfgfullpath="${servercfgdir}/${servercfg}"
+
+## Backup Directory
+backupdir="${rootdir}/backups"
+
+## Logging Directories
+logdir="${rootdir}/log"
+gamelogdir="${serverfiles}/Logs"
+lgsmlogdir="${logdir}/script"
+consolelogdir="${logdir}/console"
+lgsmlog="${lgsmlogdir}/${servicename}-script.log"
+consolelog="${consolelogdir}/${servicename}-console.log"
+alertlog="${lgsmlogdir}/${servicename}-alert.log"
+postdetailslog="${lgsmlogdir}/${servicename}-postdetails.log"
+
+## Logs Naming
+lgsmlogdate="${lgsmlogdir}/${servicename}-script-$(date '+%Y-%m-%d-%H:%M:%S').log"
+consolelogdate="${consolelogdir}/${servicename}-console-$(date '+%Y-%m-%d-%H:%M:%S').log"

+ 1 - 1
lgsm/config-default/config-lgsm/gmodserver/_default.cfg

@@ -29,7 +29,7 @@ customparms="+r_hunkalloclightmaps 0 -disableluarefresh"
 
 
 ## Optional: Game Server Login Token
 ## Optional: Game Server Login Token
 # GSLT can be used for running a public server.
 # GSLT can be used for running a public server.
-# More info: https://gameservermanagers.com/gslt
+# More info: https://linuxgsm.com/gslt
 gslt=""
 gslt=""
 
 
 ## Server Start Command | https://github.com/GameServerManagers/LinuxGSM/wiki/Start-Parameters#additional-parameters
 ## Server Start Command | https://github.com/GameServerManagers/LinuxGSM/wiki/Start-Parameters#additional-parameters

+ 1 - 1
lgsm/config-default/config-lgsm/insserver/_default.cfg

@@ -20,7 +20,7 @@ workshop="0"
 
 
 ## Optional: Game Server Login Token
 ## Optional: Game Server Login Token
 # GSLT can be used for running a public server.
 # GSLT can be used for running a public server.
-# More info: https://gameservermanagers.com/gslt
+# More info: https://linuxgsm.com/gslt
 gslt=""
 gslt=""
 
 
 ## Server Start Command | https://github.com/GameServerManagers/LinuxGSM/wiki/Start-Parameters#additional-parameters
 ## Server Start Command | https://github.com/GameServerManagers/LinuxGSM/wiki/Start-Parameters#additional-parameters

+ 1 - 1
lgsm/config-default/config-lgsm/nmrihserver/_default.cfg

@@ -18,7 +18,7 @@ maxplayers="8"
 
 
 ## Optional: Game Server Login Token
 ## Optional: Game Server Login Token
 # GSLT can be used for running a public server.
 # GSLT can be used for running a public server.
-# More info: https://gameservermanagers.com/gslt
+# More info: https://linuxgsm.com/gslt
 gslt=""
 gslt=""
 
 
 ## Server Start Command | https://github.com/GameServerManagers/LinuxGSM/wiki/Start-Parameters#additional-parameters
 ## Server Start Command | https://github.com/GameServerManagers/LinuxGSM/wiki/Start-Parameters#additional-parameters

+ 10 - 2
lgsm/config-default/config-lgsm/rustserver/_default.cfg

@@ -19,7 +19,8 @@ servername="Rust"
 maxplayers="50"
 maxplayers="50"
 
 
 # Advanced Start Settings
 # Advanced Start Settings
-seed="" #  default random; range : 1 to 2147483647 ; used to change or reproduce a procedural map
+seed="" # default random; range : 1 to 2147483647 ; used to change or reproduce a procedural map
+salt="" # default random; range : unknown range ; used to recover a known setting from an existing map
 worldsize="3000" # default 3000; range : 1000 to 6000 ; map size in meters
 worldsize="3000" # default 3000; range : 1000 to 6000 ; map size in meters
 saveinterval="300" # Auto-save in seconds
 saveinterval="300" # Auto-save in seconds
 tickrate="30" # default 30; range : 15 to 100
 tickrate="30" # default 30; range : 15 to 100
@@ -34,7 +35,14 @@ else
 	# Keep randomness of the number if not set
 	# Keep randomness of the number if not set
 	conditionalseed=""
 	conditionalseed=""
 fi
 fi
-parms="-batchmode +server.ip ${ip} +server.port ${port} +server.tickrate ${tickrate} +server.hostname \"${servername}\" +server.identity \"${servicename}\" ${conditionalseed} +server.maxplayers ${maxplayers} +server.worldsize ${worldsize} +server.saveinterval ${saveinterval} +rcon.web ${rconweb} +rcon.ip ${ip} +rcon.port ${rconport} +rcon.password \"${rconpassword}\" -logfile \"${gamelogdate}\""
+if [ -n "${salt}" ]; then
+	# If set, then add to start parms
+	conditionalsalt="+server.salt ${salt}"
+else
+	# Keep randomness of the number if not set
+	conditionalsalt=""
+fi
+parms="-batchmode +server.ip ${ip} +server.port ${port} +server.tickrate ${tickrate} +server.hostname \"${servername}\" +server.identity \"${servicename}\" ${conditionalseed} ${conditionalsalt} +server.maxplayers ${maxplayers} +server.worldsize ${worldsize} +server.saveinterval ${saveinterval} +rcon.web ${rconweb} +rcon.ip ${ip} +rcon.port ${rconport} +rcon.password \"${rconpassword}\" -logfile \"${gamelogdate}\""
 }
 }
 
 
 #### LinuxGSM Settings ####
 #### LinuxGSM Settings ####

+ 118 - 0
lgsm/config-default/config-lgsm/rwserver/_default.cfg

@@ -0,0 +1,118 @@
+##################################
+######## Default Settings ########
+##################################
+# DO NOT EDIT WILL BE OVERWRITTEN!
+# Copy settings from here and use them in either
+# common.cfg - applies settings to every instance
+# [instance].cfg - applies settings to a specific instance
+
+#### Server Settings ####
+
+## Server Start Settings | https://github.com/GameServerManagers/LinuxGSM/wiki/Start-Parameters
+javaram="2048" # -Xmx$2048M
+
+## Server Start Command | https://github.com/GameServerManagers/LinuxGSM/wiki/Start-Parameters#additional-parameters
+fn_parms(){
+parms=""
+}
+
+#### LinuxGSM Settings ####
+
+## Notification Alerts
+# (on|off)
+
+# More info | https://github.com/GameServerManagers/LinuxGSM/wiki/Alerts#more-info
+postalert="off"
+postdays="7"
+posttarget="https://hastebin.com"
+
+# Discord Alerts | https://github.com/GameServerManagers/LinuxGSM/wiki/Discord
+discordalert="off"
+discordwebhook="webhook"
+
+# Email Alerts | https://github.com/GameServerManagers/LinuxGSM/wiki/Email
+emailalert="off"
+email="email@example.com"
+emailfrom=""
+
+# IFTTT Alerts | https://github.com/GameServerManagers/LinuxGSM/wiki/IFTTT
+iftttalert="off"
+ifttttoken="accesstoken"
+iftttevent="linuxgsm_alert"
+
+# Mailgun Email Alerts | https://github.com/GameServerManagers/LinuxGSM/wiki/mailgun
+mailgunalert="off"
+mailguntoken="accesstoken"
+mailgundomain="example.com"
+mailgunemailfrom="alert@example.com"
+mailgunemail="email@myemail.com"
+
+# Pushbullet Alerts | https://github.com/GameServerManagers/LinuxGSM/wiki/Pushbullet
+pushbulletalert="off"
+pushbullettoken="accesstoken"
+channeltag=""
+
+# Pushover Alerts | https://github.com/GameServerManagers/LinuxGSM/wiki/Pushover
+pushoveralert="off"
+pushovertoken="accesstoken"
+
+# Telegram Alerts | https://github.com/GameServerManagers/LinuxGSM/wiki/Telegram
+telegramalert="off"
+telegramtoken="accesstoken"
+telegramchatid=""
+
+## Updating | https://github.com/GameServerManagers/LinuxGSM/wiki/Update
+updateonstart="off"
+
+## Backup | https://github.com/GameServerManagers/LinuxGSM/wiki/Backup
+maxbackups="4"
+maxbackupdays="30"
+stoponbackup="on"
+
+## Logging | https://github.com/GameServerManagers/LinuxGSM/wiki/Logging
+consolelogging="on"
+logdays="7"
+
+#### LinuxGSM Advanced Settings ####
+
+## SteamCMD Settings
+# Server appid
+appid="339010"
+# Steam App Branch Select
+# Allows to opt into the various Steam app branches. Default branch is "".
+# Example: "-beta latest_experimental"
+branch=""
+
+## LinuxGSM Server Details
+# Do not edit
+gamename="Rising World"
+engine="risingworld"
+
+#### Directories ####
+# Edit with care
+
+## Server Specific Directories
+systemdir="${serverfiles}"
+executabledir="${serverfiles}"
+executable="java -Xmx${javaram}m -jar ${serverfiles}/server.jar"
+servercfg="server.properties"
+servercfgdefault="server.properties"
+servercfgdir="${serverfiles}"
+servercfgfullpath="${servercfgdir}/${servercfg}"
+
+## Backup Directory
+backupdir="${rootdir}/backups"
+
+## Logging Directories
+logdir="${rootdir}/log"
+gamelogdir="${systemdir}/logs"
+lgsmlogdir="${logdir}/script"
+consolelogdir="${logdir}/console"
+lgsmlog="${lgsmlogdir}/${servicename}-script.log"
+consolelog="${consolelogdir}/${servicename}-console.log"
+alertlog="${lgsmlogdir}/${servicename}-alert.log"
+postdetailslog="${lgsmlogdir}/${servicename}-postdetails.log"
+
+## Logs Naming
+lgsmlogdate="${lgsmlogdir}/${servicename}-script-$(date '+%Y-%m-%d-%H:%M:%S').log"
+consolelogdate="${consolelogdir}/${servicename}-console-$(date '+%Y-%m-%d-%H:%M:%S').log"

+ 1 - 1
lgsm/config-default/config-lgsm/tf2server/_default.cfg

@@ -18,7 +18,7 @@ maxplayers="16"
 
 
 ## Optional: Game Server Login Token
 ## Optional: Game Server Login Token
 # GSLT can be used for running a public server.
 # GSLT can be used for running a public server.
-# More info: https://gameservermanagers.com/gslt
+# More info: https://linuxgsm.com/gslt
 gslt=""
 gslt=""
 
 
 ## Server Start Command | https://github.com/GameServerManagers/LinuxGSM/wiki/Start-Parameters#additional-parameters
 ## Server Start Command | https://github.com/GameServerManagers/LinuxGSM/wiki/Start-Parameters#additional-parameters

+ 1 - 1
lgsm/config-default/config-lgsm/tuserver/_default.cfg

@@ -15,7 +15,7 @@ queryport="27015"
 
 
 ## Optional: Game Server Login Token
 ## Optional: Game Server Login Token
 # GSLT can be used for running a public server.
 # GSLT can be used for running a public server.
-# More info: https://gameservermanagers.com/gslt
+# More info: https://linuxgsm.com/gslt
 gslt=""
 gslt=""
 
 
 ## Server Start Command | https://github.com/GameServerManagers/LinuxGSM/wiki/Start-Parameters#additional-parameters
 ## Server Start Command | https://github.com/GameServerManagers/LinuxGSM/wiki/Start-Parameters#additional-parameters

+ 1 - 1
lgsm/config-default/config-lgsm/ut3server/_default.cfg

@@ -11,7 +11,7 @@
 ## Server Start Settings | https://github.com/GameServerManagers/LinuxGSM/wiki/Start-Parameters
 ## Server Start Settings | https://github.com/GameServerManagers/LinuxGSM/wiki/Start-Parameters
 ip="0.0.0.0"
 ip="0.0.0.0"
 port="7777"
 port="7777"
-queryport="25300"
+queryport="6500"
 defaultmap="VCTF-Suspense"
 defaultmap="VCTF-Suspense"
 game="UTGameContent.UTVehicleCTFGame_Content"
 game="UTGameContent.UTVehicleCTFGame_Content"
 mutators="" #"UTGame.UTMutator_Instagib,UTGame.UTMutator_LowGrav"
 mutators="" #"UTGame.UTMutator_Instagib,UTGame.UTMutator_LowGrav"

+ 1 - 1
lgsm/config-default/config-lgsm/zpsserver/_default.cfg

@@ -18,7 +18,7 @@ maxplayers="20"
 
 
 ## Optional: Game Server Login Token
 ## Optional: Game Server Login Token
 # GSLT can be used for running a public server.
 # GSLT can be used for running a public server.
-# More info: https://gameservermanagers.com/gslt
+# More info: https://linuxgsm.com/gslt
 gslt=""
 gslt=""
 
 
 ## Server Start Command | https://github.com/GameServerManagers/LinuxGSM/wiki/Start-Parameters#additional-parameters
 ## Server Start Command | https://github.com/GameServerManagers/LinuxGSM/wiki/Start-Parameters#additional-parameters

+ 4 - 0
lgsm/data/serverlist.csv

@@ -3,9 +3,11 @@ sdtd,sdtdserver,7 Days to Die
 ark,arkserver,ARK: Survival Evolved
 ark,arkserver,ARK: Survival Evolved
 bo,boserver,Ballistic Overkill
 bo,boserver,Ballistic Overkill
 bf1942,bf1942server,Battlefield 1942
 bf1942,bf1942server,Battlefield 1942
+bd,bdserver,Base Defense
 bmdm,bmdmserver,Black Mesa: Deathmatch
 bmdm,bmdmserver,Black Mesa: Deathmatch
 bs,bsserver,Blade Symphony
 bs,bsserver,Blade Symphony
 bb2,bb2server,BrainBread 2
 bb2,bb2server,BrainBread 2
+bt1944,bt1944server,Battalion 1944
 cod,codserver,Call of Duty
 cod,codserver,Call of Duty
 cod2,cod2server,Call of Duty 2
 cod2,cod2server,Call of Duty 2
 cod4,cod4server,Call of Duty 4
 cod4,cod4server,Call of Duty 4
@@ -55,6 +57,7 @@ qw,qwserver,Quake World
 ro,roserver,Red Orchestra: Ostfront 41-45
 ro,roserver,Red Orchestra: Ostfront 41-45
 ricochet,ricochetserver,Ricochet
 ricochet,ricochetserver,Ricochet
 rust,rustserver,Rust
 rust,rustserver,Rust
+rw,rwserver, Rising World
 samp,sampserver,San Andreas Multiplayer
 samp,sampserver,San Andreas Multiplayer
 ss3,ss3server,Serious Sam 3: BFE
 ss3,ss3server,Serious Sam 3: BFE
 sb,sbserver,Starbound
 sb,sbserver,Starbound
@@ -71,4 +74,5 @@ ut2k4,ut2k4server,Unreal Tournament 2004
 ut3,ut3server,Unreal Tournament 3
 ut3,ut3server,Unreal Tournament 3
 ut99,ut99server,Unreal Tournament 99
 ut99,ut99server,Unreal Tournament 99
 wet,wetserver,Wolfenstein: Enemy Territory
 wet,wetserver,Wolfenstein: Enemy Territory
+etl,etlserver,ET: Legacy
 zps,zpsserver,Zombie Panic! Source
 zps,zpsserver,Zombie Panic! Source

+ 3 - 3
lgsm/functions/alert.sh

@@ -1,7 +1,7 @@
 #!/bin/bash
 #!/bin/bash
 # LinuxGSM alert.sh function
 # LinuxGSM alert.sh function
 # Author: Daniel Gibbs
 # Author: Daniel Gibbs
-# Website: https://gameservermanagers.com
+# Website: https://linuxgsm.com
 # Description: Overall function for managing alerts.
 # Description: Overall function for managing alerts.
 
 
 local commandname="ALERT"
 local commandname="ALERT"
@@ -45,12 +45,12 @@ fn_alert_restart(){
 }
 }
 
 
 fn_alert_restart_query(){
 fn_alert_restart_query(){
-	fn_script_log_info "Sending alert: Restarted: ${gsquerycmd}"
+	fn_script_log_info "Sending alert: Restarted: ${servicename}"
 	alertsubject="Alert - ${servicename} - Restarted"
 	alertsubject="Alert - ${servicename} - Restarted"
 	alertemoji="🚨"
 	alertemoji="🚨"
 	alertsound="2"
 	alertsound="2"
 	alerturl="not enabled"
 	alerturl="not enabled"
-	alertbody="gsquery.py failed to query: ${gsquerycmd}"
+	alertbody="Unable to query: ${servicename}"
 }
 }
 
 
 fn_alert_update(){
 fn_alert_update(){

+ 3 - 3
lgsm/functions/alert_discord.sh

@@ -2,7 +2,7 @@
 # LinuxGSM alert_discord.sh function
 # LinuxGSM alert_discord.sh function
 # Author: Daniel Gibbs
 # Author: Daniel Gibbs
 # Contributor: faflfama
 # Contributor: faflfama
-# Website: https://gameservermanagers.com
+# Website: https://linuxgsm.com
 # Description: Sends Discord alert.
 # Description: Sends Discord alert.
 
 
 json=$(cat <<EOF
 json=$(cat <<EOF
@@ -39,7 +39,7 @@ json=$(cat <<EOF
 			},
 			},
 			{
 			{
 				"name": "Server IP",
 				"name": "Server IP",
-				"value": "[${ip}:${port}](https://www.gametracker.com/server_info/${ip}:${port})"
+				"value": "[${extip:-$ip}:${port}](https://www.gametracker.com/server_info/${extip:-$ip}:${port})"
 			},
 			},
 			{
 			{
 				"name": "More info",
 				"name": "More info",
@@ -53,7 +53,7 @@ EOF
 
 
 fn_print_dots "Sending Discord alert"
 fn_print_dots "Sending Discord alert"
 sleep 0.5
 sleep 0.5
-discordsend=$(${curlpath} -sSL -H "Content-Type: application/json" -X POST -d """${json}""" ${discordwebhook})
+discordsend=$(${curlpath} -sSL -H "Content-Type: application/json" -X POST -d """${json}""" "${discordwebhook}")
 
 
 if [ -n "${discordsend}" ]; then
 if [ -n "${discordsend}" ]; then
 	fn_print_fail_nl "Sending Discord alert: ${discordsend}"
 	fn_print_fail_nl "Sending Discord alert: ${discordsend}"

+ 1 - 1
lgsm/functions/alert_email.sh

@@ -1,7 +1,7 @@
 #!/bin/bash
 #!/bin/bash
 # LinuxGSM alert_email.sh function
 # LinuxGSM alert_email.sh function
 # Author: Daniel Gibbs
 # Author: Daniel Gibbs
-# Website: https://gameservermanagers.com
+# Website: https://linuxgsm.com
 # Description: Sends email alert.
 # Description: Sends email alert.
 
 
 local commandname="ALERT"
 local commandname="ALERT"

+ 2 - 2
lgsm/functions/alert_ifttt.sh

@@ -1,7 +1,7 @@
 #!/bin/bash
 #!/bin/bash
 # LinuxGSM alert_ifttt.sh function
 # LinuxGSM alert_ifttt.sh function
 # Author: Daniel Gibbs
 # Author: Daniel Gibbs
-# Website: https://gameservermanagers.com
+# Website: https://linuxgsm.com
 # Description: Sends IFTTT alert.
 # Description: Sends IFTTT alert.
 
 
 local commandname="ALERT"
 local commandname="ALERT"
@@ -19,7 +19,7 @@ EOF
 
 
 fn_print_dots "Sending IFTTT alert"
 fn_print_dots "Sending IFTTT alert"
 sleep 0.5
 sleep 0.5
-iftttsend=$(${curlpath} -sSL -H "Content-Type: application/json" -X POST -d """${json}""" "https://maker.ifttt.com/trigger/${iftttevent}/with/key/${ifttttoken}"|grep "Bad Request")
+iftttsend=$(${curlpath} -sSL -H "Content-Type: application/json" -X POST -d """${json}""" "https://maker.ifttt.com/trigger/${iftttevent}/with/key/${ifttttoken}" | grep "Bad Request")
 
 
 if [ -n "${iftttsend}" ]; then
 if [ -n "${iftttsend}" ]; then
 	fn_print_fail_nl "Sending IFTTT alert: ${pushbulletsend}"
 	fn_print_fail_nl "Sending IFTTT alert: ${pushbulletsend}"

+ 2 - 2
lgsm/functions/alert_mailgun.sh

@@ -1,7 +1,7 @@
 #!/bin/bash
 #!/bin/bash
 # LinuxGSM alert_mailgun.sh function
 # LinuxGSM alert_mailgun.sh function
 # Author: Daniel Gibbs
 # Author: Daniel Gibbs
-# Website: https://gameservermanagers.com
+# Website: https://linuxgsm.com
 # Description: Sends Mailgun Email alert.
 # Description: Sends Mailgun Email alert.
 
 
 local commandname="ALERT"
 local commandname="ALERT"
@@ -17,7 +17,7 @@ mailgunsend=$(${curlpath} -s --user "api:${mailguntoken}" \
 -F subject="${alertemoji} ${alertsubject} ${alertemoji}" \
 -F subject="${alertemoji} ${alertsubject} ${alertemoji}" \
 -F o:tag='alert' \
 -F o:tag='alert' \
 -F o:tag='LinuxGSM' \
 -F o:tag='LinuxGSM' \
--F text="$(cat ${alertlog})" https://api.mailgun.net/v3/${mailgundomain}/messages)
+-F text="$(cat "${alertlog}")" https://api.mailgun.net/v3/${mailgundomain}/messages)
 
 
 if [ -z "${mailgunsend}" ]; then
 if [ -z "${mailgunsend}" ]; then
 	fn_print_fail_nl "Sending Email alert: Mailgun: ${email}"
 	fn_print_fail_nl "Sending Email alert: Mailgun: ${email}"

+ 1 - 1
lgsm/functions/alert_pushbullet.sh

@@ -1,7 +1,7 @@
 #!/bin/bash
 #!/bin/bash
 # LinuxGSM alert_pushbullet.sh function
 # LinuxGSM alert_pushbullet.sh function
 # Author: Daniel Gibbs
 # Author: Daniel Gibbs
-# Website: https://gameservermanagers.com
+# Website: https://linuxgsm.com
 # Description: Sends Pushbullet Messenger alert.
 # Description: Sends Pushbullet Messenger alert.
 
 
 local commandname="ALERT"
 local commandname="ALERT"

+ 4 - 4
lgsm/functions/alert_pushover.sh

@@ -1,7 +1,7 @@
 #!/bin/bash
 #!/bin/bash
 # LinuxGSM alert_pushover.sh function
 # LinuxGSM alert_pushover.sh function
 # Author: Daniel Gibbs
 # Author: Daniel Gibbs
-# Website: https://gameservermanagers.com
+# Website: https://linuxgsm.com
 # Description: Sends Pushover alert.
 # Description: Sends Pushover alert.
 
 
 local commandname="ALERT"
 local commandname="ALERT"
@@ -12,10 +12,10 @@ fn_print_dots "Sending Pushover alert"
 sleep 0.5
 sleep 0.5
 
 
 # Different alerts are given different priorities and notification sounds
 # Different alerts are given different priorities and notification sounds
-if [ "${alertsound}" == "1" ];then
+if [ "${alertsound}" == "1" ]; then
 	alertsound=""
 	alertsound=""
 	alertpriority="0"
 	alertpriority="0"
-elif [ "${alertsound}" == "2" ];then
+elif [ "${alertsound}" == "2" ]; then
 	# restarted
 	# restarted
 	alertsound="siren"
 	alertsound="siren"
 	alertpriority="1"
 	alertpriority="1"
@@ -24,7 +24,7 @@ else
 	alertpriority="0"
 	alertpriority="0"
 fi
 fi
 
 
-pushoversend=$(${curlpath} -sS -F token="${pushovertoken}" -F user="${pushoveruserkey}" -F html="1" -F sound="${alertsound}"  -F priority="${alertpriority}" -F title="${alertemoji} ${alertsubject} ${alertemoji}" -F message=" <b>Message</b><br>${alertbody}<br><br><b>Game</b><br>${gamename}<br><br><b>Server name</b><br>${servername}<br><br><b>Hostname</b><br>${HOSTNAME}<br><br><b>Server IP</b><br><a href='https://www.gametracker.com/server_info/${ip}:${port}'>${ip}:${port}</a><br><br><b>More info</b><br><a href='${alerturl}'>${alerturl}</a>" "https://api.pushover.net/1/messages.json"|grep errors)
+pushoversend=$(${curlpath} -sS -F token="${pushovertoken}" -F user="${pushoveruserkey}" -F html="1" -F sound="${alertsound}"  -F priority="${alertpriority}" -F title="${alertemoji} ${alertsubject} ${alertemoji}" -F message=" <b>Message</b><br>${alertbody}<br><br><b>Game</b><br>${gamename}<br><br><b>Server name</b><br>${servername}<br><br><b>Hostname</b><br>${HOSTNAME}<br><br><b>Server IP</b><br><a href='https://www.gametracker.com/server_info/${ip}:${port}'>${ip}:${port}</a><br><br><b>More info</b><br><a href='${alerturl}'>${alerturl}</a>" "https://api.pushover.net/1/messages.json" | grep errors)
 
 
 if [ -n "${pushoversend}" ]; then
 if [ -n "${pushoversend}" ]; then
 	fn_print_fail_nl "Sending Pushover alert: ${pushoversend}"
 	fn_print_fail_nl "Sending Pushover alert: ${pushoversend}"

+ 2 - 2
lgsm/functions/check.sh

@@ -1,7 +1,7 @@
 #!/bin/bash
 #!/bin/bash
 # LinuxGSM check.sh function
 # LinuxGSM check.sh function
 # Author: Daniel Gibbs
 # Author: Daniel Gibbs
-# Website: https://gameservermanagers.com
+# Website: https://linuxgsm.com
 # Description: Overall function for managing checks.
 # Description: Overall function for managing checks.
 # Runs checks that will either halt on or fix an issue.
 # Runs checks that will either halt on or fix an issue.
 
 
@@ -61,7 +61,7 @@ do
 	fi
 	fi
 done
 done
 
 
-local allowed_commands_array=( command_debug.sh command_details.sh command_monitor.sh command_start.sh command_stop.sh )
+local allowed_commands_array=( command_debug.sh command_details.sh command_monitor.sh command_start.sh command_stop.sh command_dev_query_raw.sh )
 for allowed_command in "${allowed_commands_array[@]}"
 for allowed_command in "${allowed_commands_array[@]}"
 do
 do
 	if [ "${allowed_command}" == "${function_selfname}" ]; then
 	if [ "${allowed_command}" == "${function_selfname}" ]; then

+ 1 - 1
lgsm/functions/check_config.sh

@@ -1,7 +1,7 @@
 #!/bin/bash
 #!/bin/bash
 # LinuxGSM check_config.sh function
 # LinuxGSM check_config.sh function
 # Author: Daniel Gibbs
 # Author: Daniel Gibbs
-# Website: https://gameservermanagers.com
+# Website: https://linuxgsm.com
 # Description: Checks if the server config is missing and warns the user if needed.
 # Description: Checks if the server config is missing and warns the user if needed.
 
 
 local commandname="CHECK"
 local commandname="CHECK"

+ 14 - 14
lgsm/functions/check_deps.sh

@@ -1,7 +1,7 @@
 #!/bin/bash
 #!/bin/bash
 # LinuxGSM check_deps.sh function
 # LinuxGSM check_deps.sh function
 # Author: Daniel Gibbs
 # Author: Daniel Gibbs
-# Website: https://gameservermanagers.com
+# Website: https://linuxgsm.com
 # Description: Checks if required dependencies are installed for LinuxGSM.
 # Description: Checks if required dependencies are installed for LinuxGSM.
 
 
 local commandname="CHECK"
 local commandname="CHECK"
@@ -18,11 +18,11 @@ fn_deps_detector(){
 		depstatus=0
 		depstatus=0
 		deptocheck="${javaversion}"
 		deptocheck="${javaversion}"
 		unset javacheck
 		unset javacheck
-	elif [ -n "$(command -v apt-get 2>/dev/null)" ]; then
-		dpkg-query -W -f='${Status}' ${deptocheck} 2>/dev/null | grep -q -P '^install ok installed'
+	elif [ -n "$(command -v apt 2>/dev/null)" ]; then
+		dpkg-query -W -f='${Status}' "${deptocheck}" 2>/dev/null | grep -q -P '^install ok installed'
 		depstatus=$?
 		depstatus=$?
 	elif [ -n "$(command -v yum 2>/dev/null)" ]; then
 	elif [ -n "$(command -v yum 2>/dev/null)" ]; then
-		yum -q list installed ${deptocheck} > /dev/null 2>&1
+		yum -q list installed "${deptocheck}" > /dev/null 2>&1
 		depstatus=$?
 		depstatus=$?
 	fi
 	fi
 
 
@@ -77,7 +77,7 @@ fn_found_missing_deps(){
 		sleep 0.5
 		sleep 0.5
 		fn_print_error_nl "Checking dependencies: missing: ${red}${array_deps_missing[@]}${default}"
 		fn_print_error_nl "Checking dependencies: missing: ${red}${array_deps_missing[@]}${default}"
 		fn_script_log_error "Checking dependencies: missing: ${array_deps_missing[@]}"
 		fn_script_log_error "Checking dependencies: missing: ${array_deps_missing[@]}"
-		sleep 1
+		sleep 0.5
 		sudo -v > /dev/null 2>&1
 		sudo -v > /dev/null 2>&1
 		if [ $? -eq 0 ]; then
 		if [ $? -eq 0 ]; then
 			fn_print_information_nl "Automatically installing missing dependencies."
 			fn_print_information_nl "Automatically installing missing dependencies."
@@ -90,11 +90,11 @@ fn_found_missing_deps(){
 			sleep 1
 			sleep 1
 			echo -en "   \r"
 			echo -en "   \r"
 			if [ -n "$(command -v dpkg-query 2>/dev/null)" ]; then
 			if [ -n "$(command -v dpkg-query 2>/dev/null)" ]; then
-				cmd="sudo dpkg --add-architecture i386; sudo apt-get update; sudo apt-get -y install ${array_deps_missing[@]}"
-				eval ${cmd}
+				cmd="sudo dpkg --add-architecture i386; sudo apt update; sudo apt -y install ${array_deps_missing[@]}"
+				eval "${cmd}"
 			elif [ -n "$(command -v yum 2>/dev/null)" ]; then
 			elif [ -n "$(command -v yum 2>/dev/null)" ]; then
 				cmd="sudo yum -y install ${array_deps_missing[@]}"
 				cmd="sudo yum -y install ${array_deps_missing[@]}"
-				eval ${cmd}
+				eval "${cmd}"
 			fi
 			fi
 			if [ $? != 0 ]; then
 			if [ $? != 0 ]; then
 				fn_print_failure_nl "Unable to install dependencies"
 				fn_print_failure_nl "Unable to install dependencies"
@@ -108,7 +108,7 @@ fn_found_missing_deps(){
 			fn_print_warning_nl "$(whoami) does not have sudo access. Manually install dependencies."
 			fn_print_warning_nl "$(whoami) does not have sudo access. Manually install dependencies."
 			fn_script_log_warn "$(whoami) does not have sudo access. Manually install dependencies."
 			fn_script_log_warn "$(whoami) does not have sudo access. Manually install dependencies."
 			if [ -n "$(command -v dpkg-query 2>/dev/null)" ]; then
 			if [ -n "$(command -v dpkg-query 2>/dev/null)" ]; then
-				echo "	sudo dpkg --add-architecture i386; sudo apt-get update; sudo apt-get install ${array_deps_missing[@]}"
+				echo "	sudo dpkg --add-architecture i386; sudo apt update; sudo apt install ${array_deps_missing[@]}"
 			elif [ -n "$(command -v yum 2>/dev/null)" ]; then
 			elif [ -n "$(command -v yum 2>/dev/null)" ]; then
 				echo "	sudo yum install ${array_deps_missing[@]}"
 				echo "	sudo yum install ${array_deps_missing[@]}"
 			fi
 			fi
@@ -139,7 +139,7 @@ if [ "${function_selfname}" == "command_install.sh" ]; then
 	echo "================================="
 	echo "================================="
 fi
 fi
 
 
-# Check will only run if using apt-get or yum
+# Check will only run if using apt or yum
 if [ -n "$(command -v dpkg-query 2>/dev/null)" ]; then
 if [ -n "$(command -v dpkg-query 2>/dev/null)" ]; then
 	# Generate array of missing deps
 	# Generate array of missing deps
 	array_deps_missing=()
 	array_deps_missing=()
@@ -149,7 +149,7 @@ if [ -n "$(command -v dpkg-query 2>/dev/null)" ]; then
 
 
 	# All servers except ts3 require tmux
 	# All servers except ts3 require tmux
 	if [ "${gamename}" != "TeamSpeak 3" ]; then
 	if [ "${gamename}" != "TeamSpeak 3" ]; then
-		if [ "$(command -v tmux 2>/dev/null)" ]||[ "$(which tmux 2>/dev/null)" ]||[ -f "/usr/bin/tmux" ]||[ -f "/bin/tmux" ]; then
+		if [ "$(command -v tmux 2>/dev/null)" ]; then
 			tmuxcheck=1 # Added for users compiling tmux from source to bypass check.
 			tmuxcheck=1 # Added for users compiling tmux from source to bypass check.
 		else
 		else
 			array_deps_required+=( tmux )
 			array_deps_required+=( tmux )
@@ -193,7 +193,7 @@ if [ -n "$(command -v dpkg-query 2>/dev/null)" ]; then
 	elif [ "${gamename}" == "Battlefield: 1942" ]; then
 	elif [ "${gamename}" == "Battlefield: 1942" ]; then
 		array_deps_required+=( libncurses5:i386 )
 		array_deps_required+=( libncurses5:i386 )
 	# Call of Duty
 	# Call of Duty
-	elif [ "${gamename}" == "Call of Duty" ]||[ "${gamename}" == "Call of Duty 2" ]; then
+	elif [ "${gamename}" == "Call of Duty" ]||[ "${gamename}" == "Call of Duty: United Offensive" ]||[ "${gamename}" == "Call of Duty 2" ]; then
 		array_deps_required+=( libstdc++5:i386 )
 		array_deps_required+=( libstdc++5:i386 )
 	# Factorio
 	# Factorio
 	elif [ "${gamename}" == "Factorio" ]; then
 	elif [ "${gamename}" == "Factorio" ]; then
@@ -246,7 +246,7 @@ elif [ -n "$(command -v yum 2>/dev/null)" ]; then
 
 
 	# All servers except ts3 require tmux
 	# All servers except ts3 require tmux
 	if [ "${gamename}" != "TeamSpeak 3" ]; then
 	if [ "${gamename}" != "TeamSpeak 3" ]; then
-		if [ "$(command -v tmux 2>/dev/null)" ]||[ "$(which tmux 2>/dev/null)" ]||[ -f "/usr/bin/tmux" ]||[ -f "/bin/tmux" ]; then
+		if [ "$(command -v tmux 2>/dev/null)" ]; then
 			tmuxcheck=1 # Added for users compiling tmux from source to bypass check.
 			tmuxcheck=1 # Added for users compiling tmux from source to bypass check.
 		else
 		else
 			array_deps_required+=( tmux )
 			array_deps_required+=( tmux )
@@ -286,7 +286,7 @@ elif [ -n "$(command -v yum 2>/dev/null)" ]; then
 	elif [ "${gamename}" == "Battlefield: 1942" ]; then
 	elif [ "${gamename}" == "Battlefield: 1942" ]; then
 		array_deps_required+=( ncurses-libs.i686 )
 		array_deps_required+=( ncurses-libs.i686 )
 	# Call of Duty
 	# Call of Duty
-	elif [ "${gamename}" == "Call of Duty" ]||[ "${gamename}" == "Call of Duty 2" ]; then
+	elif [ "${gamename}" == "Call of Duty" ]||[ "${gamename}" == "Call of Duty: United Offensive" ]||[ "${gamename}" == "Call of Duty 2" ]; then
 		array_deps_required+=( compat-libstdc++-33.i686 )
 		array_deps_required+=( compat-libstdc++-33.i686 )
 	# Factorio
 	# Factorio
 	elif [ "${gamename}" == "Factorio" ]; then
 	elif [ "${gamename}" == "Factorio" ]; then

+ 1 - 1
lgsm/functions/check_executable.sh

@@ -1,7 +1,7 @@
 #!/bin/bash
 #!/bin/bash
 # LinuxGSM check_executable.sh function
 # LinuxGSM check_executable.sh function
 # Author: Daniel Gibbs
 # Author: Daniel Gibbs
-# Website: https://gameservermanagers.com
+# Website: https://linuxgsm.com
 # Description: Checks if executable exists.
 # Description: Checks if executable exists.
 
 
 local commandname="CHECK"
 local commandname="CHECK"

+ 2 - 2
lgsm/functions/check_glibc.sh

@@ -1,7 +1,7 @@
 #!/bin/bash
 #!/bin/bash
 # LinuxGSM check_glibc.sh function
 # LinuxGSM check_glibc.sh function
 # Author: Daniel Gibbs
 # Author: Daniel Gibbs
-# Website: https://gameservermanagers.com
+# Website: https://linuxgsm.com
 # Description: Checks if the server has the correct Glibc version or a fix available.
 # Description: Checks if the server has the correct Glibc version or a fix available.
 
 
 local commandname="CHECK"
 local commandname="CHECK"
@@ -17,7 +17,7 @@ elif [ "${glibcrequired}" == "UNKNOWN" ]; then
 		fn_print_error_nl "Glibc fix: ${red}${glibcrequired}${default}"
 		fn_print_error_nl "Glibc fix: ${red}${glibcrequired}${default}"
 		echo -e "	* glibc required: ${red}${glibcrequired}${default}"
 		echo -e "	* glibc required: ${red}${glibcrequired}${default}"
 		echo -e "	* glibc installed: ${glibcversion}"
 		echo -e "	* glibc installed: ${glibcversion}"
-elif [ "$(printf '%s\n'${glibcrequired}'\n' ${glibcversion} | sort -V | head -n 1)" != "${glibcrequired}" ]; then
+elif [ "$(printf '%s\n'${glibcrequired}'\n' "${glibcversion}" | sort -V | head -n 1)" != "${glibcrequired}" ]; then
 	if [ "${glibcfix}" == "yes" ]; then
 	if [ "${glibcfix}" == "yes" ]; then
 		if [ "${function_selfname}" != "command_install.sh" ]; then
 		if [ "${function_selfname}" != "command_install.sh" ]; then
 			fn_print_dots "Glibc fix"
 			fn_print_dots "Glibc fix"

+ 14 - 10
lgsm/functions/check_ip.sh

@@ -1,7 +1,7 @@
 #!/bin/bash
 #!/bin/bash
 # LinuxGSM check_ip.sh function
 # LinuxGSM check_ip.sh function
 # Author: Daniel Gibbs
 # Author: Daniel Gibbs
-# Website: https://gameservermanagers.com
+# Website: https://linuxgsm.com
 # Description: Automatically identifies the server interface IP.
 # Description: Automatically identifies the server interface IP.
 # If multiple interfaces are detected the user will need to manually set using ip="0.0.0.0".
 # If multiple interfaces are detected the user will need to manually set using ip="0.0.0.0".
 
 
@@ -14,18 +14,19 @@ if [ "${gamename}" != "TeamSpeak 3" ]&&[ "${gamename}" != "Mumble" ]&&[ "${travi
 	else
 	else
 		ipcommand="ip"
 		ipcommand="ip"
 	fi
 	fi
-	getip=$(${ipcommand} -o -4 addr|awk '{print $4}'|grep -oe '\([0-9]\{1,3\}\.\?\)\{4\}'|grep -v 127.0.0)
-	getipwc=$(${ipcommand} -o -4 addr|awk '{print $4}'|grep -oe '\([0-9]\{1,3\}\.\?\)\{4\}'|grep -vc 127.0.0)
+	getip=$(${ipcommand} -o -4 addr| awk '{print $4}' | grep -oe '\([0-9]\{1,3\}\.\?\)\{4\}' | grep -v 127.0.0)
+	getipwc=$(${ipcommand} -o -4 addr| awk '{print $4}' | grep -oe '\([0-9]\{1,3\}\.\?\)\{4\}' | grep -vc 127.0.0)
 	info_config.sh
 	info_config.sh
+	info_parms.sh
 
 
 	# IP is not set to specific IP
 	# IP is not set to specific IP
 	if [ "${ip}" == "0.0.0.0" ]||[ "${ip}" == "" ]; then
 	if [ "${ip}" == "0.0.0.0" ]||[ "${ip}" == "" ]; then
 		fn_print_dots "Check IP"
 		fn_print_dots "Check IP"
-		sleep 1
+		sleep 0.5
 		# Multiple interfaces
 		# Multiple interfaces
 		if [ "${getipwc}" -ge "2" ]; then
 		if [ "${getipwc}" -ge "2" ]; then
 			fn_print_fail "Check IP: Multiple IP addresses found."
 			fn_print_fail "Check IP: Multiple IP addresses found."
-			sleep 1
+			sleep 0.5
 			echo -en "\n"
 			echo -en "\n"
 			# IP is set within game config
 			# IP is set within game config
 			if [ "${ipsetinconfig}" == "1" ]; then
 			if [ "${ipsetinconfig}" == "1" ]; then
@@ -50,14 +51,14 @@ if [ "${gamename}" != "TeamSpeak 3" ]&&[ "${gamename}" != "Mumble" ]&&[ "${travi
 			fi
 			fi
 			echo -en "${getip}\n"
 			echo -en "${getip}\n"
 			echo -en "\n"
 			echo -en "\n"
-			echo -en "https://gameservermanagers.com/network-interfaces\n"
+			echo -en "https://linuxgsm.com/network-interfaces\n"
 			echo -en ""
 			echo -en ""
-			fn_script_log_fatal "https://gameservermanagers.com/network-interfaces\n"
+			fn_script_log_fatal "https://linuxgsm.com/network-interfaces\n"
 			core_exit.sh
 			core_exit.sh
 		# Single interface
 		# Single interface
 		elif [ "${ipsetinconfig}" == "1" ]; then
 		elif [ "${ipsetinconfig}" == "1" ]; then
 			fn_print_fail "Check IP: IP address not set in game config."
 			fn_print_fail "Check IP: IP address not set in game config."
-			sleep 1
+			sleep 0.5
 			echo -en "\n"
 			echo -en "\n"
 			fn_print_information "Specify the IP you want to bind within ${servercfg}.\n"
 			fn_print_information "Specify the IP you want to bind within ${servercfg}.\n"
 			echo -en "	* location: ${servercfgfullpath}\n"
 			echo -en "	* location: ${servercfgfullpath}\n"
@@ -65,13 +66,16 @@ if [ "${gamename}" != "TeamSpeak 3" ]&&[ "${gamename}" != "Mumble" ]&&[ "${travi
 			echo -en "Set ${ipinconfigvar} to the following:\n"
 			echo -en "Set ${ipinconfigvar} to the following:\n"
 			echo -en "${getip}\n"
 			echo -en "${getip}\n"
 			echo -en "\n"
 			echo -en "\n"
-			echo -en "https://gameservermanagers.com/network-interfaces\n"
+			echo -en "https://linuxgsm.com/network-interfaces\n"
 			echo -en ""
 			echo -en ""
 			fn_script_log_fatal "IP address not set in game config."
 			fn_script_log_fatal "IP address not set in game config."
 			fn_script_log_fatal "Specify the IP you want to bind within: ${servercfgfullpath}."
 			fn_script_log_fatal "Specify the IP you want to bind within: ${servercfgfullpath}."
-			fn_script_log_fatal "https://gameservermanagers.com/network-interfaces\n"
+			fn_script_log_fatal "https://linuxgsm.com/network-interfaces\n"
 			core_exit.sh
 			core_exit.sh
 		else
 		else
+			fn_print_info_nl "Check IP: ${getip}"
+			fn_script_log_info "IP automatically set as: ${getip}"
+			sleep 0.5
 			ip="${getip}"
 			ip="${getip}"
 		fi
 		fi
 	fi
 	fi

+ 1 - 1
lgsm/functions/check_logs.sh

@@ -1,7 +1,7 @@
 #!/bin/bash
 #!/bin/bash
 # LinuxGSM check_logs.sh function
 # LinuxGSM check_logs.sh function
 # Author: Daniel Gibbs
 # Author: Daniel Gibbs
-# Website: https://gameservermanagers.com
+# Website: https://linuxgsm.com
 # Description: Checks if log files exist.
 # Description: Checks if log files exist.
 
 
 local commandname="CHECK"
 local commandname="CHECK"

+ 18 - 18
lgsm/functions/check_permissions.sh

@@ -2,24 +2,24 @@
 # LinuxGSM check_permissions.sh
 # LinuxGSM check_permissions.sh
 # Author: Daniel Gibbs
 # Author: Daniel Gibbs
 # Contributor: UltimateByte
 # Contributor: UltimateByte
-# Website: https://gameservermanagers.com
+# Website: https://linuxgsm.com
 # Description: Checks ownership & permissions of scripts, files and directories.
 # Description: Checks ownership & permissions of scripts, files and directories.
 
 
 local commandname="CHECK"
 local commandname="CHECK"
 
 
 fn_check_ownership(){
 fn_check_ownership(){
 	if [ -f "${rootdir}/${selfname}" ]; then
 	if [ -f "${rootdir}/${selfname}" ]; then
-		if [ $(find "${rootdir}/${selfname}" -not -user $(whoami)|wc -l) -ne "0" ]; then
+		if [ "$(find "${rootdir}/${selfname}" -not -user $(whoami) | wc -l)" -ne "0" ]; then
 			selfownissue=1
 			selfownissue=1
 		fi
 		fi
 	fi
 	fi
 	if [ -d "${functionsdir}" ]; then
 	if [ -d "${functionsdir}" ]; then
-		if [ $(find "${functionsdir}" -not -user $(whoami)|wc -l) -ne "0" ]; then
+		if [ "$(find "${functionsdir}" -not -user $(whoami) | wc -l)" -ne "0" ]; then
 			funcownissue=1
 			funcownissue=1
 		fi
 		fi
 	fi
 	fi
 	if [ -d "${serverfiles}" ]; then
 	if [ -d "${serverfiles}" ]; then
-		if [ $(find "${serverfiles}" -not -user $(whoami)|wc -l) -ne "0" ]; then
+		if [ "$(find "${serverfiles}" -not -user $(whoami) | wc -l)" -ne "0" ]; then
 			filesownissue=1
 			filesownissue=1
 		fi
 		fi
 	fi
 	fi
@@ -31,13 +31,13 @@ fn_check_ownership(){
 		{
 		{
 			echo -e "User\tGroup\tFile\n"
 			echo -e "User\tGroup\tFile\n"
 			if [ "${selfownissue}" == "1" ]; then
 			if [ "${selfownissue}" == "1" ]; then
-				find "${rootdir}/${selfname}" -not -user $(whoami) -printf "%u\t\t%g\t%p\n"
+				find "${rootdir}/${selfname}" -not -user "$(whoami)" -printf "%u\t\t%g\t%p\n"
 			fi
 			fi
 			if [ "${funcownissue}" == "1" ]; then
 			if [ "${funcownissue}" == "1" ]; then
-				find "${functionsdir}" -not -user $(whoami) -printf "%u\t\t%g\t%p\n"
+				find "${functionsdir}" -not -user "$(whoami)" -printf "%u\t\t%g\t%p\n"
 			fi
 			fi
 			if [ "${filesownissue}" == "1"  ]; then
 			if [ "${filesownissue}" == "1"  ]; then
-				find "${serverfiles}" -not -user $(whoami) -printf "%u\t\t%g\t%p\n"
+				find "${serverfiles}" -not -user "$(whoami)" -printf "%u\t\t%g\t%p\n"
 			fi
 			fi
 
 
 		} | column -s $'\t' -t | tee -a "${lgsmlog}"
 		} | column -s $'\t' -t | tee -a "${lgsmlog}"
@@ -54,7 +54,7 @@ fn_check_ownership(){
 
 
 fn_check_permissions(){
 fn_check_permissions(){
 	if [ -d "${functionsdir}" ]; then
 	if [ -d "${functionsdir}" ]; then
-		if [ $(find "${functionsdir}" -type f -not -executable|wc -l) -ne "0" ]; then
+		if [ "$(find "${functionsdir}" -type f -not -executable | wc -l)" -ne "0" ]; then
 			fn_print_fail_nl "Permissions issues found"
 			fn_print_fail_nl "Permissions issues found"
 			fn_script_log_fatal "Permissions issues found"
 			fn_script_log_fatal "Permissions issues found"
 			fn_print_information_nl "The following files are not executable:"
 			fn_print_information_nl "The following files are not executable:"
@@ -102,9 +102,9 @@ fn_check_permissions(){
 		userexecperm="${execperm:0:1}"
 		userexecperm="${execperm:0:1}"
 		groupexecperm="${execperm:1:1}"
 		groupexecperm="${execperm:1:1}"
 		# Check for invalid user permission
 		# Check for invalid user permission
-		if [ "${userexecperm}" == "0" ] || [ "${userexecperm}" == "2" ] || [ "${userexecperm}" == "4" ]  || [ "${userexecperm}" == "6" ]; then
+		if [ "${userexecperm}" == "0" ]||[ "${userexecperm}" == "2" ]||[ "${userexecperm}" == "4" ]||[ "${userexecperm}" == "6" ]; then
 			# If user permission is invalid, then check for invalid group permissions
 			# If user permission is invalid, then check for invalid group permissions
-			if [ "${groupexecperm}" == "0" ] || [ "${groupexecperm}" == "2" ] || [ "${groupexecperm}" == "4" ]  || [ "${groupexecperm}" == "6" ]; then
+			if [ "${groupexecperm}" == "0" ]||[ "${groupexecperm}" == "2" ]||[ "${groupexecperm}" == "4" ]||[ "${groupexecperm}" == "6" ]; then
 				# If permission issues are found
 				# If permission issues are found
 				fn_print_warn_nl "Permissions issue found"
 				fn_print_warn_nl "Permissions issue found"
 				fn_script_log_warn "Permissions issue found"
 				fn_script_log_warn "Permissions issue found"
@@ -122,14 +122,14 @@ fn_check_permissions(){
 				# Grab the first and second digit for user and group permission
 				# Grab the first and second digit for user and group permission
 				userexecperm="${execperm:0:1}"
 				userexecperm="${execperm:0:1}"
 				groupexecperm="${execperm:1:1}"
 				groupexecperm="${execperm:1:1}"
-				if [ "${userexecperm}" == "0" ] || [ "${userexecperm}" == "2" ] || [ "${userexecperm}" == "4" ]  || [ "${userexecperm}" == "6" ]; then
-					if [ "${groupexecperm}" == "0" ] || [ "${groupexecperm}" == "2" ] || [ "${groupexecperm}" == "4" ]  || [ "${groupexecperm}" == "6" ]; then
+				if [ "${userexecperm}" == "0" ]||[ "${userexecperm}" == "2" ]||[ "${userexecperm}" == "4" ]||[ "${userexecperm}" == "6" ]; then
+					if [ "${groupexecperm}" == "0" ]||[ "${groupexecperm}" == "2" ]||[ "${groupexecperm}" == "4" ]||[ "${groupexecperm}" == "6" ]; then
 					# If errors are still found
 					# If errors are still found
 					fn_print_fail_nl "The following file could not be set executable:"
 					fn_print_fail_nl "The following file could not be set executable:"
 					ls -l "${executabledir}/${execname}"
 					ls -l "${executabledir}/${execname}"
 					fn_script_log_warn "The following file could not be set executable:"
 					fn_script_log_warn "The following file could not be set executable:"
 					fn_script_log_info "${executabledir}/${execname}"
 					fn_script_log_info "${executabledir}/${execname}"
-					if [ "${monitorflag}" == 1 ]; then
+					if [ "${monitorflag}" == "1" ]; then
 						alert="permissions"
 						alert="permissions"
 						alert.sh
 						alert.sh
 					fi
 					fi
@@ -171,7 +171,7 @@ fn_sys_perm_fix_manually_msg(){
 	fn_script_log_info "To fix this issue, run the following command as root:"
 	fn_script_log_info "To fix this issue, run the following command as root:"
 	echo "	  chmod a+rx /sys /sys/class /sys/class/net"
 	echo "	  chmod a+rx /sys /sys/class /sys/class/net"
 	fn_script_log "chmod a+rx /sys /sys/class /sys/class/net"
 	fn_script_log "chmod a+rx /sys /sys/class /sys/class/net"
-	sleep 1
+	sleep 0.5
 	if [ "${monitorflag}" == 1 ]; then
 	if [ "${monitorflag}" == 1 ]; then
 		alert="permissions"
 		alert="permissions"
 		alert.sh
 		alert.sh
@@ -184,7 +184,7 @@ fn_sys_perm_errors_fix(){
 	sudo -v > /dev/null 2>&1
 	sudo -v > /dev/null 2>&1
 	if [ $? -eq 0 ]; then
 	if [ $? -eq 0 ]; then
 		fn_print_dots "Automatically fixing /sys permissions"
 		fn_print_dots "Automatically fixing /sys permissions"
-		sleep 2
+		sleep 0.5
 		fn_script_log_info "Automatically fixing /sys permissions."
 		fn_script_log_info "Automatically fixing /sys permissions."
 		if [ "${sysdirpermerror}" == "1" ]; then
 		if [ "${sysdirpermerror}" == "1" ]; then
 			sudo chmod a+rx "/sys"
 			sudo chmod a+rx "/sys"
@@ -200,13 +200,13 @@ fn_sys_perm_errors_fix(){
 		if [ "${sysdirpermerror}" == "1" ]||[ "${classdirpermerror}" == "1" ]||[ "${netdirpermerror}" == "1" ]; then
 		if [ "${sysdirpermerror}" == "1" ]||[ "${classdirpermerror}" == "1" ]||[ "${netdirpermerror}" == "1" ]; then
 			fn_print_error "Could not fix /sys permissions"
 			fn_print_error "Could not fix /sys permissions"
 			fn_script_log_error "Could not fix /sys permissions."
 			fn_script_log_error "Could not fix /sys permissions."
-			sleep 1
+			sleep 0.5
 			# Show the user how to fix
 			# Show the user how to fix
 			fn_sys_perm_fix_manually_msg
 			fn_sys_perm_fix_manually_msg
 		else
 		else
 			fn_print_ok_nl "Automatically fixing /sys permissions"
 			fn_print_ok_nl "Automatically fixing /sys permissions"
 			fn_script_log_pass "Permissions in /sys fixed"
 			fn_script_log_pass "Permissions in /sys fixed"
-			sleep 1
+			sleep 0.5
 		fi
 		fi
 	else
 	else
 	# Show the user how to fix
 	# Show the user how to fix
@@ -221,7 +221,7 @@ fn_sys_perm_error_process(){
 	if [ "${sysdirpermerror}" == "1" ]||[ "${classdirpermerror}" == "1" ]||[ "${netdirpermerror}" == "1" ]; then
 	if [ "${sysdirpermerror}" == "1" ]||[ "${classdirpermerror}" == "1" ]||[ "${netdirpermerror}" == "1" ]; then
 		fn_print_error_nl "Permission error(s) found in /sys"
 		fn_print_error_nl "Permission error(s) found in /sys"
 		fn_script_log_error "Permission error(s) found in /sys"
 		fn_script_log_error "Permission error(s) found in /sys"
-		sleep 1
+		sleep 0.5
 		# Run the fix
 		# Run the fix
 		fn_sys_perm_errors_fix
 		fn_sys_perm_errors_fix
 	fi
 	fi

+ 2 - 2
lgsm/functions/check_root.sh

@@ -1,13 +1,13 @@
 #!/bin/bash
 #!/bin/bash
 # LinuxGSM check_root.sh function
 # LinuxGSM check_root.sh function
 # Author: Daniel Gibbs
 # Author: Daniel Gibbs
-# Website: https://gameservermanagers.com
+# Website: https://linuxgsm.com
 # Description: Checks if the user tried to run the script as root.
 # Description: Checks if the user tried to run the script as root.
 
 
 local commandname="CHECK"
 local commandname="CHECK"
 local function_selfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
 local function_selfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
 
 
-if [ $(whoami) = "root" ]; then
+if [ "$(whoami)" = "root" ]; then
 	fn_print_fail_nl "Do NOT run this script as root!"
 	fn_print_fail_nl "Do NOT run this script as root!"
 	if [ -d "${lgsmlogdir}" ]; then
 	if [ -d "${lgsmlogdir}" ]; then
 		fn_script_log_fatal "${selfname} attempted to run as root."
 		fn_script_log_fatal "${selfname} attempted to run as root."

+ 3 - 3
lgsm/functions/check_status.sh

@@ -2,7 +2,7 @@
 # LinuxGSM check_status.sh function
 # LinuxGSM check_status.sh function
 # Author: Daniel Gibbs
 # Author: Daniel Gibbs
 # Contributor: UltimateByte
 # Contributor: UltimateByte
-# Website: https://gameservermanagers.com
+# Website: https://linuxgsm.com
 # Description: Checks the process status of the server. Either online or offline.
 # Description: Checks the process status of the server. Either online or offline.
 
 
 local commandname="CHECK"
 local commandname="CHECK"
@@ -12,7 +12,7 @@ if [ "${gamename}" == "TeamSpeak 3" ]; then
 	# 1: Server is running
 	# 1: Server is running
 	# 0: Server seems to have died
 	# 0: Server seems to have died
 	# 0: No server running (ts3server.pid is missing)
 	# 0: No server running (ts3server.pid is missing)
-	status=$(${executabledir}/ts3server_startscript.sh status servercfgfullpathfile=${servercfgfullpath})
+	status=$("${executabledir}/ts3server_startscript.sh" status servercfgfullpathfile=${servercfgfullpath})
 	if [ "${status}" == "Server is running" ]; then
 	if [ "${status}" == "Server is running" ]; then
 		status=1
 		status=1
 	else
 	else
@@ -25,7 +25,7 @@ elif [ "${gamename}" == "Mumble" ]; then
 	info_config.sh
 	info_config.sh
 	# 1: Server is listening
 	# 1: Server is listening
 	# 0: Server is not listening, considered closed
 	# 0: Server is not listening, considered closed
-	mumblepid=$(netstat -nap  2>/dev/null | grep udp | grep ${port} | grep murmur | awk '{ print $6 }' | awk -F'/' '{ print $1 }')
+	mumblepid=$(netstat -nap  2>/dev/null | grep udp | grep "${port}" | grep murmur | awk '{ print $6 }' | awk -F'/' '{ print $1 }')
 	if [ -z "${mumblepid}" ]; then
 	if [ -z "${mumblepid}" ]; then
 		status=0
 		status=0
 	else
 	else

+ 2 - 3
lgsm/functions/check_steamcmd.sh

@@ -1,7 +1,7 @@
 #!/bin/bash
 #!/bin/bash
 # LinuxGSM check_steamcmd.sh function
 # LinuxGSM check_steamcmd.sh function
 # Author: Daniel Gibbs
 # Author: Daniel Gibbs
-# Website: https://gameservermanagers.com
+# Website: https://linuxgsm.com
 # Description: Checks if SteamCMD is installed correctly.
 # Description: Checks if SteamCMD is installed correctly.
 
 
 local commandname="CHECK"
 local commandname="CHECK"
@@ -40,7 +40,6 @@ fn_check_steamcmd_user(){
 		fi
 		fi
 		steamuser="anonymous"
 		steamuser="anonymous"
 		steampass=''
 		steampass=''
-		sleep 1
 	fi
 	fi
 }
 }
 
 
@@ -53,7 +52,7 @@ fn_check_steamcmd_sh(){
 		else
 		else
 			fn_print_error_nl "SteamCMD is missing"
 			fn_print_error_nl "SteamCMD is missing"
 			fn_script_log_error "SteamCMD is missing"
 			fn_script_log_error "SteamCMD is missing"
-			sleep 1
+			sleep 0.5
 			fn_install_steamcmd
 			fn_install_steamcmd
 		fi
 		fi
 	elif [ "${function_selfname}" == "command_install.sh" ]; then
 	elif [ "${function_selfname}" == "command_install.sh" ]; then

+ 1 - 1
lgsm/functions/check_system_dir.sh

@@ -1,7 +1,7 @@
 #!/bin/bash
 #!/bin/bash
 # LinuxGSM check_system_dir.sh function
 # LinuxGSM check_system_dir.sh function
 # Author: Daniel Gibbs
 # Author: Daniel Gibbs
-# Website: https://gameservermanagers.com
+# Website: https://linuxgsm.com
 # Description: Checks if systemdir/serverfiles is accessible.
 # Description: Checks if systemdir/serverfiles is accessible.
 
 
 local commandname="CHECK"
 local commandname="CHECK"

+ 3 - 3
lgsm/functions/check_system_requirements.sh

@@ -2,7 +2,7 @@
 # LinuxGSM check_system_requirements.sh
 # LinuxGSM check_system_requirements.sh
 # Author: Daniel Gibbs
 # Author: Daniel Gibbs
 # Contributor: UltimateByte
 # Contributor: UltimateByte
-# Website: https://gameservermanagers.com
+# Website: https://linuxgsm.com
 # Description: Checks RAM requirements
 # Description: Checks RAM requirements
 
 
 local commandname="CHECK"
 local commandname="CHECK"
@@ -39,8 +39,8 @@ if [ -n "${ramrequirementmb}" ]; then
 		sleep 0.5
 		sleep 0.5
 		# Warn the user
 		# Warn the user
 		fn_print_warn_nl "Check RAM: ${ramrequirementgb}G required, ${physmemtotal} available"
 		fn_print_warn_nl "Check RAM: ${ramrequirementgb}G required, ${physmemtotal} available"
-		sleep 1
+		sleep 0.5
 		echo  "	* ${gamename} server may fail to run or experience poor performance."
 		echo  "	* ${gamename} server may fail to run or experience poor performance."
-		sleep 1
+		sleep 0.5
 	fi
 	fi
 fi
 fi

+ 1 - 1
lgsm/functions/check_tmuxception.sh

@@ -2,7 +2,7 @@
 # LinuxGSM check_config.sh function
 # LinuxGSM check_config.sh function
 # Author: Daniel Gibbs
 # Author: Daniel Gibbs
 # Contributor: UltimateByte
 # Contributor: UltimateByte
-# Website: https://gameservermanagers.com
+# Website: https://linuxgsm.com
 # Description: Checks if run from tmux or screen
 # Description: Checks if run from tmux or screen
 
 
 local commandname="check"
 local commandname="check"

+ 15 - 15
lgsm/functions/command_backup.sh

@@ -2,7 +2,7 @@
 # LinuxGSM command_backup.sh function
 # LinuxGSM command_backup.sh function
 # Author: Daniel Gibbs
 # Author: Daniel Gibbs
 # Contributor: UltimateByte
 # Contributor: UltimateByte
-# Website: https://gameservermanagers.com
+# Website: https://linuxgsm.com
 # Description: Creates a .tar.gz file in the backup directory.
 # Description: Creates a .tar.gz file in the backup directory.
 
 
 local commandname="BACKUP"
 local commandname="BACKUP"
@@ -17,7 +17,7 @@ fn_backup_trap(){
 	echo -ne "backup ${backupname}.tar.gz..."
 	echo -ne "backup ${backupname}.tar.gz..."
 	fn_print_canceled_eol_nl
 	fn_print_canceled_eol_nl
 	fn_script_log_info "Backup ${backupname}.tar.gz: CANCELED"
 	fn_script_log_info "Backup ${backupname}.tar.gz: CANCELED"
-	sleep 1
+	sleep 0.5
 	rm -f "${backupdir}/${backupname}.tar.gz" | tee -a "${lgsmlog}"
 	rm -f "${backupdir}/${backupname}.tar.gz" | tee -a "${lgsmlog}"
 	echo -ne "backup ${backupname}.tar.gz..."
 	echo -ne "backup ${backupname}.tar.gz..."
 	fn_print_removed_eol_nl
 	fn_print_removed_eol_nl
@@ -44,9 +44,9 @@ fn_backup_init(){
 	info_distro.sh
 	info_distro.sh
 	fn_print_dots "Backup starting"
 	fn_print_dots "Backup starting"
 	fn_script_log_info "Backup starting"
 	fn_script_log_info "Backup starting"
-	sleep 1
+	sleep 0.5
 	fn_print_ok "Backup starting"
 	fn_print_ok "Backup starting"
-	sleep 1
+	sleep 0.5
 	echo -ne "\n"
 	echo -ne "\n"
 	if [ ! -d "${backupdir}" ]||[ "${backupcount}" == "0" ]; then
 	if [ ! -d "${backupdir}" ]||[ "${backupcount}" == "0" ]; then
 		fn_print_info_nl "There are no previous backups"
 		fn_print_info_nl "There are no previous backups"
@@ -59,11 +59,11 @@ fn_backup_init(){
 			daysago="${lastbackupdaysago} days ago"
 			daysago="${lastbackupdaysago} days ago"
 		fi
 		fi
 		echo "	* Previous backup was created ${daysago}, total size ${lastbackupsize}"
 		echo "	* Previous backup was created ${daysago}, total size ${lastbackupsize}"
-		sleep 1
+		sleep 0.5
 	fi
 	fi
 }
 }
 
 
-# Check if server is started and wether to stop it
+# Check if server is started and whether to stop it
 fn_backup_stop_server(){
 fn_backup_stop_server(){
 	check_status.sh
 	check_status.sh
 	# Server is stopped
 	# Server is stopped
@@ -80,7 +80,7 @@ fn_backup_stop_server(){
 	else
 	else
 		fn_print_warn_nl "${servicename} will be stopped during the backup"
 		fn_print_warn_nl "${servicename} will be stopped during the backup"
 		fn_script_log_warn "${servicename} will be stopped during the backup"
 		fn_script_log_warn "${servicename} will be stopped during the backup"
-		sleep 4
+		sleep 5
 		serverstopped="yes"
 		serverstopped="yes"
 		exitbypass=1
 		exitbypass=1
 		command_stop.sh
 		command_stop.sh
@@ -131,7 +131,7 @@ fn_backup_compression(){
 		fn_script_log_fatal "Starting backup"
 		fn_script_log_fatal "Starting backup"
 	else
 	else
 		fn_print_ok_eol
 		fn_print_ok_eol
-		sleep 1
+		sleep 0.5
 		fn_print_ok_nl "Completed: ${backupname}.tar.gz, total size $(du -sh "${backupdir}/${backupname}.tar.gz" | awk '{print $1}')"
 		fn_print_ok_nl "Completed: ${backupname}.tar.gz, total size $(du -sh "${backupdir}/${backupname}.tar.gz" | awk '{print $1}')"
 		fn_script_log_pass "Backup created: ${backupname}.tar.gz, total size $(du -sh "${backupdir}/${backupname}.tar.gz" | awk '{print $1}')"
 		fn_script_log_pass "Backup created: ${backupname}.tar.gz, total size $(du -sh "${backupdir}/${backupname}.tar.gz" | awk '{print $1}')"
 	fi
 	fi
@@ -153,18 +153,18 @@ fn_backup_prune(){
 		if [ "${backupquotadiff}" -gt "0" ]||[ "${backupsoudatedcount}" -gt "0" ]; then
 		if [ "${backupquotadiff}" -gt "0" ]||[ "${backupsoudatedcount}" -gt "0" ]; then
 			fn_print_dots "Pruning"
 			fn_print_dots "Pruning"
 			fn_script_log_info "Backup pruning activated"
 			fn_script_log_info "Backup pruning activated"
-			sleep 1
+			sleep 0.5
 			fn_print_ok_nl "Pruning"
 			fn_print_ok_nl "Pruning"
-			sleep 1
+			sleep 0.5
 			# If maxbackups greater or equal to backupsoutdatedcount, then it is over maxbackupdays
 			# If maxbackups greater or equal to backupsoutdatedcount, then it is over maxbackupdays
 			if [ "${backupquotadiff}" -ge "${backupsoudatedcount}" ]; then
 			if [ "${backupquotadiff}" -ge "${backupsoudatedcount}" ]; then
 				# Display how many backups will be cleared
 				# Display how many backups will be cleared
 				echo "	* Pruning: ${backupquotadiff} backup(s) has exceeded the ${maxbackups} backups limit"
 				echo "	* Pruning: ${backupquotadiff} backup(s) has exceeded the ${maxbackups} backups limit"
 				fn_script_log_info "Pruning: ${backupquotadiff} backup(s) has exceeded the ${maxbackups} backups limit"
 				fn_script_log_info "Pruning: ${backupquotadiff} backup(s) has exceeded the ${maxbackups} backups limit"
-				sleep 1
+				sleep 0.5
 				fn_print_dots "Pruning: Clearing ${backupquotadiff} backup(s)"
 				fn_print_dots "Pruning: Clearing ${backupquotadiff} backup(s)"
 				fn_script_log_info "Pruning: Clearing ${backupquotadiff} backup(s)"
 				fn_script_log_info "Pruning: Clearing ${backupquotadiff} backup(s)"
-				sleep 1
+				sleep 0.5
 				# Clear backups over quota
 				# Clear backups over quota
 				find "${backupdir}"/ -type f -name "*.tar.gz" -printf '%T@ %p\n' | sort -rn | tail -${backupquotadiff} | cut -f2- -d" " | xargs rm
 				find "${backupdir}"/ -type f -name "*.tar.gz" -printf '%T@ %p\n' | sort -rn | tail -${backupquotadiff} | cut -f2- -d" " | xargs rm
 				fn_print_ok_nl "Pruning: Clearing ${backupquotadiff} backup(s)"
 				fn_print_ok_nl "Pruning: Clearing ${backupquotadiff} backup(s)"
@@ -174,16 +174,16 @@ fn_backup_prune(){
 				# Display how many backups will be cleared
 				# Display how many backups will be cleared
 				echo "	* Pruning: ${backupsoudatedcount} backup(s) are older than ${maxbackupdays} days."
 				echo "	* Pruning: ${backupsoudatedcount} backup(s) are older than ${maxbackupdays} days."
 				fn_script_log_info "Pruning: ${backupsoudatedcount} backup(s) older than ${maxbackupdays} days."
 				fn_script_log_info "Pruning: ${backupsoudatedcount} backup(s) older than ${maxbackupdays} days."
-				sleep 1
+				sleep 0.5
 				fn_print_dots "Pruning: Clearing ${backupquotadiff} backup(s)."
 				fn_print_dots "Pruning: Clearing ${backupquotadiff} backup(s)."
 				fn_script_log_info "Pruning: Clearing ${backupquotadiff} backup(s)"
 				fn_script_log_info "Pruning: Clearing ${backupquotadiff} backup(s)"
-				sleep 1
+				sleep 0.5
 				# Clear backups over quota
 				# Clear backups over quota
 				find "${backupdir}"/ -type f -mtime +"${maxbackupdays}" -exec rm -f {} \;
 				find "${backupdir}"/ -type f -mtime +"${maxbackupdays}" -exec rm -f {} \;
 				fn_print_ok_nl "Pruning: Clearing ${backupquotadiff} backup(s)"
 				fn_print_ok_nl "Pruning: Clearing ${backupquotadiff} backup(s)"
 				fn_script_log_pass "Pruning: Cleared ${backupquotadiff} backup(s)"
 				fn_script_log_pass "Pruning: Cleared ${backupquotadiff} backup(s)"
 			fi
 			fi
-			sleep 1
+			sleep 0.5
 		fi
 		fi
 	fi
 	fi
 }
 }

+ 5 - 5
lgsm/functions/command_console.sh

@@ -1,7 +1,7 @@
 #!/bin/bash
 #!/bin/bash
 # LinuxGSM command_console.sh function
 # LinuxGSM command_console.sh function
 # Author: Daniel Gibbs
 # Author: Daniel Gibbs
-# Website: https://gameservermanagers.com
+# Website: https://linuxgsm.com
 # Description: Gives access to the server tmux console.
 # Description: Gives access to the server tmux console.
 
 
 local commandname="CONSOLE"
 local commandname="CONSOLE"
@@ -24,19 +24,19 @@ if ! fn_prompt_yn "Continue?" Y; then
 	echo Exiting; return
 	echo Exiting; return
 fi
 fi
 fn_print_dots "Accessing console"
 fn_print_dots "Accessing console"
-sleep 1
+sleep 0.5
 check_status.sh
 check_status.sh
 if [ "${status}" != "0" ]; then
 if [ "${status}" != "0" ]; then
 	fn_print_ok_nl "Accessing console"
 	fn_print_ok_nl "Accessing console"
 	fn_script_log_pass "Console accessed"
 	fn_script_log_pass "Console accessed"
-	sleep 1
-	tmux attach-session -t ${servicename}
+	sleep 0.5
+	tmux attach-session -t="${servicename}"
 	fn_print_ok_nl "Closing console"
 	fn_print_ok_nl "Closing console"
 	fn_script_log_pass "Console closed"
 	fn_script_log_pass "Console closed"
 else
 else
 	fn_print_error_nl "Server not running"
 	fn_print_error_nl "Server not running"
 	fn_script_log_error "Failed to access: Server not running"
 	fn_script_log_error "Failed to access: Server not running"
-	sleep 1
+	sleep 0.5
 	if fn_prompt_yn "Do you want to start the server?" Y; then
 	if fn_prompt_yn "Do you want to start the server?" Y; then
 		exitbypass=1
 		exitbypass=1
 		command_start.sh
 		command_start.sh

+ 7 - 7
lgsm/functions/command_debug.sh

@@ -1,7 +1,7 @@
 #!/bin/bash
 #!/bin/bash
 # LinuxGSM command_debug.sh function
 # LinuxGSM command_debug.sh function
 # Author: Daniel Gibbs
 # Author: Daniel Gibbs
-# Website: https://gameservermanagers.com
+# Website: https://linuxgsm.com
 # Description: Runs the server without tmux and directly from the terminal.
 # Description: Runs the server without tmux and directly from the terminal.
 
 
 local commandname="DEBUG"
 local commandname="DEBUG"
@@ -40,7 +40,7 @@ if [ -n "${glibcrequired}" ]; then
 			:
 			:
 	elif [ "${glibcrequired}" == "UNKNOWN" ]; then
 	elif [ "${glibcrequired}" == "UNKNOWN" ]; then
 		echo -e "${blue}GLIBC required:\t${red}${glibcrequired}"
 		echo -e "${blue}GLIBC required:\t${red}${glibcrequired}"
-	elif [ "$(printf '%s\n'${glibcrequired}'\n' ${glibcversion} | sort -V | head -n 1)" != "${glibcrequired}" ]; then
+	elif [ "$(printf '%s\n'${glibcrequired}'\n' "${glibcversion}" | sort -V | head -n 1)" != "${glibcrequired}" ]; then
 		if [ "${glibcfix}" == "yes" ]; then
 		if [ "${glibcfix}" == "yes" ]; then
 			echo -e "${blue}GLIBC required:\t${red}${glibcrequired} ${default}(${green}Using GLIBC fix${default})"
 			echo -e "${blue}GLIBC required:\t${red}${glibcrequired} ${default}(${green}Using GLIBC fix${default})"
 		else
 		else
@@ -80,12 +80,12 @@ fi
 
 
 fn_print_info_nl "Stopping any running servers"
 fn_print_info_nl "Stopping any running servers"
 fn_script_log_info "Stopping any running servers"
 fn_script_log_info "Stopping any running servers"
-sleep 1
+sleep 0.5
 exitbypass=1
 exitbypass=1
 command_stop.sh
 command_stop.sh
 fn_print_dots "Starting debug"
 fn_print_dots "Starting debug"
 fn_script_log_info "Starting debug"
 fn_script_log_info "Starting debug"
-sleep 1
+sleep 0.5
 fn_print_ok_nl "Starting debug"
 fn_print_ok_nl "Starting debug"
 
 
 # Create lockfile
 # Create lockfile
@@ -95,16 +95,16 @@ fn_script_log_info "${rootdir}/${lockselfname}"
 # trap to remove lockfile on quit.
 # trap to remove lockfile on quit.
 trap fn_lockfile_trap INT
 trap fn_lockfile_trap INT
 
 
-cd "${executabledir}"
+cd "${executabledir}" || exit
 if [ "${engine}" == "source" ]||[ "${engine}" == "goldsource" ]; then
 if [ "${engine}" == "source" ]||[ "${engine}" == "goldsource" ]; then
 	${executable} ${parms} -debug
 	${executable} ${parms} -debug
 elif [ "${engine}" == "realvirtuality" ]; then
 elif [ "${engine}" == "realvirtuality" ]; then
 	# Arma3 requires semicolons in the module list, which need to
 	# Arma3 requires semicolons in the module list, which need to
 	# be escaped for regular (tmux) loading, but need to be
 	# be escaped for regular (tmux) loading, but need to be
 	# stripped when loading straight from the console.
 	# stripped when loading straight from the console.
-	${executable} ${parms//\\;/;}
+	"${executable}" "${parms//\\;/;}"
 else
 else
-	${executable} ${parms}
+	"${executable}" "${parms}"
 fi
 fi
 
 
 fn_print_dots "Stopping debug"
 fn_print_dots "Stopping debug"

+ 3 - 2
lgsm/functions/command_details.sh

@@ -2,7 +2,7 @@
 # LinuxGSM command_details.sh function
 # LinuxGSM command_details.sh function
 # Author: Daniel Gibbs
 # Author: Daniel Gibbs
 # Contributor: UltimateByte
 # Contributor: UltimateByte
-# Website: https://gameservermanagers.com
+# Website: https://linuxgsm.com
 # Description: Displays server information.
 # Description: Displays server information.
 
 
 local commandname="DETAILS"
 local commandname="DETAILS"
@@ -12,10 +12,11 @@ local function_selfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
 # Run checks and gathers details to display.
 # Run checks and gathers details to display.
 check.sh
 check.sh
 info_config.sh
 info_config.sh
+info_parms.sh
 info_distro.sh
 info_distro.sh
 info_glibc.sh
 info_glibc.sh
-info_parms.sh
 info_messages.sh
 info_messages.sh
+query_gamedig.sh
 fn_info_message_distro
 fn_info_message_distro
 fn_info_message_performance
 fn_info_message_performance
 fn_info_message_disk
 fn_info_message_disk

+ 14 - 0
lgsm/functions/command_dev_clear_functions.sh

@@ -0,0 +1,14 @@
+#!/bin/bash
+# command_dev_clear_functions.sh function
+# Author: Daniel Gibbs
+# Website: https://linuxgsm.com
+# Description: Deletes the contents of the functions dir.
+
+echo "================================="
+echo "Clear Functions"
+echo "================================="
+echo ""
+if fn_prompt_yn "Do you want to delete all functions?" Y; then
+	rm -rfv "${functionsdir}/*"
+fi
+core_exit.sh

+ 1 - 1
lgsm/functions/command_dev_debug.sh

@@ -1,7 +1,7 @@
 #!/bin/bash
 #!/bin/bash
 # LinuxGSM command_dev_debug.sh function
 # LinuxGSM command_dev_debug.sh function
 # Author: Daniel Gibbs
 # Author: Daniel Gibbs
-# Website: https://gameservermanagers.com
+# Website: https://linuxgsm.com
 # Description: Dev only: Enables debugging log to be saved to dev-debug.log.
 # Description: Dev only: Enables debugging log to be saved to dev-debug.log.
 
 
 local commandname="DEV-DEBUG"
 local commandname="DEV-DEBUG"

+ 8 - 8
lgsm/functions/command_dev_detect_deps.sh

@@ -1,11 +1,11 @@
 #!/bin/bash
 #!/bin/bash
 # LinuxGSM command_dev_detect_deps.sh function
 # LinuxGSM command_dev_detect_deps.sh function
 # Author: Daniel Gibbs
 # Author: Daniel Gibbs
-# Website: https://gameservermanagers.com
+# Website: https://linuxgsm.com
 # Description: Detects dependencies the server binary requires.
 # Description: Detects dependencies the server binary requires.
 
 
-local commandname="DEPS-DETECT"
-local commandaction="Deps-Detect"
+local commandname="DETECT-DEPS"
+local commandaction="Detect-Deps"
 local function_selfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
 local function_selfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
 
 
 echo "================================="
 echo "================================="
@@ -20,13 +20,13 @@ elif [ "$(command -v readelf 2>/dev/null)" ]; then
 else
 else
 	echo "readelf/eu-readelf not installed"
 	echo "readelf/eu-readelf not installed"
 fi
 fi
-files=$(find ${serverfiles} | wc -l)
+files=$(find "${serverfiles}" | wc -l)
 find "${serverfiles}" -type f -print0 |
 find "${serverfiles}" -type f -print0 |
 while IFS= read -r -d $'\0' line; do
 while IFS= read -r -d $'\0' line; do
 	if [ "${readelf}" == "eu-readelf" ]; then
 	if [ "${readelf}" == "eu-readelf" ]; then
-		${readelf} -d "${line}" 2>/dev/null|grep NEEDED|awk '{ print $4 }'|sed 's/\[//g;s/\]//g' >> "${tmpdir}/.depdetect_readelf"
+		${readelf} -d "${line}" 2>/dev/null | grep NEEDED| awk '{ print $4 }' | sed 's/\[//g;s/\]//g' >> "${tmpdir}/.depdetect_readelf"
 	else
 	else
-		${readelf} -d "${line}" 2>/dev/null|grep NEEDED|awk '{ print $5 }'|sed 's/\[//g;s/\]//g' >> "${tmpdir}/.depdetect_readelf"
+		${readelf} -d "${line}" 2>/dev/null | grep NEEDED | awk '{ print $5 }' | sed 's/\[//g;s/\]//g' >> "${tmpdir}/.depdetect_readelf"
 	fi
 	fi
 	echo -n "${i} / ${files}" $'\r'
 	echo -n "${i} / ${files}" $'\r'
 	((i++))
 	((i++))
@@ -34,7 +34,7 @@ done
 
 
 sort "${tmpdir}/.depdetect_readelf" |uniq >"${tmpdir}/.depdetect_readelf_uniq"
 sort "${tmpdir}/.depdetect_readelf" |uniq >"${tmpdir}/.depdetect_readelf_uniq"
 
 
-while read lib; do
+while read -r lib; do
 	if [ "${lib}" == "libm.so.6" ]||[ "${lib}" == "libc.so.6" ]||[ "${lib}" == "libtcmalloc_minimal.so.4" ]||[ "${lib}" == "libpthread.so.0" ]||[ "${lib}" == "libdl.so.2" ]||[ "${lib}" == "libnsl.so.1" ]||[ "${lib}" == "libgcc_s.so.1" ]||[ "${lib}" == "librt.so.1" ]||[ "${lib}" == "ld-linux.so.2" ]; then
 	if [ "${lib}" == "libm.so.6" ]||[ "${lib}" == "libc.so.6" ]||[ "${lib}" == "libtcmalloc_minimal.so.4" ]||[ "${lib}" == "libpthread.so.0" ]||[ "${lib}" == "libdl.so.2" ]||[ "${lib}" == "libnsl.so.1" ]||[ "${lib}" == "libgcc_s.so.1" ]||[ "${lib}" == "librt.so.1" ]||[ "${lib}" == "ld-linux.so.2" ]; then
 		echo "glibc.i686" >> "${tmpdir}/.depdetect_centos_list"
 		echo "glibc.i686" >> "${tmpdir}/.depdetect_centos_list"
 		echo "lib32gcc1" >> "${tmpdir}/.depdetect_ubuntu_list"
 		echo "lib32gcc1" >> "${tmpdir}/.depdetect_ubuntu_list"
@@ -114,7 +114,7 @@ fi
 echo ""
 echo ""
 echo "Required Librarys"
 echo "Required Librarys"
 echo "================================="
 echo "================================="
-sort "${tmpdir}/.depdetect_readelf" |uniq
+sort "${tmpdir}/.depdetect_readelf" | uniq
 echo -en "\n"
 echo -en "\n"
 rm -f "${tmpdir}/.depdetect_centos_line"
 rm -f "${tmpdir}/.depdetect_centos_line"
 rm -f "${tmpdir}/.depdetect_centos_list"
 rm -f "${tmpdir}/.depdetect_centos_list"

+ 10 - 6
lgsm/functions/command_dev_detect_glibc.sh

@@ -1,10 +1,14 @@
 #!/bin/bash
 #!/bin/bash
 # LinuxGSM command_dev_detect_glibc.sh function
 # LinuxGSM command_dev_detect_glibc.sh function
 # Author: Daniel Gibbs
 # Author: Daniel Gibbs
-# Website: https://gameservermanagers.com
+# Website: https://linuxgsm.com
 # Description: Automatically detects the version of GLIBC that is required.
 # Description: Automatically detects the version of GLIBC that is required.
 # Can check a file or directory recursively.
 # Can check a file or directory recursively.
 
 
+local commandname="DETECT-GLIBC"
+local commandaction="Detect-Glibc"
+local function_selfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
+
 echo "================================="
 echo "================================="
 echo "GLIBC Requirements Checker"
 echo "GLIBC Requirements Checker"
 echo "================================="
 echo "================================="
@@ -28,21 +32,21 @@ elif [ -f "${serverfiles}" ]; then
 fi
 fi
 echo ""
 echo ""
 
 
-files=$(find ${serverfiles} | wc -l)
-find ${serverfiles} -type f -print0 |
+files=$(find "${serverfiles}" | wc -l)
+find "${serverfiles}" -type f -print0 |
 while IFS= read -r -d $'\0' line; do
 while IFS= read -r -d $'\0' line; do
-	glibcversion=$(objdump -T "${line}" 2>/dev/null|grep -oP "GLIBC[^ ]+" |grep -v GLIBCXX|sort|uniq|sort -r --version-sort| head -n 1)
+	glibcversion=$(objdump -T "${line}" 2>/dev/null | grep -oP "GLIBC[^ ]+" | grep -v GLIBCXX | sort | uniq | sort -r --version-sort | head -n 1)
 	if [ "${glibcversion}" ]; then
 	if [ "${glibcversion}" ]; then
 		echo "${glibcversion}: ${line}" >>"${tmpdir}/detect_glibc_files.tmp"
 		echo "${glibcversion}: ${line}" >>"${tmpdir}/detect_glibc_files.tmp"
 	fi
 	fi
-	objdump -T "${line}" 2>/dev/null|grep -oP "GLIBC[^ ]+" >>"${tmpdir}/detect_glibc.tmp"
+	objdump -T "${line}" 2>/dev/null | grep -oP "GLIBC[^ ]+" >>"${tmpdir}/detect_glibc.tmp"
 	echo -n "${i} / ${files}" $'\r'
 	echo -n "${i} / ${files}" $'\r'
 	((i++))
 	((i++))
 done
 done
 echo ""
 echo ""
 cat "${tmpdir}/detect_glibc_files.tmp"
 cat "${tmpdir}/detect_glibc_files.tmp"
 echo ""
 echo ""
-cat "${tmpdir}/detect_glibc.tmp"|sort|uniq|sort -r --version-sort
+cat "${tmpdir}/detect_glibc.tmp" | sort | uniq | sort -r --version-sort
 rm "${tmpdir}/detect_glibc.tmp"
 rm "${tmpdir}/detect_glibc.tmp"
 rm "${tmpdir}/detect_glibc_files.tmp"
 rm "${tmpdir}/detect_glibc_files.tmp"
 
 

+ 11 - 7
lgsm/functions/command_dev_detect_ldd.sh

@@ -1,10 +1,14 @@
 #!/bin/bash
 #!/bin/bash
 # command_dev_detect_ldd.sh function
 # command_dev_detect_ldd.sh function
 # Author: Daniel Gibbs
 # Author: Daniel Gibbs
-# Website: https://gameservermanagers.com
+# Website: https://linuxgsm.com
 # Description: Automatically detects required deps using ldd.
 # Description: Automatically detects required deps using ldd.
 # Can check a file or directory recursively.
 # Can check a file or directory recursively.
 
 
+local commandname="DETECT-LDD"
+local commandaction="Detect-LDD"
+local function_selfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
+
 echo "================================="
 echo "================================="
 echo "Shared Object dependencies Checker"
 echo "Shared Object dependencies Checker"
 echo "================================="
 echo "================================="
@@ -25,14 +29,14 @@ echo ""
 files=$(find "${serverfiles}" | wc -l)
 files=$(find "${serverfiles}" | wc -l)
 find "${serverfiles}" -type f -print0 |
 find "${serverfiles}" -type f -print0 |
 while IFS= read -r -d $'\0' line; do
 while IFS= read -r -d $'\0' line; do
-	#ldd -v $line 2>/dev/null|grep "=>" >>"${tmpdir}/detect_ldd.tmp"
-	if [ -n "$(ldd ${line} 2>/dev/null |grep -v "not a dynamic executable")" ]; then
+	if ldd "${line}" 2>/dev/null | grep -v "not a dynamic executable"
+	then
 		echo "${line}" >> "${tmpdir}/detect_ldd.tmp"
 		echo "${line}" >> "${tmpdir}/detect_ldd.tmp"
-		ldd "${line}" 2>/dev/null |grep -v "not a dynamic executable" >> "${tmpdir}/detect_ldd.tmp"
-
-		if [ -n "$(ldd $line 2>/dev/null |grep -v "not a dynamic executable"|grep "not found")" ]; then
+		ldd "${line}" 2>/dev/null | grep -v "not a dynamic executable" >> "${tmpdir}/detect_ldd.tmp"
+		if ldd "${line}" 2>/dev/null | grep -v "not a dynamic executable" | grep "not found"
+		then
 			echo "${line}" >> "${tmpdir}/detect_ldd_not_found.tmp"
 			echo "${line}" >> "${tmpdir}/detect_ldd_not_found.tmp"
-			ldd "${line}" 2>/dev/null |grep -v "not a dynamic executable"|grep "not found" >> "${tmpdir}/detect_ldd_not_found.tmp"
+			ldd "${line}" 2>/dev/null | grep -v "not a dynamic executable" | grep "not found" >> "${tmpdir}/detect_ldd_not_found.tmp"
 		fi
 		fi
 	fi
 	fi
 	echo -n "$i / $files" $'\r'
 	echo -n "$i / $files" $'\r'

+ 44 - 0
lgsm/functions/command_dev_query_raw.sh

@@ -0,0 +1,44 @@
+#!/bin/bash
+# command_dev_query_raw.sh function
+# Author: Daniel Gibbs
+# Website: https://gameservermanagers.com
+# Description: Raw gamedig output of the server.
+
+local commandname="QUERY-RAW"
+local commandaction="QUERY-RAW"
+local function_selfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
+
+echo "================================="
+echo "Gamedig Raw Output"
+echo "================================="
+echo""
+if [ ! "$(command -v gamedig 2>/dev/null)" ]; then
+	fn_print_failure_nl "gamedig not installed"
+fi
+if [ ! "$(command -v jq 2>/dev/null)" ]; then
+	fn_print_failure_nl "jq not installed"
+fi
+
+check.sh
+info_config.sh
+info_parms.sh
+if [ "${engine}" == "idtech3_ql" ]; then
+	local engine="quakelive"
+elif [ "${gamename}" == "Killing Floor 2" ]; then
+	local engine="unreal4"
+fi
+
+query_gamedig.sh
+echo "gamedig --type \"${gamedigengine}\" --host \"${ip}\" --port \"${port}\"|jq"
+echo""
+echo "${gamedigraw}" | jq
+echo""
+echo "================================="
+echo "gsquery Raw Output"
+echo "================================="
+echo""
+echo "./query_gsquery.py -a \"${ip}\" -p \"${port}\" -e \"${engine}\""
+if [ ! -f "${functionsdir}/query_gsquery.py" ]; then
+	fn_fetch_file_github "lgsm/functions" "query_gsquery.py" "${functionsdir}" "chmodx" "norun" "noforce" "nomd5"
+fi
+"${functionsdir}"/query_gsquery.py -a "${ip}" -p "${port}" -e "${engine}"

+ 9 - 9
lgsm/functions/command_fastdl.sh

@@ -2,7 +2,7 @@
 # LinuxGSM command_fastdl.sh function
 # LinuxGSM command_fastdl.sh function
 # Author: Daniel Gibbs
 # Author: Daniel Gibbs
 # Contributor: UltimateByte
 # Contributor: UltimateByte
-# Website: https://gameservermanagers.com
+# Website: https://linuxgsm.com
 # Description: Creates a FastDL directory.
 # Description: Creates a FastDL directory.
 
 
 local commandname="FASTDL"
 local commandname="FASTDL"
@@ -69,7 +69,7 @@ fn_clear_old_fastdl(){
 		echo -en "clearing existing FastDL directory ${fastdldir}..."
 		echo -en "clearing existing FastDL directory ${fastdldir}..."
 		rm -R "${fastdldir:?}"
 		rm -R "${fastdldir:?}"
 		exitcode=$?
 		exitcode=$?
-		if [ "${exitcode}" -ne 0 ]; then
+		if [ ${exitcode} -ne 0 ]; then
 			fn_print_fail_eol_nl
 			fn_print_fail_eol_nl
 			fn_script_log_fatal "Clearing existing FastDL directory ${fastdldir}"
 			fn_script_log_fatal "Clearing existing FastDL directory ${fastdldir}"
 			core_exit.sh
 			core_exit.sh
@@ -271,7 +271,7 @@ fn_fastdl_gmod(){
 		fi
 		fi
 		# Clear addons directory in fastdl
 		# Clear addons directory in fastdl
 		echo -en "clearing addons dir from fastdl dir..."
 		echo -en "clearing addons dir from fastdl dir..."
-		sleep 1
+		sleep 0.5
 		rm -R "${fastdldir:?}/addons"
 		rm -R "${fastdldir:?}/addons"
 		exitcode=$?
 		exitcode=$?
 		if [ ${exitcode} -ne 0 ]; then
 		if [ ${exitcode} -ne 0 ]; then
@@ -286,7 +286,7 @@ fn_fastdl_gmod(){
 	# Correct content that may be into a lua directory by mistake like some darkrpmodification addons
 	# Correct content that may be into a lua directory by mistake like some darkrpmodification addons
 	if [ -d "${fastdldir}/lua" ]; then
 	if [ -d "${fastdldir}/lua" ]; then
 		echo -en "correcting DarkRP files..."
 		echo -en "correcting DarkRP files..."
-		sleep 2
+		sleep 1
 		cp -Rf "${fastdldir}/lua/"* "${fastdldir}"
 		cp -Rf "${fastdldir}/lua/"* "${fastdldir}"
 		exitcode=$?
 		exitcode=$?
 		if [ ${exitcode} -ne 0 ]; then
 		if [ ${exitcode} -ne 0 ]; then
@@ -302,7 +302,7 @@ fn_fastdl_gmod(){
 		totalfiles=$(wc -l < "${tmpdir}/fastdl_files_to_compress.txt")
 		totalfiles=$(wc -l < "${tmpdir}/fastdl_files_to_compress.txt")
 		# Calculates total file size
 		# Calculates total file size
 		while read dufile; do
 		while read dufile; do
-			filesize=$(du -b "${dufile}"| awk '{ print $1 }')
+			filesize=$(du -b "${dufile}" | awk '{ print $1 }')
 			filesizetotal=$(( ${filesizetotal} + ${filesize} ))
 			filesizetotal=$(( ${filesizetotal} + ${filesize} ))
 		done <"${tmpdir}/fastdl_files_to_compress.txt"
 		done <"${tmpdir}/fastdl_files_to_compress.txt"
 	fi
 	fi
@@ -337,7 +337,7 @@ fn_fastdl_source(){
 					fi
 					fi
 					cp "${fastdlfile}" "${fastdldir}/${directory}"
 					cp "${fastdlfile}" "${fastdldir}/${directory}"
 					exitcode=$?
 					exitcode=$?
-					if [ "${exitcode}" -ne 0 ]; then
+					if [ ${exitcode} -ne 0 ]; then
 						fn_print_fail_eol_nl
 						fn_print_fail_eol_nl
 						fn_script_log_fatal "Copying ${fastdlfile} > ${fastdldir}/${directory}"
 						fn_script_log_fatal "Copying ${fastdlfile} > ${fastdldir}/${directory}"
 						core_exit.sh
 						core_exit.sh
@@ -373,7 +373,7 @@ fn_fastdl_gmod_dl_enforcer(){
 		echo -en "removing existing download enforcer: ${luafastdlfile}..."
 		echo -en "removing existing download enforcer: ${luafastdlfile}..."
 		rm "${luafastdlfullpath:?}"
 		rm "${luafastdlfullpath:?}"
 		exitcode=$?
 		exitcode=$?
-		if [ "${exitcode}" -ne 0 ]; then
+		if [ ${exitcode} -ne 0 ]; then
 			fn_print_fail_eol_nl
 			fn_print_fail_eol_nl
 			fn_script_log_fatal "Removing existing download enforcer ${luafastdlfullpath}"
 			fn_script_log_fatal "Removing existing download enforcer ${luafastdlfullpath}"
 			core_exit.sh
 			core_exit.sh
@@ -391,7 +391,7 @@ fn_fastdl_gmod_dl_enforcer(){
 			echo "resource.AddFile( \"${line}\" )" >> "${luafastdlfullpath}"
 			echo "resource.AddFile( \"${line}\" )" >> "${luafastdlfullpath}"
 		done < <(find "${fastdldir:?}" \( -type f ! -name "*.bz2" \) -printf '%P\n')
 		done < <(find "${fastdldir:?}" \( -type f ! -name "*.bz2" \) -printf '%P\n')
 		exitcode=$?
 		exitcode=$?
-		if [ "${exitcode}" -ne 0 ]; then
+		if [ ${exitcode} -ne 0 ]; then
 			fn_print_fail_eol_nl
 			fn_print_fail_eol_nl
 			fn_script_log_fatal "Creating new download enforcer ${luafastdlfullpath}"
 			fn_script_log_fatal "Creating new download enforcer ${luafastdlfullpath}"
 			core_exit.sh
 			core_exit.sh
@@ -408,7 +408,7 @@ fn_fastdl_bzip2(){
 		echo -en "\r\033[Kcompressing ${filetocompress}..."
 		echo -en "\r\033[Kcompressing ${filetocompress}..."
 		bzip2 -f "${filetocompress}"
 		bzip2 -f "${filetocompress}"
 		exitcode=$?
 		exitcode=$?
-		if [ "${exitcode}" -ne 0 ]; then
+		if [ ${exitcode} -ne 0 ]; then
 			fn_print_fail_eol_nl
 			fn_print_fail_eol_nl
 			fn_script_log_fatal "Compressing ${filetocompress}"
 			fn_script_log_fatal "Compressing ${filetocompress}"
 			core_exit.sh
 			core_exit.sh

+ 1 - 1
lgsm/functions/command_install.sh

@@ -2,7 +2,7 @@
 # LinuxGSM command_install.sh function
 # LinuxGSM command_install.sh function
 # Author: Daniel Gibbs
 # Author: Daniel Gibbs
 # Contributor: UltimateByte
 # Contributor: UltimateByte
-# Website: https://gameservermanagers.com
+# Website: https://linuxgsm.com
 # Description: Overall function for the installer.
 # Description: Overall function for the installer.
 
 
 local commandname="INSTALL"
 local commandname="INSTALL"

+ 1 - 1
lgsm/functions/command_install_resources_mta.sh

@@ -1,7 +1,7 @@
 #!/bin/bash
 #!/bin/bash
 # LinuxGSM command_install_resources_mta.sh function
 # LinuxGSM command_install_resources_mta.sh function
 # Author: Daniel Gibbs
 # Author: Daniel Gibbs
-# Website: https://gameservermanagers.com
+# Website: https://linuxgsm.com
 # Description: Installs the default resources for Multi Theft Auto.
 # Description: Installs the default resources for Multi Theft Auto.
 
 
 local commandname="DEFAULT_RESOURCES"
 local commandname="DEFAULT_RESOURCES"

+ 3 - 3
lgsm/functions/command_mods_install.sh

@@ -2,7 +2,7 @@
 # LinuxGSM command_mods_install.sh function
 # LinuxGSM command_mods_install.sh function
 # Author: Daniel Gibbs
 # Author: Daniel Gibbs
 # Contributor: UltimateByte
 # Contributor: UltimateByte
-# Website: https://gameservermanagers.com
+# Website: https://linuxgsm.com
 # Description: List and installs available mods along with mods_list.sh and mods_core.sh.
 # Description: List and installs available mods along with mods_list.sh and mods_core.sh.
 
 
 local commandname="MODS"
 local commandname="MODS"
@@ -16,7 +16,7 @@ fn_print_header
 
 
 # Displays a list of installed mods
 # Displays a list of installed mods
 fn_mods_installed_list
 fn_mods_installed_list
-if [ ${installedmodscount} -gt 0 ]; then
+if [ "${installedmodscount}" -gt "0" ]; then
 	echo "Installed addons/mods"
 	echo "Installed addons/mods"
 	echo "================================="
 	echo "================================="
 	# Go through all available commands, get details and display them to the user
 	# Go through all available commands, get details and display them to the user
@@ -85,7 +85,7 @@ if [ -f "${modsinstalledlistfullpath}" ]; then
 	if [ -n "$(sed -n "/^${modcommand}$/p" "${modsinstalledlistfullpath}")" ]; then
 	if [ -n "$(sed -n "/^${modcommand}$/p" "${modsinstalledlistfullpath}")" ]; then
 		fn_print_warning_nl "${modprettyname} is already installed"
 		fn_print_warning_nl "${modprettyname} is already installed"
 		fn_script_log_warn "${modprettyname} is already installed"
 		fn_script_log_warn "${modprettyname} is already installed"
-		sleep 1
+		sleep 0.5
 		echo " * Any configs may be overwritten."
 		echo " * Any configs may be overwritten."
 		if ! fn_prompt_yn "Continue?" Y; then
 		if ! fn_prompt_yn "Continue?" Y; then
 			echo Exiting; core_exit.sh
 			echo Exiting; core_exit.sh

+ 4 - 4
lgsm/functions/command_mods_remove.sh

@@ -2,7 +2,7 @@
 # LinuxGSM command_mods_uninstall.sh function
 # LinuxGSM command_mods_uninstall.sh function
 # Author: Daniel Gibbs
 # Author: Daniel Gibbs
 # Contributor: UltimateByte
 # Contributor: UltimateByte
-# Website: https://gameservermanagers.com
+# Website: https://linuxgsm.com
 # Description: Uninstall mods along with mods_list.sh and mods_core.sh.
 # Description: Uninstall mods along with mods_list.sh and mods_core.sh.
 
 
 local commandname="MODS"
 local commandname="MODS"
@@ -58,7 +58,7 @@ fn_script_log_info "Removing ${modsfilelistsize} files from ${modprettyname}"
 echo -e "removing ${modprettyname}"
 echo -e "removing ${modprettyname}"
 echo -e "* ${modsfilelistsize} files to be removed"
 echo -e "* ${modsfilelistsize} files to be removed"
 echo -e "* location: ${modinstalldir}"
 echo -e "* location: ${modinstalldir}"
-sleep 1
+sleep 0.5
 # Go through every file and remove it
 # Go through every file and remove it
 modfileline="1"
 modfileline="1"
 tput sc
 tput sc
@@ -68,7 +68,7 @@ while [ "${modfileline}" -le "${modsfilelistsize}" ]; do
 	# If file or directory exists, then remove it
 	# If file or directory exists, then remove it
 
 
 	if [ -f "${modinstalldir}/${currentfileremove}" ]||[ -d "${modinstalldir}/${currentfileremove}" ]; then
 	if [ -f "${modinstalldir}/${currentfileremove}" ]||[ -d "${modinstalldir}/${currentfileremove}" ]; then
-		rm -rf "${modinstalldir}/${currentfileremove}"
+		rm -rf "${modinstalldir:?}/${currentfileremove}"
 		((exitcode=$?))
 		((exitcode=$?))
 		if [ ${exitcode} -ne 0 ]; then
 		if [ ${exitcode} -ne 0 ]; then
 			fn_script_log_fatal "Removing ${modinstalldir}/${currentfileremove}"
 			fn_script_log_fatal "Removing ${modinstalldir}/${currentfileremove}"
@@ -78,7 +78,7 @@ while [ "${modfileline}" -le "${modsfilelistsize}" ]; do
 		fi
 		fi
 	fi
 	fi
 	tput rc; tput el
 	tput rc; tput el
-	printf "removing ${modprettyname} ${modfileline} / ${modsfilelistsize} : ${currentfileremove}..."
+	echo "removing ${modprettyname} ${modfileline} / ${modsfilelistsize} : ${currentfileremove}..."
 	((modfileline++))
 	((modfileline++))
 done
 done
 if [ ${exitcode} -ne 0 ]; then
 if [ ${exitcode} -ne 0 ]; then

+ 4 - 4
lgsm/functions/command_mods_update.sh

@@ -2,7 +2,7 @@
 # LinuxGSM command_mods_update.sh function
 # LinuxGSM command_mods_update.sh function
 # Author: Daniel Gibbs
 # Author: Daniel Gibbs
 # Contributor: UltimateByte
 # Contributor: UltimateByte
-# Website: https://gameservermanagers.com
+# Website: https://linuxgsm.com
 # Description: Updates installed mods along with mods_list.sh and mods_core.sh.
 # Description: Updates installed mods along with mods_list.sh and mods_core.sh.
 
 
 local commandname="MODS"
 local commandname="MODS"
@@ -27,7 +27,7 @@ fn_remove_cfg_files(){
 			echo -e "	* serverfiles/${filetopreserve}"
 			echo -e "	* serverfiles/${filetopreserve}"
 			# If it matches an existing file that have been extracted delete the file
 			# If it matches an existing file that have been extracted delete the file
 			if [ -f "${extractdir}/${filetopreserve}" ]||[ -d "${extractdir}/${filetopreserve}" ]; then
 			if [ -f "${extractdir}/${filetopreserve}" ]||[ -d "${extractdir}/${filetopreserve}" ]; then
-				rm -r "${extractdir}/${filetopreserve}"
+				rm -r "${extractdir:?}/${filetopreserve}"
 				# Write the file path in a tmp file, to rebuild a full file list as it is rebuilt upon update
 				# Write the file path in a tmp file, to rebuild a full file list as it is rebuilt upon update
 				if [ ! -f "${modsdir}/.removedfiles.tmp" ]; then
 				if [ ! -f "${modsdir}/.removedfiles.tmp" ]; then
 					touch "${modsdir}/.removedfiles.tmp"
 					touch "${modsdir}/.removedfiles.tmp"
@@ -66,13 +66,13 @@ for ((ulindex=0; ulindex < ${#installedmodslist[@]}; ulindex++)); do
 		echo -e "	* ${yellow}${modprettyname}${default} (retain common custom files)"
 		echo -e "	* ${yellow}${modprettyname}${default} (retain common custom files)"
 	fi
 	fi
 done
 done
-sleep 1
+sleep 0.5
 
 
 ## Update
 ## Update
 # List all installed mods and apply update
 # List all installed mods and apply update
 # Reset line value
 # Reset line value
 installedmodsline="1"
 installedmodsline="1"
-while [ ${installedmodsline} -le ${installedmodscount} ]; do
+while [ "${installedmodsline}" -le "${installedmodscount}" ]; do
 	currentmod="$(sed "${installedmodsline}q;d" "${modsinstalledlistfullpath}")"
 	currentmod="$(sed "${installedmodsline}q;d" "${modsinstalledlistfullpath}")"
 	if [ -n "${currentmod}" ]; then
 	if [ -n "${currentmod}" ]; then
 		fn_mod_get_info
 		fn_mod_get_info

+ 138 - 66
lgsm/functions/command_monitor.sh

@@ -2,14 +2,84 @@
 # LinuxGSM command_monitor.sh function
 # LinuxGSM command_monitor.sh function
 # Author: Daniel Gibbs
 # Author: Daniel Gibbs
 # Contributor: UltimateByte
 # Contributor: UltimateByte
-# Website: https://gameservermanagers.com
+# Website: https://linuxgsm.com
 # Description: Monitors server by checking for running processes.
 # Description: Monitors server by checking for running processes.
-# then passes to monitor_gsquery.sh.
+# then passes to gamedig and gsquery.
 
 
 local commandname="MONITOR"
 local commandname="MONITOR"
 local commandaction="Monitor"
 local commandaction="Monitor"
 local function_selfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
 local function_selfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
 
 
+fn_monitor_loop(){
+# Will query up to 5 times every 15 seconds.
+# Query will wait up to 60 seconds to confirm server is down giving server time if changing map.
+for queryattempt in {1..5}; do
+	fn_print_dots "Querying port: ${querymethod}: ${ip}:${queryport} : ${totalseconds}/${queryattempt}: "
+	fn_print_querying_eol
+	fn_script_log_info "Querying port: ${querymethod}: ${ip}:${queryport} : ${queryattempt} : QUERYING"
+	sleep 0.5
+	if [ "${querymethod}" ==  "gamedig" ]; then
+		query_gamedig.sh
+	elif [ "${querymethod}" ==  "gsquery" ]; then
+		if [ ! -f "${functionsdir}/query_gsquery.py" ]; then
+			fn_fetch_file_github "lgsm/functions" "query_gsquery.py" "${functionsdir}" "chmodx" "norun" "noforce" "nomd5"
+		fi
+		"${functionsdir}"/query_gsquery.py -a "${ip}" -p "${queryport}" -e "${engine}" > /dev/null 2>&1
+		querystatus="$?"
+	elif [ "${querymethod}" ==  "telnet" ]; then
+		bash -c 'exec 3<> /dev/tcp/'${ip}'/'${queryport}''
+		querystatus="$?"
+	fi
+
+	if [ "${querystatus}" == "0" ]; then
+		# Server query OK
+		sleep 0.5
+		fn_print_ok "Querying port: ${querymethod}: ${ip}:${queryport} : ${totalseconds}/${queryattempt}: "
+		fn_print_ok_eol_nl
+		fn_script_log_pass "Querying port: ${querymethod}: ${ip}:${queryport} : ${queryattempt}: OK"
+		exitcode=0
+		monitorpass=1
+		core_exit.sh
+	else
+		# Server query FAIL
+		fn_script_log_info "Querying port: ${querymethod}: ${ip}:${queryport} : ${queryattempt}: FAIL"
+		fn_print_fail "Querying port: ${querymethod}: ${ip}:${queryport} : ${totalseconds}/${queryattempt}: "
+		fn_print_fail_eol
+		sleep 0.5
+		# monitor try gamedig first then gsquery before restarting
+		if [ "${querymethod}" ==  "gsquery" ]; then
+			if [ "${totalseconds}" -ge "59" ]; then
+				# Server query FAIL for over 59 seconds reboot server
+				fn_print_fail "Querying port: ${querymethod}: ${ip}:${queryport} : ${totalseconds}/${queryattempt}: "
+				fn_print_fail_eol_nl
+				fn_script_log_error "Querying port: ${querymethod}: ${ip}:${queryport} : ${queryattempt}: FAIL"
+				sleep 0.5
+
+				# Send alert if enabled
+				alert="restartquery"
+				alert.sh
+				command_restart.sh
+				core_exit.sh
+			fi
+		elif [ "${querymethod}" ==  "gamedig" ]; then
+			if [ "${totalseconds}" -ge "29" ]; then
+				break
+			fi
+		fi
+
+		# Seconds counter
+		for seconds in {1..15}; do
+			fn_print_fail "Querying port: ${querymethod}: ${ip}:${queryport} : ${totalseconds}/${queryattempt}: WAIT"
+			totalseconds=$((totalseconds + 1))
+			sleep 1
+			if [ "${seconds}" == "15" ]; then
+				break
+			fi
+		done
+	fi
+done
+}
+
 fn_monitor_check_lockfile(){
 fn_monitor_check_lockfile(){
 	# Monitor does not run it lockfile is not found
 	# Monitor does not run it lockfile is not found
 	if [ ! -f "${rootdir}/${lockselfname}" ]; then
 	if [ ! -f "${rootdir}/${lockselfname}" ]; then
@@ -22,102 +92,104 @@ fn_monitor_check_lockfile(){
 
 
 fn_monitor_check_update(){
 fn_monitor_check_update(){
 	# Monitor will not check if update is running.
 	# Monitor will not check if update is running.
-	if [ "$(ps -ef|grep "${selfname} update"|grep -v grep|wc -l)" != "0" ]; then
+	if [ "$(ps -ef | grep "${selfname} update" | grep -v grep | wc -l)" != "0" ]; then
 		fn_print_error_nl "SteamCMD is currently checking for updates"
 		fn_print_error_nl "SteamCMD is currently checking for updates"
 		fn_script_log_error "SteamCMD is currently checking for updates"
 		fn_script_log_error "SteamCMD is currently checking for updates"
-		sleep 1
+		sleep 0.5
 		core_exit.sh
 		core_exit.sh
 	fi
 	fi
 }
 }
 
 
-fn_monitor_msg_checking(){
+fn_monitor_check_session(){
 	fn_print_dots "Checking session: "
 	fn_print_dots "Checking session: "
 	fn_print_checking_eol
 	fn_print_checking_eol
 	fn_script_log_info "Checking session: CHECKING"
 	fn_script_log_info "Checking session: CHECKING"
-	sleep 1
-}
-
-fn_monitor_teamspeak3(){
+	sleep 0.5
 	if [ "${status}" != "0" ]; then
 	if [ "${status}" != "0" ]; then
 		fn_print_ok "Checking session: "
 		fn_print_ok "Checking session: "
 		fn_print_ok_eol_nl
 		fn_print_ok_eol_nl
 		fn_script_log_pass "Checking session: OK"
 		fn_script_log_pass "Checking session: OK"
 	else
 	else
-		fn_print_error "Checking session: ${ts3error}: "
+		if [ "${gamename}" == "TeamSpeak 3" ]; then
+			fn_print_error "Checking session: ${ts3error}: "
+		elif [ "${gamename}" == "Mumble" ]; then
+			fn_print_error "Checking session: Not listening to port ${queryport}"
+		else
+			fn_print_error "Checking session: "
+		fi
 		fn_print_fail_eol_nl
 		fn_print_fail_eol_nl
-		fn_script_log_error "Checking session: ${ts3error}: FAIL"
-		failurereason="${ts3error}"
+		fn_script_log_error "Checking session: FAIL"
 		alert="restart"
 		alert="restart"
 		alert.sh
 		alert.sh
 		fn_script_log_info "Monitor is starting ${servername}"
 		fn_script_log_info "Monitor is starting ${servername}"
-		sleep 1
+		sleep 0.5
 		command_restart.sh
 		command_restart.sh
 	fi
 	fi
+	sleep 0.5
 }
 }
 
 
-fn_monitor_mumble(){
-	if [ "${status}" != "0" ]; then
-		fn_print_ok "Checking session: "
-		fn_print_ok_eol_nl
-		fn_script_log_pass "Checking session: OK"
-	else
-		fn_print_error "Checking session: Not listening to port ${port}"
-		fn_print_fail_eol_nl
-		fn_script_log_error "Checking session: Not listening to port ${port}"
-		failurereason="Checking session: Not listening to port ${port}"
-		alert="restart"
-		alert.sh
-		fn_script_log_info "Monitor is starting ${servername}"
-		sleep 1
-		command_restart.sh
-	fi
-}
-fn_monitor_tmux(){
-	# checks that tmux session is running
-	if [ "${status}" != "0" ]; then
-		fn_print_ok "Checking session: "
-		fn_print_ok_eol_nl
-		fn_script_log_pass "Checking session: OK"
-		# runs gsquery check on game with specific engines.
-		local allowed_engines_array=( avalanche2.0 avalanche3.0 goldsource idtech2 idtech3 idtech3_ql iw2.0 iw3.0 madness quake refractor realvirtuality source spark starbound unity3d unreal unreal2 )
-		for allowed_engine in "${allowed_engines_array[@]}"
-		do
-			if [ "${allowed_engine}" == "starbound" ]; then
-				info_config.sh
-				if [ "${queryenabled}" == "true" ]; then
-					monitor_gsquery.sh
-				fi
-			elif [ "${allowed_engine}" == "${engine}" ]; then
-				monitor_gsquery.sh
+fn_monitor_query(){
+	fn_script_log_info "Querying port: query enabled"
+	# engines that work with query
+	local allowed_engines_array=( avalanche2.0 avalanche3.0 goldsource idtech2 idtech3 idtech3_ql iw2.0 iw3.0 madness quake refractor realvirtuality source spark starbound unity3d unreal unreal2 unreal4 )
+	for allowed_engine in "${allowed_engines_array[@]}"
+	do
+		if [ "${allowed_engine}" == "${engine}" ]; then
+			if [ "${engine}" == "idtech3_ql" ]; then
+				local engine="quakelive"
+			elif [ "${gamename}" == "Killing Floor 2" ]; then
+				local engine="unreal4"
 			fi
 			fi
-		done
-	else
-		fn_print_error "Checking session: "
-		fn_print_fail_eol_nl
-		fn_script_log_error "Checking session: FAIL"
-		alert="restart"
-		alert.sh
-		fn_script_log_info "Monitor is starting ${servername}"
-		sleep 1
-		command_restart.sh
-	fi
+
+			# will first attempt to use gamedig then gsquery
+			totalseconds=0
+			local query_methods_array=( gamedig gsquery )
+			for query_method in "${query_methods_array[@]}"
+			do
+				if [ "${query_method}" == "gamedig" ]; then
+					# will bypass gamedig if not installed
+					if [ "$(command -v gamedig 2>/dev/null)" ]&&[ "$(command -v jq 2>/dev/null)" ]; then
+						if [ -z "${monitorpass}" ]; then
+							querymethod="${query_method}"
+							fn_monitor_loop
+						fi
+					fi
+				else
+					if [ -z "${monitorpass}" ]; then
+						querymethod="${query_method}"
+						fn_monitor_loop
+					fi
+				fi
+			done
+		fi
+	done
+}
+
+fn_monitor_query_telnet(){
+	querymethod="telnet"
+	fn_monitor_loop
 }
 }
 
 
 monitorflag=1
 monitorflag=1
 fn_print_dots "${servername}"
 fn_print_dots "${servername}"
-sleep 1
+sleep 0.5
 check.sh
 check.sh
 logs.sh
 logs.sh
 info_config.sh
 info_config.sh
+info_parms.sh
 
 
 fn_monitor_check_lockfile
 fn_monitor_check_lockfile
 fn_monitor_check_update
 fn_monitor_check_update
-fn_monitor_msg_checking
-if [ "${gamename}" == "TeamSpeak 3" ]; then
-	fn_monitor_teamspeak3
-elif [ "${gamename}" == "Mumble" ]; then
-	fn_monitor_mumble
+fn_monitor_check_session
+# Query has to be enabled in Starbound config
+if [ "${gamename}" == "Starbound" ]; then
+	if [ "${queryenabled}" == "true" ]; then
+		fn_monitor_query
+	fi
+elif [ "${gamename}" == "TeamSpeak 3" ]; then
+	fn_monitor_query_telnet
 else
 else
-	fn_monitor_tmux
+	fn_monitor_query
 fi
 fi
-core_exit.sh
+
+core_exit.sh

+ 3 - 3
lgsm/functions/command_postdetails.sh

@@ -2,7 +2,7 @@
 # LinuxGSM command_postdetails.sh function
 # LinuxGSM command_postdetails.sh function
 # Author: CedarLUG
 # Author: CedarLUG
 # Contributor: CedarLUG
 # Contributor: CedarLUG
-# Website: https://gameservermanagers.com
+# Website: https://linuxgsm.com
 # Description: Strips sensitive information out of Details output
 # Description: Strips sensitive information out of Details output
 
 
 local commandname="postdetails"
 local commandname="postdetails"
@@ -74,7 +74,7 @@ fi
 
 
 if [ "${posttarget}" == "http://pastebin.com" ] ; then
 if [ "${posttarget}" == "http://pastebin.com" ] ; then
 	fn_print_dots "Posting details to pastbin.com for ${postexpire}"
 	fn_print_dots "Posting details to pastbin.com for ${postexpire}"
-	sleep 1
+	sleep 0.5
 	# grab the return from 'value' from an initial visit to pastebin.
 	# grab the return from 'value' from an initial visit to pastebin.
 	csrftoken=$(${curlpath} -s "${posttarget}" |
 	csrftoken=$(${curlpath} -s "${posttarget}" |
 					sed -n 's/^.*input type="hidden" name="csrf_token_post" value="\(.*\)".*$/\1/p')
 					sed -n 's/^.*input type="hidden" name="csrf_token_post" value="\(.*\)".*$/\1/p')
@@ -94,7 +94,7 @@ if [ "${posttarget}" == "http://pastebin.com" ] ; then
 	echo "  Please share the following url for support: ${pdurl}"
 	echo "  Please share the following url for support: ${pdurl}"
 elif [ "${posttarget}" == "https://hastebin.com" ] ; then
 elif [ "${posttarget}" == "https://hastebin.com" ] ; then
 	fn_print_dots "Posting details to hastebin.com"
 	fn_print_dots "Posting details to hastebin.com"
-	sleep 1
+	sleep 0.5
 	# hastebin is a bit simpler.  If successful, the returned result
 	# hastebin is a bit simpler.  If successful, the returned result
 	# should look like: {"something":"key"}, putting the reference that
 	# should look like: {"something":"key"}, putting the reference that
 	# we need in "key".  TODO - error handling. -CedarLUG
 	# we need in "key".  TODO - error handling. -CedarLUG

+ 1 - 1
lgsm/functions/command_restart.sh

@@ -1,7 +1,7 @@
 #!/bin/bash
 #!/bin/bash
 # LinuxGSM command_restart.sh function
 # LinuxGSM command_restart.sh function
 # Author: Daniel Gibbs
 # Author: Daniel Gibbs
-# Website: https://gameservermanagers.com
+# Website: https://linuxgsm.com
 # Description: Restarts the server.
 # Description: Restarts the server.
 
 
 local commandname="RESTART"
 local commandname="RESTART"

+ 23 - 22
lgsm/functions/command_start.sh

@@ -2,7 +2,7 @@
 # LinuxGSM command_start.sh function
 # LinuxGSM command_start.sh function
 # Author: Daniel Gibbs
 # Author: Daniel Gibbs
 # Contributor: UltimateByte
 # Contributor: UltimateByte
-# Website: https://gameservermanagers.com
+# Website: https://linuxgsm.com
 # Description: Starts the server.
 # Description: Starts the server.
 
 
 local commandname="START"
 local commandname="START"
@@ -15,16 +15,16 @@ fn_start_teamspeak3(){
 		fn_script_log_warn "${servercfgfullpath} is missing"
 		fn_script_log_warn "${servercfgfullpath} is missing"
 		echo  "	* Creating blank ${servercfg}"
 		echo  "	* Creating blank ${servercfg}"
 		fn_script_log_info "Creating blank ${servercfg}"
 		fn_script_log_info "Creating blank ${servercfg}"
-		sleep 2
+		sleep 1
 		echo  "	* ${servercfg} can remain blank by default."
 		echo  "	* ${servercfg} can remain blank by default."
 		fn_script_log_info "${servercfgfullpath} can remain blank by default."
 		fn_script_log_info "${servercfgfullpath} can remain blank by default."
-		sleep 2
+		sleep 1
 		echo  "	* ${servercfg} is located in ${servercfgfullpath}."
 		echo  "	* ${servercfg} is located in ${servercfgfullpath}."
 		fn_script_log_info "${servercfg} is located in ${servercfgfullpath}."
 		fn_script_log_info "${servercfg} is located in ${servercfgfullpath}."
 		sleep 5
 		sleep 5
 		touch "${servercfgfullpath}"
 		touch "${servercfgfullpath}"
 	fi
 	fi
-	sleep 1
+	sleep 0.5
 	check_status.sh
 	check_status.sh
 	if [ "${status}" != "0" ]; then
 	if [ "${status}" != "0" ]; then
 		fn_print_info_nl "${servername} is already running"
 		fn_print_info_nl "${servername} is already running"
@@ -42,7 +42,7 @@ fn_start_teamspeak3(){
 	if [ ! -f "${executabledir}/.ts3server_license_accepted" ]; then
 	if [ ! -f "${executabledir}/.ts3server_license_accepted" ]; then
 		fn_script_log "Accepting ts3server license:  ${executabledir}/LICENSE"
 		fn_script_log "Accepting ts3server license:  ${executabledir}/LICENSE"
 		fn_print_info_nl "Accepting TeamSpeak license:"
 		fn_print_info_nl "Accepting TeamSpeak license:"
-		fn_print_info_nl " * ${executabledir}/LICENSE"
+		echo " * ${executabledir}/LICENSE"
 		sleep 3
 		sleep 3
 		touch "${executabledir}/.ts3server_license_accepted"
 		touch "${executabledir}/.ts3server_license_accepted"
 	fi
 	fi
@@ -52,7 +52,7 @@ fn_start_teamspeak3(){
 	else
 	else
 		./ts3server_startscript.sh start inifile="${servercfgfullpath}" > /dev/null 2>&1
 		./ts3server_startscript.sh start inifile="${servercfgfullpath}" > /dev/null 2>&1
 	fi
 	fi
-	sleep 1
+	sleep 0.5
 	check_status.sh
 	check_status.sh
 	if [ "${status}" == "0" ]; then
 	if [ "${status}" == "0" ]; then
 		fn_print_fail_nl "Unable to start ${servername}"
 		fn_print_fail_nl "Unable to start ${servername}"
@@ -112,31 +112,31 @@ fn_start_tmux(){
 	touch "${consolelog}"
 	touch "${consolelog}"
 
 
 	# Get tmux version
 	# Get tmux version
-	tmuxversion="$(tmux -V|sed "s/tmux //"|sed -n '1 p')"
+	tmuxversion="$(tmux -V | sed "s/tmux //" | sed -n '1 p')"
 	# Tmux compiled from source will return "master", therefore ignore it
 	# Tmux compiled from source will return "master", therefore ignore it
-	if [ "$(tmux -V|sed "s/tmux //"|sed -n '1 p')" == "master" ]; then
+	if [ "$(tmux -V | sed "s/tmux //" | sed -n '1 p')" == "master" ]; then
 		fn_script_log "Tmux version: master (user compiled)"
 		fn_script_log "Tmux version: master (user compiled)"
 		echo "Tmux version: master (user compiled)" >> "${consolelog}"
 		echo "Tmux version: master (user compiled)" >> "${consolelog}"
 		if [ "${consolelogging}" == "on" ]||[ -z "${consolelogging}" ]; then
 		if [ "${consolelogging}" == "on" ]||[ -z "${consolelogging}" ]; then
-			tmux pipe-pane -o -t "${servicename}" "exec cat >> '${consolelog}'"
+			tmux pipe-pane -o -t="${servicename}" "exec cat >> '${consolelog}'"
 		fi
 		fi
 	elif [ -n "${tmuxversion}" ]; then
 	elif [ -n "${tmuxversion}" ]; then
 		# Get the digit version of tmux
 		# Get the digit version of tmux
-		tmuxversion="$(tmux -V|sed "s/tmux //"|sed -n '1 p'|tr -cd '[:digit:]')"
+		tmuxversion="$(tmux -V | sed "s/tmux //" | sed -n '1 p' | tr -cd '[:digit:]')"
 		# tmux pipe-pane not supported in tmux versions < 1.6
 		# tmux pipe-pane not supported in tmux versions < 1.6
 		if [ "${tmuxversion}" -lt "16" ]; then
 		if [ "${tmuxversion}" -lt "16" ]; then
 			echo "Console logging disabled: Tmux => 1.6 required
 			echo "Console logging disabled: Tmux => 1.6 required
-			https://gameservermanagers.com/tmux-upgrade
+			https://linuxgsm.com/tmux-upgrade
 			Currently installed: $(tmux -V)" > "${consolelog}"
 			Currently installed: $(tmux -V)" > "${consolelog}"
 
 
 		# Console logging disabled: Bug in tmux 1.8 breaks logging
 		# Console logging disabled: Bug in tmux 1.8 breaks logging
 		elif [ "${tmuxversion}" -eq "18" ]; then
 		elif [ "${tmuxversion}" -eq "18" ]; then
 			echo "Console logging disabled: Bug in tmux 1.8 breaks logging
 			echo "Console logging disabled: Bug in tmux 1.8 breaks logging
-			https://gameservermanagers.com/tmux-upgrade
+			https://linuxgsm.com/tmux-upgrade
 			Currently installed: $(tmux -V)" > "${consolelog}"
 			Currently installed: $(tmux -V)" > "${consolelog}"
 		# Console logging enable or not set
 		# Console logging enable or not set
 		elif [ "${consolelogging}" == "on" ]||[ -z "${consolelogging}" ]; then
 		elif [ "${consolelogging}" == "on" ]||[ -z "${consolelogging}" ]; then
-			tmux pipe-pane -o -t "${servicename}" "exec cat >> '${consolelog}'"
+			tmux pipe-pane -o -t="${servicename}" "exec cat >> '${consolelog}'"
 		fi
 		fi
 	else
 	else
 		echo "Unable to detect tmux version" >> "${consolelog}"
 		echo "Unable to detect tmux version" >> "${consolelog}"
@@ -148,14 +148,14 @@ if [ "${consolelogging}" == "off" ]; then
 	echo "Console logging disabled by user" >> "${consolelog}"
 	echo "Console logging disabled by user" >> "${consolelog}"
 	fn_script_log_info "Console logging disabled by user"
 	fn_script_log_info "Console logging disabled by user"
 fi
 fi
-sleep 1
+sleep 0.5
 
 
 	# If the server fails to start
 	# If the server fails to start
 	check_status.sh
 	check_status.sh
 	if [ "${status}" == "0" ]; then
 	if [ "${status}" == "0" ]; then
 		fn_print_fail_nl "Unable to start ${servername}"
 		fn_print_fail_nl "Unable to start ${servername}"
 		fn_script_log_fatal "Unable to start ${servername}"
 		fn_script_log_fatal "Unable to start ${servername}"
-		sleep 1
+		sleep 0.5
 		if [ -s "${lgsmlogdir}/.${servicename}-tmux-error.tmp" ]; then
 		if [ -s "${lgsmlogdir}/.${servicename}-tmux-error.tmp" ]; then
 			fn_print_fail_nl "Unable to start ${servername}: Tmux error:"
 			fn_print_fail_nl "Unable to start ${servername}: Tmux error:"
 			fn_script_log_fatal "Unable to start ${servername}: Tmux error:"
 			fn_script_log_fatal "Unable to start ${servername}: Tmux error:"
@@ -168,8 +168,9 @@ sleep 1
 			echo "================================="
 			echo "================================="
 			cat "${lgsmlogdir}/.${servicename}-tmux-error.tmp" | tee -a "${lgsmlog}"
 			cat "${lgsmlogdir}/.${servicename}-tmux-error.tmp" | tee -a "${lgsmlog}"
 
 
-			# Detected error https://gameservermanagers.com/support
-			if [ $(grep -c "Operation not permitted" "${lgsmlogdir}/.${servicename}-tmux-error.tmp") ]; then
+			# Detected error https://linuxgsm.com/support
+			if grep -c "Operation not permitted" "${lgsmlogdir}/.${servicename}-tmux-error.tmp"
+			then
 			echo ""
 			echo ""
 			echo "Fix"
 			echo "Fix"
 			echo "================================="
 			echo "================================="
@@ -185,13 +186,13 @@ sleep 1
 					echo ""
 					echo ""
 					echo "	usermod -G tty $(whoami)"
 					echo "	usermod -G tty $(whoami)"
 					echo ""
 					echo ""
-					echo "https://gameservermanagers.com/tmux-op-perm"
-					fn_script_log_info "https://gameservermanagers.com/tmux-op-perm"
+					echo "https://linuxgsm.com/tmux-op-perm"
+					fn_script_log_info "https://linuxgsm.com/tmux-op-perm"
 				else
 				else
 					echo "No known fix currently. Please log an issue."
 					echo "No known fix currently. Please log an issue."
 					fn_script_log_info "No known fix currently. Please log an issue."
 					fn_script_log_info "No known fix currently. Please log an issue."
-					echo "https://gameservermanagers.com/support"
-					fn_script_log_info "https://gameservermanagers.com/support"
+					echo "https://linuxgsm.com/support"
+					fn_script_log_info "https://linuxgsm.com/support"
 				fi
 				fi
 			fi
 			fi
 		fi
 		fi
@@ -206,7 +207,7 @@ sleep 1
 }
 }
 
 
 fn_print_dots "${servername}"
 fn_print_dots "${servername}"
-sleep 1
+sleep 0.5
 check.sh
 check.sh
 fix.sh
 fix.sh
 info_config.sh
 info_config.sh

+ 18 - 18
lgsm/functions/command_stop.sh

@@ -2,7 +2,7 @@
 # LinuxGSM command_stop.sh function
 # LinuxGSM command_stop.sh function
 # Author: Daniel Gibbs
 # Author: Daniel Gibbs
 # Contributors: UltimateByte
 # Contributors: UltimateByte
-# Website: https://gameservermanagers.com
+# Website: https://linuxgsm.com
 # Description: Stops the server.
 # Description: Stops the server.
 
 
 local commandname="STOP"
 local commandname="STOP"
@@ -33,7 +33,7 @@ fn_stop_graceful_ctrlc(){
 		fn_print_fail_eol_nl
 		fn_print_fail_eol_nl
 		fn_script_log_error "Graceful: CTRL+c: FAIL"
 		fn_script_log_error "Graceful: CTRL+c: FAIL"
 	fi
 	fi
-	sleep 1
+	sleep 0.5
 	fn_stop_tmux
 	fn_stop_tmux
 }
 }
 
 
@@ -44,7 +44,7 @@ fn_stop_graceful_cmd(){
 	fn_print_dots "Graceful: sending \"${1}\""
 	fn_print_dots "Graceful: sending \"${1}\""
 	fn_script_log_info "Graceful: sending \"${1}\""
 	fn_script_log_info "Graceful: sending \"${1}\""
 	# sends specific stop command
 	# sends specific stop command
-	tmux send -t "${servicename}" ${1} ENTER > /dev/null 2>&1
+	tmux send -t "${servicename}" "${1}" ENTER > /dev/null 2>&1
 	# waits up to given seconds giving the server time to shutdown gracefully
 	# waits up to given seconds giving the server time to shutdown gracefully
 	for ((seconds=1; seconds<=${2}; seconds++)); do
 	for ((seconds=1; seconds<=${2}; seconds++)); do
 		check_status.sh
 		check_status.sh
@@ -63,7 +63,7 @@ fn_stop_graceful_cmd(){
 		fn_print_fail_eol_nl
 		fn_print_fail_eol_nl
 		fn_script_log_error "Graceful: sending \"${1}\": FAIL"
 		fn_script_log_error "Graceful: sending \"${1}\": FAIL"
 	fi
 	fi
-	sleep 1
+	sleep 0.5
 	fn_stop_tmux
 	fn_stop_tmux
 }
 }
 
 
@@ -84,7 +84,7 @@ fn_stop_graceful_goldsource(){
 	fn_print_ok "Graceful: sending \"quit\": ${seconds}: "
 	fn_print_ok "Graceful: sending \"quit\": ${seconds}: "
 	fn_print_ok_eol_nl
 	fn_print_ok_eol_nl
 	fn_script_log_pass "Graceful: sending \"quit\": OK: ${seconds} seconds"
 	fn_script_log_pass "Graceful: sending \"quit\": OK: ${seconds} seconds"
-	sleep 1
+	sleep 0.5
 	fn_stop_tmux
 	fn_stop_tmux
 }
 }
 
 
@@ -115,18 +115,18 @@ fn_stop_telnet_sdtd(){
 fn_stop_graceful_sdtd(){
 fn_stop_graceful_sdtd(){
 	fn_print_dots "Graceful: telnet"
 	fn_print_dots "Graceful: telnet"
 	fn_script_log_info "Graceful: telnet"
 	fn_script_log_info "Graceful: telnet"
-	sleep 1
+	sleep 0.5
 	if [ "${telnetenabled}" == "false" ]; then
 	if [ "${telnetenabled}" == "false" ]; then
 		fn_print_info_nl "Graceful: telnet: DISABLED: Enable in ${servercfg}"
 		fn_print_info_nl "Graceful: telnet: DISABLED: Enable in ${servercfg}"
-	elif [ "$(command -v expect 2>/dev/null)" ]||[ "$(which expect >/dev/null 2>&1)" ]; then
+	elif [ "$(command -v expect 2>/dev/null)" ]; then
 		# Tries to shutdown with both localhost and server IP.
 		# Tries to shutdown with both localhost and server IP.
 		for telnetip in 127.0.0.1 ${ip}; do
 		for telnetip in 127.0.0.1 ${ip}; do
 			fn_print_dots "Graceful: telnet: ${telnetip}"
 			fn_print_dots "Graceful: telnet: ${telnetip}"
 			fn_script_log_info "Graceful: telnet: ${telnetip}"
 			fn_script_log_info "Graceful: telnet: ${telnetip}"
-			sleep 1
+			sleep 0.5
 			fn_stop_telnet_sdtd
 			fn_stop_telnet_sdtd
-			completed=$(echo -en "\n ${sdtd_telnet_shutdown}"|grep "Completed.")
-			refused=$(echo -en "\n ${sdtd_telnet_shutdown}"|grep "Timeout or EOF")
+			completed=$(echo -en "\n ${sdtd_telnet_shutdown}" | grep "Completed.")
+			refused=$(echo -en "\n ${sdtd_telnet_shutdown}" | grep "Timeout or EOF")
 			if [ -n "${refused}" ]; then
 			if [ -n "${refused}" ]; then
 				fn_print_error "Graceful: telnet: ${telnetip}: "
 				fn_print_error "Graceful: telnet: ${telnetip}: "
 				fn_print_fail_eol_nl
 				fn_print_fail_eol_nl
@@ -142,7 +142,7 @@ fn_stop_graceful_sdtd(){
 		if [ -n "${completed}" ]; then
 		if [ -n "${completed}" ]; then
 			for seconds in {1..30}; do
 			for seconds in {1..30}; do
 				fn_stop_telnet_sdtd
 				fn_stop_telnet_sdtd
-				refused=$(echo -en "\n ${sdtd_telnet_shutdown}"|grep "Timeout or EOF")
+				refused=$(echo -en "\n ${sdtd_telnet_shutdown}" | grep "Timeout or EOF")
 				if [ -n "${refused}" ]; then
 				if [ -n "${refused}" ]; then
 					fn_print_ok "Graceful: telnet: ${telnetip}: "
 					fn_print_ok "Graceful: telnet: ${telnetip}: "
 					fn_print_ok_eol_nl
 					fn_print_ok_eol_nl
@@ -173,7 +173,7 @@ fn_stop_graceful_sdtd(){
 		fn_print_fail_eol_nl
 		fn_print_fail_eol_nl
 		fn_script_log_warn "Graceful: telnet: expect not installed: FAIL"
 		fn_script_log_warn "Graceful: telnet: expect not installed: FAIL"
 	fi
 	fi
-	sleep 1
+	sleep 0.5
 	fn_stop_tmux
 	fn_stop_tmux
 }
 }
 
 
@@ -193,7 +193,7 @@ fn_stop_graceful_select(){
 		fn_stop_graceful_goldsource
 		fn_stop_graceful_goldsource
 	elif [ "${engine}" == "avalanche2.0" ]||[ "${engine}" == "avalanche3.0" ]||[ "${gamename}" == "Factorio" ]||[ "${engine}" == "unity3d" ]||[ "${engine}" == "unreal4" ]||[ "${engine}" == "unreal3" ]||[ "${engine}" == "unreal2" ]||[ "${engine}" == "unreal" ]||[ "${gamename}" == "Mumble" ]; then
 	elif [ "${engine}" == "avalanche2.0" ]||[ "${engine}" == "avalanche3.0" ]||[ "${gamename}" == "Factorio" ]||[ "${engine}" == "unity3d" ]||[ "${engine}" == "unreal4" ]||[ "${engine}" == "unreal3" ]||[ "${engine}" == "unreal2" ]||[ "${engine}" == "unreal" ]||[ "${gamename}" == "Mumble" ]; then
 		fn_stop_graceful_ctrlc
 		fn_stop_graceful_ctrlc
-	elif  [ "${engine}" == "source" ]||[ "${engine}" == "quake" ]||[ "${engine}" == "idtech2" ]||[ "${engine}" == "idtech3" ]||[ "${engine}" == "idtech3_ql" ]||[ "${engine}" == "Just Cause 2" ]||[ "${engine}" == "projectzomboid" ]; then
+	elif  [ "${engine}" == "source" ]||[ "${engine}" == "quake" ]||[ "${engine}" == "idtech2" ]||[ "${engine}" == "idtech3" ]||[ "${engine}" == "idtech3_ql" ]||[ "${engine}" == "Just Cause 2" ]||[ "${engine}" == "projectzomboid" ]||[ "${shortname}" == "rw" ]; then
 		fn_stop_graceful_cmd "quit" 30
 		fn_stop_graceful_cmd "quit" 30
 	else
 	else
 		fn_stop_tmux
 		fn_stop_tmux
@@ -218,17 +218,17 @@ fn_stop_ark(){
 
 
 	if [ "${#queryport}" -gt 0 ] ; then
 	if [ "${#queryport}" -gt 0 ] ; then
 		for (( pidcheck=0 ; pidcheck < ${maxpiditer} ; pidcheck++ )) ; do
 		for (( pidcheck=0 ; pidcheck < ${maxpiditer} ; pidcheck++ )) ; do
-			pid=$(netstat -nap 2>/dev/null | grep ^udp[[:space:]] |\
-				grep :${queryport}[[:space:]] | rev | awk '{print $1}' |\
+			pid=$(netstat -nap 2>/dev/null | grep "^udp[[:space:]]" |\
+				grep ":${queryport}[[:space:]]" | rev | awk '{print $1}' |\
 				rev | cut -d\/ -f1)
 				rev | cut -d\/ -f1)
 			#
 			#
 			# check for a valid pid
 			# check for a valid pid
 			pid=${pid//[!0-9]/}
 			pid=${pid//[!0-9]/}
 			let pid+=0 # turns an empty string into a valid number, '0',
 			let pid+=0 # turns an empty string into a valid number, '0',
 			# and a valid numeric pid remains unchanged.
 			# and a valid numeric pid remains unchanged.
-			if [ "${pid}" -gt 1 ]&&[ "${pid}" -le $(cat /proc/sys/kernel/pid_max) ]; then
+			if [ "${pid}" -gt 1 ]&&[ "${pid}" -le "$(cat "/proc/sys/kernel/pid_max")" ]; then
 			fn_print_dots "Process still bound. Awaiting graceful exit: ${pidcheck}"
 			fn_print_dots "Process still bound. Awaiting graceful exit: ${pidcheck}"
-				sleep 1
+				sleep 0.5
 			else
 			else
 				break # Our job is done here
 				break # Our job is done here
 			fi # end if for pid range check
 			fi # end if for pid range check
@@ -263,7 +263,7 @@ fn_stop_tmux(){
 	fn_script_log_info "tmux kill-session: ${servername}"
 	fn_script_log_info "tmux kill-session: ${servername}"
 	sleep 0.5
 	sleep 0.5
 	# Kill tmux session
 	# Kill tmux session
-	tmux kill-session -t "${servicename}" > /dev/null 2>&1
+	tmux kill-session -t="${servicename}" > /dev/null 2>&1
 	sleep 0.5
 	sleep 0.5
 	check_status.sh
 	check_status.sh
 	if [ "${status}" == "0" ]; then
 	if [ "${status}" == "0" ]; then

+ 2 - 2
lgsm/functions/command_test_alert.sh

@@ -1,7 +1,7 @@
 #!/bin/bash
 #!/bin/bash
 # LinuxGSM command_test_alert.sh function
 # LinuxGSM command_test_alert.sh function
 # Author: Daniel Gibbs
 # Author: Daniel Gibbs
-# Website: https://gameservermanagers.com
+# Website: https://linuxgsm.com
 # Description: Sends a test alert.
 # Description: Sends a test alert.
 
 
 local commandname="ALERT"
 local commandname="ALERT"
@@ -9,7 +9,7 @@ local commandaction="Alert"
 local function_selfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
 local function_selfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
 
 
 fn_print_dots "${servername}"
 fn_print_dots "${servername}"
-sleep 1
+sleep 0.5
 check.sh
 check.sh
 info_config.sh
 info_config.sh
 alert="test"
 alert="test"

+ 4 - 4
lgsm/functions/command_ts3_server_pass.sh

@@ -2,7 +2,7 @@
 # LinuxGSM command_ts3_server_pass.sh function
 # LinuxGSM command_ts3_server_pass.sh function
 # Author: Daniel Gibbs
 # Author: Daniel Gibbs
 # Contributor : UltimateByte
 # Contributor : UltimateByte
-# Website: https://gameservermanagers.com
+# Website: https://linuxgsm.com
 # Description: Changes TS3 serveradmin password.
 # Description: Changes TS3 serveradmin password.
 
 
 local commandname="TS3-CHANGE-PASS"
 local commandname="TS3-CHANGE-PASS"
@@ -19,20 +19,20 @@ fn_serveradmin_password_prompt(){
 		echo Exiting; exit
 		echo Exiting; exit
 	fi
 	fi
 	fn_script_log_info "Initiating ${gamename} ServerAdmin password change"
 	fn_script_log_info "Initiating ${gamename} ServerAdmin password change"
-	read -p "Enter new password : " newpassword
+	read -rp "Enter new password : " newpassword
 }
 }
 
 
 fn_serveradmin_password_set(){
 fn_serveradmin_password_set(){
 	fn_print_info_nl "Starting server with new password..."
 	fn_print_info_nl "Starting server with new password..."
 	fn_script_log_info "Starting server with new password"
 	fn_script_log_info "Starting server with new password"
-	sleep 1
+	sleep 0.5
 	# Start server in "new password mode"
 	# Start server in "new password mode"
 	ts3serverpass="1"
 	ts3serverpass="1"
 	exitbypass="1"
 	exitbypass="1"
 	command_start.sh
 	command_start.sh
 	fn_print_ok_nl "Password applied"
 	fn_print_ok_nl "Password applied"
 	fn_script_log_pass "New ServerAdmin password applied"
 	fn_script_log_pass "New ServerAdmin password applied"
-	sleep 1
+	sleep 0.5
 }
 }
 
 
 # Running functions
 # Running functions

+ 1 - 1
lgsm/functions/command_update.sh

@@ -1,7 +1,7 @@
 #!/bin/bash
 #!/bin/bash
 # LinuxGSM command_update.sh function
 # LinuxGSM command_update.sh function
 # Author: Daniel Gibbs
 # Author: Daniel Gibbs
-# Website: https://gameservermanagers.com
+# Website: https://linuxgsm.com
 # Description: Handles updating of servers.
 # Description: Handles updating of servers.
 
 
 local commandname="UPDATE"
 local commandname="UPDATE"

+ 1 - 1
lgsm/functions/command_update_functions.sh

@@ -1,7 +1,7 @@
 #!/bin/bash
 #!/bin/bash
 # LinuxGSM command_update_functions.sh function
 # LinuxGSM command_update_functions.sh function
 # Author: Daniel Gibbs
 # Author: Daniel Gibbs
-# Website: https://gameservermanagers.com
+# Website: https://linuxgsm.com
 # Description: Deletes the functions dir to allow re-downloading of functions from GitHub.
 # Description: Deletes the functions dir to allow re-downloading of functions from GitHub.
 # Legacy Command
 # Legacy Command
 
 

+ 5 - 5
lgsm/functions/command_update_linuxgsm.sh

@@ -1,7 +1,7 @@
 #!/bin/bash
 #!/bin/bash
 # LinuxGSM command_update_linuxgsm.sh function
 # LinuxGSM command_update_linuxgsm.sh function
 # Author: Daniel Gibbs
 # Author: Daniel Gibbs
-# Website: https://gameservermanagers.com
+# Website: https://linuxgsm.com
 # Description: Deletes the functions dir to allow re-downloading of functions from GitHub.
 # Description: Deletes the functions dir to allow re-downloading of functions from GitHub.
 
 
 local commandname="UPDATE LinuxGSM"
 local commandname="UPDATE LinuxGSM"
@@ -9,12 +9,12 @@ local commandaction="Update LinuxGSM"
 local function_selfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
 local function_selfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
 
 
 fn_print_dots "Updating LinuxGSM"
 fn_print_dots "Updating LinuxGSM"
-sleep 1
+sleep 0.5
 check.sh
 check.sh
 fn_script_log_info "Updating LinuxGSM"
 fn_script_log_info "Updating LinuxGSM"
 echo -ne "\n"
 echo -ne "\n"
 
 
-if [ -z "${legacymode}" ];then
+if [ -z "${legacymode}" ]; then
 	# Check and update _default.cfg
 	# Check and update _default.cfg
 	echo -ne "    checking config _default.cfg...\c"
 	echo -ne "    checking config _default.cfg...\c"
 	config_file_diff=$(diff "${configdirdefault}/config-lgsm/${gameservername}/_default.cfg" <(${curlpath} -s "https://raw.githubusercontent.com/${githubuser}/${githubrepo}/${githubbranch}/lgsm/config-default/config-lgsm/${gameservername}/_default.cfg"))
 	config_file_diff=$(diff "${configdirdefault}/config-lgsm/${gameservername}/_default.cfg" <(${curlpath} -s "https://raw.githubusercontent.com/${githubuser}/${githubrepo}/${githubbranch}/lgsm/config-default/config-lgsm/${gameservername}/_default.cfg"))
@@ -75,7 +75,7 @@ fi
 # Check and update functions
 # Check and update functions
 if [ -n "${functionsdir}" ]; then
 if [ -n "${functionsdir}" ]; then
 	if [ -d "${functionsdir}" ]; then
 	if [ -d "${functionsdir}" ]; then
-		cd "${functionsdir}"
+		cd "${functionsdir}" || exit
 		for functionfile in *
 		for functionfile in *
 		do
 		do
 			echo -ne "    checking function ${functionfile}...\c"
 			echo -ne "    checking function ${functionfile}...\c"
@@ -97,7 +97,7 @@ if [ -n "${functionsdir}" ]; then
 			elif [ "${function_file_diff}" != "" ]; then
 			elif [ "${function_file_diff}" != "" ]; then
 				fn_print_update_eol_nl
 				fn_print_update_eol_nl
 				fn_script_log_info "checking function ${functionfile}: UPDATE"
 				fn_script_log_info "checking function ${functionfile}: UPDATE"
-				rm -rf "${functionsdir}/${functionfile}"
+				rm -rf "${functionsdir:?}/${functionfile}"
 				fn_update_function
 				fn_update_function
 			else
 			else
 				fn_print_ok_eol_nl
 				fn_print_ok_eol_nl

+ 7 - 7
lgsm/functions/command_validate.sh

@@ -1,7 +1,7 @@
 #!/bin/bash
 #!/bin/bash
 # LinuxGSM command_validate.sh function
 # LinuxGSM command_validate.sh function
 # Author: Daniel Gibbs
 # Author: Daniel Gibbs
-# Website: https://gameservermanagers.com
+# Website: https://linuxgsm.com
 # Description: Runs a server validation.
 # Description: Runs a server validation.
 
 
 local commandname="VALIDATE"
 local commandname="VALIDATE"
@@ -17,19 +17,19 @@ fn_validation(){
 	echo -en "\n"
 	echo -en "\n"
 
 
 	fn_script_log_info "Validating files: SteamCMD"
 	fn_script_log_info "Validating files: SteamCMD"
-	sleep 1
+	sleep 0.5
 
 
-	cd "${steamcmddir}"
+	cd "${steamcmddir}" || exit
 	# Detects if unbuffer command is available for 32 bit distributions only.
 	# Detects if unbuffer command is available for 32 bit distributions only.
 	info_distro.sh
 	info_distro.sh
-	if [ $(command -v stdbuf) ]&&[ "${arch}" != "x86_64" ]; then
+	if [ "$(command -v stdbuf)" ]&&[ "${arch}" != "x86_64" ]; then
 		unbuffer="stdbuf -i0 -o0 -e0"
 		unbuffer="stdbuf -i0 -o0 -e0"
 	fi
 	fi
 
 
 	if [ "${engine}" == "goldsource" ]; then
 	if [ "${engine}" == "goldsource" ]; then
-		${unbuffer} ./steamcmd.sh +login "${steamuser}" "${steampass}" +force_install_dir "${serverfiles}" +app_set_config 90 mod ${appidmod} +app_update "${appid}" ${branch} +app_update "${appid}" ${branch} validate +quit| tee -a "${lgsmlog}"
+		${unbuffer} ./steamcmd.sh +login "${steamuser}" "${steampass}" +force_install_dir "${serverfiles}" +app_set_config 90 mod "${appidmod}" +app_update "${appid}" ${branch} +app_update "${appid}" ${branch} validate +quit | tee -a "${lgsmlog}"
 	else
 	else
-		${unbuffer} ./steamcmd.sh +login "${steamuser}" "${steampass}" +force_install_dir "${serverfiles}" +app_update "${appid}" ${branch} validate +quit| tee -a "${lgsmlog}"
+		${unbuffer} ./steamcmd.sh +login "${steamuser}" "${steampass}" +force_install_dir "${serverfiles}" +app_update "${appid}" ${branch} validate +quit | tee -a "${lgsmlog}"
 	fi
 	fi
 	if [ $? != 0 ]; then
 	if [ $? != 0 ]; then
 		fn_print_fail_nl "Validating files: SteamCMD"
 		fn_print_fail_nl "Validating files: SteamCMD"
@@ -45,7 +45,7 @@ fn_validation(){
 fn_print_dots "Validating files:"
 fn_print_dots "Validating files:"
 sleep 0.5
 sleep 0.5
 fn_print_dots "Validating files: SteamCMD"
 fn_print_dots "Validating files: SteamCMD"
-sleep 1
+sleep 0.5
 check.sh
 check.sh
 check_status.sh
 check_status.sh
 if [ "${status}" != "0" ]; then
 if [ "${status}" != "0" ]; then

+ 11 - 11
lgsm/functions/command_wipe.sh

@@ -2,7 +2,7 @@
 # LinuxGSM command_backup.sh function
 # LinuxGSM command_backup.sh function
 # Author: Daniel Gibbs
 # Author: Daniel Gibbs
 # Contributor: UltimateByte
 # Contributor: UltimateByte
-# Website: https://gameservermanagers.com
+# Website: https://linuxgsm.com
 # Description: Wipes server data, useful after updates for some games like Rust
 # Description: Wipes server data, useful after updates for some games like Rust
 
 
 local commandname="WIPE"
 local commandname="WIPE"
@@ -48,7 +48,7 @@ fn_wipe_server_remove_files(){
 		if [ -n "$(find "${serveridentitydir}" -type f -name "proceduralmap.*.sav")" ]; then
 		if [ -n "$(find "${serveridentitydir}" -type f -name "proceduralmap.*.sav")" ]; then
 			currentaction="Removing procedural map save(s): ${serveridentitydir}/proceduralmap.*.sav"
 			currentaction="Removing procedural map save(s): ${serveridentitydir}/proceduralmap.*.sav"
 			echo -en "Removing map saves proceduralmap.*.sav file(s)..."
 			echo -en "Removing map saves proceduralmap.*.sav file(s)..."
-			sleep 1
+			sleep 0.5
 			fn_script_log "${currentaction}"
 			fn_script_log "${currentaction}"
 			find "${serveridentitydir:?}" -type f -name "proceduralmap.*.sav" -delete
 			find "${serveridentitydir:?}" -type f -name "proceduralmap.*.sav" -delete
 			fn_wipe_exit_code
 			fn_wipe_exit_code
@@ -62,7 +62,7 @@ fn_wipe_server_remove_files(){
 			if [ -n "$(find "${serveridentitydir}" -type f -name "barren*.sav")" ]; then
 			if [ -n "$(find "${serveridentitydir}" -type f -name "barren*.sav")" ]; then
 			currentaction="Removing barren map save(s): ${serveridentitydir}/barren*.sav"
 			currentaction="Removing barren map save(s): ${serveridentitydir}/barren*.sav"
 			echo -en "Removing barren map saves barren*.sav file(s)..."
 			echo -en "Removing barren map saves barren*.sav file(s)..."
-			sleep 1
+			sleep 0.5
 			fn_script_log "${currentaction}"
 			fn_script_log "${currentaction}"
 			find "${serveridentitydir:?}" -type f -name "barren*.sav" -delete
 			find "${serveridentitydir:?}" -type f -name "barren*.sav" -delete
 			fn_wipe_exit_code
 			fn_wipe_exit_code
@@ -76,7 +76,7 @@ fn_wipe_server_remove_files(){
 		if [ -n "$(find "${serveridentitydir}" -type f -name "proceduralmap.*.map")" ]; then
 		if [ -n "$(find "${serveridentitydir}" -type f -name "proceduralmap.*.map")" ]; then
 			currentaction="Removing map file(s): ${serveridentitydir}/proceduralmap.*.map"
 			currentaction="Removing map file(s): ${serveridentitydir}/proceduralmap.*.map"
 			echo -en "Removing procedural map proceduralmap.*.map file(s)..."
 			echo -en "Removing procedural map proceduralmap.*.map file(s)..."
-			sleep 1
+			sleep 0.5
 			fn_script_log "${currentaction}"
 			fn_script_log "${currentaction}"
 			find "${serveridentitydir:?}" -type f -name "proceduralmap.*.map" -delete
 			find "${serveridentitydir:?}" -type f -name "proceduralmap.*.map" -delete
 			fn_wipe_exit_code
 			fn_wipe_exit_code
@@ -90,7 +90,7 @@ fn_wipe_server_remove_files(){
 				if [ -n "$(find "${serveridentitydir}" -type f -name "barren*.map")" ]; then
 				if [ -n "$(find "${serveridentitydir}" -type f -name "barren*.map")" ]; then
 			currentaction="Removing map file(s): ${serveridentitydir}/barren*.map"
 			currentaction="Removing map file(s): ${serveridentitydir}/barren*.map"
 			echo -en "Removing barren map barren*.map file(s)..."
 			echo -en "Removing barren map barren*.map file(s)..."
-			sleep 1
+			sleep 0.5
 			fn_script_log "${currentaction}"
 			fn_script_log "${currentaction}"
 			find "${serveridentitydir:?}" -type f -name "barren*.map" -delete
 			find "${serveridentitydir:?}" -type f -name "barren*.map" -delete
 			fn_wipe_exit_code
 			fn_wipe_exit_code
@@ -103,7 +103,7 @@ fn_wipe_server_remove_files(){
 		if [ -d "${serveridentitydir}/user" ]; then
 		if [ -d "${serveridentitydir}/user" ]; then
 			currentaction="Removing user directory: ${serveridentitydir}/user"
 			currentaction="Removing user directory: ${serveridentitydir}/user"
 			echo -en "Removing user directory..."
 			echo -en "Removing user directory..."
-			sleep 1
+			sleep 0.5
 			fn_script_log "${currentaction}"
 			fn_script_log "${currentaction}"
 			rm -rf "${serveridentitydir:?}/user"
 			rm -rf "${serveridentitydir:?}/user"
 			fn_wipe_exit_code
 			fn_wipe_exit_code
@@ -116,7 +116,7 @@ fn_wipe_server_remove_files(){
 		if [ -d "${serveridentitydir}/storage" ]; then
 		if [ -d "${serveridentitydir}/storage" ]; then
 			currentaction="Removing storage directory: ${serveridentitydir}/storage"
 			currentaction="Removing storage directory: ${serveridentitydir}/storage"
 			echo -en "Removing storage directory..."
 			echo -en "Removing storage directory..."
-			sleep 1
+			sleep 0.5
 			fn_script_log "${currentaction}"
 			fn_script_log "${currentaction}"
 			rm -rf "${serveridentitydir:?}/storage"
 			rm -rf "${serveridentitydir:?}/storage"
 			fn_wipe_exit_code
 			fn_wipe_exit_code
@@ -129,7 +129,7 @@ fn_wipe_server_remove_files(){
 		if [ -n "$(find "${serveridentitydir}" -type f -name "Log.*.txt")" ]; then
 		if [ -n "$(find "${serveridentitydir}" -type f -name "Log.*.txt")" ]; then
 			currentaction="Removing log files: ${serveridentitydir}/Log.*.txt"
 			currentaction="Removing log files: ${serveridentitydir}/Log.*.txt"
 			echo -en "Removing Log files..."
 			echo -en "Removing Log files..."
-			sleep 1
+			sleep 0.5
 			fn_script_log "${currentaction}"
 			fn_script_log "${currentaction}"
 			find "${serveridentitydir:?}" -type f -name "Log.*.txt" -delete
 			find "${serveridentitydir:?}" -type f -name "Log.*.txt" -delete
 			fn_wipe_exit_code
 			fn_wipe_exit_code
@@ -152,12 +152,12 @@ if [ "${gamename}" == "Rust" ]; then
 				echo Exiting; core_exit.sh
 				echo Exiting; core_exit.sh
 		fi
 		fi
 		fn_script_log_info "User selects to erase any user, storage, log and map data from ${serveridentitydir}"
 		fn_script_log_info "User selects to erase any user, storage, log and map data from ${serveridentitydir}"
-		sleep 1
+		sleep 0.5
 		fn_wipe_server_process
 		fn_wipe_server_process
 	else
 	else
 		fn_print_information_nl "No data to wipe was found"
 		fn_print_information_nl "No data to wipe was found"
 		fn_script_log_info "No data to wipe was found."
 		fn_script_log_info "No data to wipe was found."
-		sleep 1
+		sleep 0.5
 		core_exit.sh
 		core_exit.sh
 	fi
 	fi
 # You can add an "elif" here to add another game or engine
 # You can add an "elif" here to add another game or engine
@@ -165,7 +165,7 @@ else
 	# Game not listed
 	# Game not listed
 	fn_print_information_nl "Wipe is not available for this game"
 	fn_print_information_nl "Wipe is not available for this game"
 	fn_script_log_info "Wipe is not available for this game."
 	fn_script_log_info "Wipe is not available for this game."
-	sleep 1
+	sleep 0.5
 	core_exit.sh
 	core_exit.sh
 fi
 fi
 
 

Niektóre pliki nie zostały wyświetlone z powodu dużej ilości zmienionych plików