From 596cc17b1cc856795dafa44df975424d1f582350 Mon Sep 17 00:00:00 2001 From: Jared Ballou Date: Tue, 26 Jan 2016 23:35:11 -0500 Subject: [PATCH] Added new fn_add_game_dependency function to add dependencies to gamedata. Moved all old scripts to old-games-no-longer-used directory. Moved all cfg files to cfg/GAME directories. Preparing to migrate cfg files to templates --- _MasterScript/lgsm-core | 43 +- .../ARKSurvivalEvolved}/lgsm-default.ini | 0 .../Arma3}/lgsm-default.network.cfg | 0 .../cfg => cfg/Arma3}/lgsm-default.server.cfg | 0 .../cfg => cfg/BlackMesa}/lgsm-default.cfg | 0 .../BladeSymphony}/lgsm-default.cfg | 0 .../cfg => cfg/BrainBread2}/lgsm-default.cfg | 0 .../CounterStrike}/lgsm-default.cfg | 0 .../lgsm-default.cfg | 0 .../lgsm-default.cfg | 0 .../CounterStrikeSource}/lgsm-default.cfg | 0 .../cfg => cfg/DayOfDefeat}/lgsm-default.cfg | 0 .../DayOfDefeatSource}/lgsm-default.cfg | 0 .../DeathmatchClassic}/lgsm-default.cfg | 0 .../DoubleActionBoogaloo}/lgsm-default.cfg | 0 .../FistfulOfFrags}/lgsm-default.cfg | 0 .../cfg => cfg/GarrysMod}/lgsm-default.cfg | 0 .../GoldenEyeSource}/lgsm-default.cfg | 0 .../HalfLife2Deathmatch}/lgsm-default.cfg | 0 .../HalfLifeDeathmatch}/lgsm-default.cfg | 0 .../lgsm-default.cfg | 0 .../cfg => cfg/Insurgency}/lgsm-default.cfg | 0 {JustCause2/cfg => cfg/JustCause2}/config.lua | 0 .../cfg => cfg/Left4Dead}/lgsm-default.cfg | 0 .../cfg => cfg/Left4Dead2}/lgsm-default.cfg | 0 .../NoMoreRoomInHell}/lgsm-default.cfg | 0 .../OpposingForce}/lgsm-default.cfg | 0 .../lgsm-default.cfg | 0 .../cfg => cfg/ProjectZomboid}/servertest.ini | 0 .../cfg => cfg/Ricochet}/lgsm-default.cfg | 0 .../SeriousSam3BFE}/lgsm-default.ini | 0 .../cfg => cfg/StarBound}/sbboot.config | 0 .../TeamFortress2}/lgsm-default.cfg | 0 .../TeamFortressClassic}/lgsm-default.cfg | 0 .../cfg => cfg/TeamSpeak3}/lgsm-default.ini | 0 {Teeworlds/cfg => cfg/Teeworlds}/ctf.cfg | 0 {Teeworlds/cfg => cfg/Teeworlds}/dm.cfg | 0 {Teeworlds/cfg => cfg/Teeworlds}/duel.cfg | 0 .../cfg => cfg/Teeworlds}/lgsm-default.cfg | 0 {Teeworlds/cfg => cfg/Teeworlds}/tdm.cfg | 0 .../cfg => cfg/Terraria}/lgsm-default.txt | 0 ...libc.so.6.7d751c7d8c061730fc5cb7317322d370 | Bin ...libc.so.6.c856f3fcac0a944a36e723b06bdbeb7e | Bin ...libm.so.6.b6fef88fd045bfcd05fd4036f323855c | Bin ...libm.so.6.ee439d489dcbfeb12b809d9b961ffc60 | Bin ...read.so.0.50a2a33d3cdd82f15c3de6539db7bf60 | Bin ...ibrt.so.1.eabf0fc1f81292270343bd0796fc64ca | Bin ...dc++.so.6.4f9c911de2276f988afaf47659a8367f | Bin functions/fix_glibc.sh | 62 +- functions/game_settings.sh | 2 +- functions/github_hash.sh | 4 +- functions/install_dependency.sh | 24 + functions/install_gsquery.sh | 12 +- functions/install_sourcemod.sh | 0 functions/jq-linux64 | Bin functions/monitor_gsquery.sh | 4 + gamedata/_avalanche | 3 + gamedata/_default | 1 + gamedata/_halflife_shared | 4 + gamedata/_realvirtuality | 4 + gamedata/_seriousengine35 | 5 + gamedata/_spark | 20 + gamedata/arma3server | 2 + gamedata/bsserver | 3 + gamedata/dabserver | 4 + gamedata/dstserver | 8 + gamedata/fofserver | 3 + gamedata/gmodserver | 6 + gamedata/insserver | 6 + gamedata/l4dserver | 3 + gamedata/nmrihserver | 7 + gamedata/ns2cserver | 12 - gamedata/ns2server | 22 +- .../7DaysToDie}/sdtdserver | 0 .../ARKSurvivalEvolved}/arkserver | 0 .../ARKSurvivalEvolved/cfg/lgsm-default.ini | 135 + .../Arma3}/arma3server | 0 .../Arma3/cfg/lgsm-default.network.cfg | 77 + .../Arma3/cfg/lgsm-default.server.cfg | 133 + .../BlackMesa}/bmdmserver | 0 .../BlackMesa/cfg/lgsm-default.cfg | 24 + .../BladeSymphony}/bsserver | 0 .../BladeSymphony/cfg/lgsm-default.cfg | 15 + .../BrainBread2}/bb2server | 0 .../BrainBread2/cfg/lgsm-default.cfg | 201 ++ .../CounterStrike/cfg/lgsm-default.cfg | 38 + .../CounterStrike}/csserver | 0 .../cfg/lgsm-default.cfg | 38 + .../CounterStrikeConditionZero}/csczserver | 0 .../cfg/lgsm-default.cfg | 23 + .../CounterStrikeGlobalOffensive}/csgoserver | 0 .../CounterStrikeSource/cfg/lgsm-default.cfg | 15 + .../CounterStrikeSource}/cssserver | 0 .../DayOfDefeat/cfg/lgsm-default.cfg | 38 + .../DayOfDefeat}/dodserver | 0 .../DayOfDefeatSource/cfg/lgsm-default.cfg | 38 + .../DayOfDefeatSource}/dodsserver | 0 .../DeathmatchClassic/cfg/lgsm-default.cfg | 35 + .../DeathmatchClassic}/dmcserver | 0 .../dependencies/libc.so.6 | Bin .../dependencies/libpthread.so.0 | Bin .../dependencies/librt.so.1 | Bin .../DontStarveTogether}/dstserver | 0 .../DontStarveTogether}/lgsm-default.ini | 0 .../DoubleActionBoogaloo/cfg/lgsm-default.cfg | 15 + .../DoubleActionBoogaloo}/dabserver | 0 .../dependencies/libm.so.6 | Bin .../FistfulOfFrags/cfg/lgsm-default.cfg | 124 + .../FistfulOfFrags}/dependencies/libm.so.6 | Bin .../FistfulOfFrags}/fofserver | 0 .../GarrysMod}/addons.sh | 0 .../GarrysMod/cfg/lgsm-default.cfg | 86 + .../GarrysMod}/dependencies/libc.so.6 | Bin .../GarrysMod/dependencies/libm.so.6 | Bin 0 -> 173576 bytes .../GarrysMod}/dependencies/libpthread.so.0 | Bin .../GarrysMod}/dependencies/libstdc++.so.6 | Bin .../GarrysMod}/gmodserver | 0 .../GoldenEyeSource/cfg/lgsm-default.cfg | 150 + .../GoldenEyeSource}/gesserver | 0 .../HalfLife2Deathmatch/cfg/lgsm-default.cfg | 15 + .../HalfLife2Deathmatch}/hl2dmserver | 0 .../HalfLifeDeathmatch/cfg/lgsm-default.cfg | 35 + .../HalfLifeDeathmatch}/hldmserver | 0 .../cfg/lgsm-default.cfg | 15 + .../HalfLifeDeathmatchSource}/hldmsserver | 0 .../Hurtworld}/hwserver | 0 .../Insurgency}/insserver | 0 .../Insurgency/lgsm/cfg/gamedata/_default | 26 + .../Insurgency/lgsm/cfg/gamedata/_srcds | 52 + .../Insurgency/lgsm/cfg/gamedata/insserver | 17 + .../Insurgency/lgsm/cfg/lgsm-default.cfg | 302 ++ .../Insurgency/lgsm/cfg/servers/_common.cfg | 4 + .../Insurgency/lgsm/cfg/servers/_default.cfg | 42 + .../Insurgency/lgsm/cfg/servers/insserver.cfg | 4 + .../Insurgency/lgsm/cfg/servers/waaaa.cfg | 4 + .../Insurgency/lgsm/dependencies/libc.so.6 | Bin 0 -> 1730024 bytes .../Insurgency/lgsm}/dependencies/libm.so.6 | Bin .../lgsm/dependencies/libpthread.so.0 | Bin 0 -> 124663 bytes .../Insurgency/lgsm/dependencies/librt.so.1 | Bin 0 -> 30684 bytes .../Insurgency/lgsm/functions/check.sh | 70 + .../Insurgency/lgsm/functions/check_root.sh | 16 + .../lgsm/functions/check_systemdir.sh | 13 + .../lgsm/functions/command_console.sh | 48 + .../lgsm/functions/command_monitor.sh | 115 + .../lgsm/functions/core_functions.sh | 397 +++ .../Insurgency/lgsm/functions/core_getopt.sh | 427 +++ .../lgsm/functions/core_messages.sh | 148 + .../lgsm/functions/game_settings.sh | 146 + .../Insurgency/lgsm/functions/github_hash.sh | 91 + .../Insurgency/lgsm/functions/jq-linux64 | Bin 0 -> 3027945 bytes .../Insurgency/lgsm/settings.tmp/parms_minus | 5 + .../Insurgency/lgsm/settings.tmp/parms_plus | 6 + .../Insurgency/lgsm/settings.tmp/settings | 38 + .../Insurgency/lgsm/tmp/.manifest | 0 .../Insurgency/lgsm/tmp/.manifest.json | 2584 +++++++++++++++++ ...eaa02e21684c07b56475de83f7e3f4fee.manifest | 335 +++ ...e21684c07b56475de83f7e3f4fee.manifest.json | 2584 +++++++++++++++++ .../Insurgency/lgsm/tmp/lastcommit | 1 + .../Insurgency/lgsm/tmp/lastcommit.json | 9 + .../Insurgency}/manifest.sh | 0 .../JustCause2/cfg/config.lua | 179 ++ .../JustCause2}/jc2server | 0 .../KillingFloor}/kfserver | 0 .../Left4Dead/cfg/lgsm-default.cfg | 15 + .../Left4Dead}/l4dserver | 0 .../Left4Dead2/cfg/lgsm-default.cfg | 15 + .../Left4Dead2}/l4d2server | 0 .../Mumble}/mumbleserver | 0 .../NS2Combat}/dependencies/libc.so.6 | Bin .../NS2Combat}/dependencies/libm.so.6 | Bin .../NS2Combat}/dependencies/libstdc++.so.6 | Bin .../NS2Combat}/ns2cserver | 0 .../NaturalSelection2/dependencies/libc.so.6 | Bin 0 -> 1734120 bytes .../NaturalSelection2}/dependencies/libm.so.6 | Bin .../dependencies/libstdc++.so.6 | Bin 0 -> 3769939 bytes .../NaturalSelection2}/ns2server | 0 .../NoMoreRoomInHell/cfg/lgsm-default.cfg | 121 + .../NoMoreRoomInHell/dependencies/libm.so.6 | Bin 0 -> 267816 bytes .../NoMoreRoomInHell}/nmrihserver | 0 .../OpposingForce/cfg/lgsm-default.cfg | 35 + .../OpposingForce}/opforserver | 0 .../cfg/lgsm-default.cfg | 119 + .../PiratesVikingsandKnightsII}/pvkiiserver | 0 .../ProjectZomboid/cfg/servertest.ini | 46 + .../ProjectZomboid}/pzserver | 0 .../RedOrchestra}/roserver | 0 .../Ricochet/cfg/lgsm-default.cfg | 35 + .../Ricochet}/ricochetserver | 0 .../SeriousSam3BFE/cfg/lgsm-default.ini | 49 + .../help/DedicatedServer_Readme.txt | 0 .../SeriousSam3BFE}/ss3sserver | 0 .../StarBound/cfg/sbboot.config | 141 + .../StarBound}/sbserver | 0 .../TeamFortress2/cfg/lgsm-default.cfg | 15 + .../TeamFortress2}/tf2server | 0 .../TeamFortressClassic/cfg/lgsm-default.cfg | 38 + .../TeamFortressClassic}/tfcserver | 0 .../TeamSpeak3/cfg/lgsm-default.ini | 20 + .../TeamSpeak3}/ts3server | 0 .../Teeworlds/cfg/ctf.cfg | 7 + old-games-no-longer-used/Teeworlds/cfg/dm.cfg | 7 + .../Teeworlds/cfg/duel.cfg | 7 + .../Teeworlds/cfg/lgsm-default.cfg | 26 + .../Teeworlds/cfg/tdm.cfg | 14 + .../Teeworlds}/twserver | 0 .../Terraria/cfg/lgsm-default.txt | 68 + .../Terraria}/terrariaserver | 0 .../UnrealTournament2004}/ut2k4server | 0 .../UnrealTournament99}/ut99server | 0 tools/update-game-list.sh | 2 + 210 files changed, 9874 insertions(+), 83 deletions(-) rename {ARKSurvivalEvolved/cfg => cfg/ARKSurvivalEvolved}/lgsm-default.ini (100%) rename {Arma3/cfg => cfg/Arma3}/lgsm-default.network.cfg (100%) rename {Arma3/cfg => cfg/Arma3}/lgsm-default.server.cfg (100%) rename {BlackMesa/cfg => cfg/BlackMesa}/lgsm-default.cfg (100%) rename {BladeSymphony/cfg => cfg/BladeSymphony}/lgsm-default.cfg (100%) rename {BrainBread2/cfg => cfg/BrainBread2}/lgsm-default.cfg (100%) rename {CounterStrike/cfg => cfg/CounterStrike}/lgsm-default.cfg (100%) rename {CounterStrikeConditionZero/cfg => cfg/CounterStrikeConditionZero}/lgsm-default.cfg (100%) rename {CounterStrikeGlobalOffensive/cfg => cfg/CounterStrikeGlobalOffensive}/lgsm-default.cfg (100%) rename {CounterStrikeSource/cfg => cfg/CounterStrikeSource}/lgsm-default.cfg (100%) rename {DayOfDefeat/cfg => cfg/DayOfDefeat}/lgsm-default.cfg (100%) rename {DayOfDefeatSource/cfg => cfg/DayOfDefeatSource}/lgsm-default.cfg (100%) rename {DeathmatchClassic/cfg => cfg/DeathmatchClassic}/lgsm-default.cfg (100%) rename {DoubleActionBoogaloo/cfg => cfg/DoubleActionBoogaloo}/lgsm-default.cfg (100%) rename {FistfulOfFrags/cfg => cfg/FistfulOfFrags}/lgsm-default.cfg (100%) rename {GarrysMod/cfg => cfg/GarrysMod}/lgsm-default.cfg (100%) rename {GoldenEyeSource/cfg => cfg/GoldenEyeSource}/lgsm-default.cfg (100%) rename {HalfLife2Deathmatch/cfg => cfg/HalfLife2Deathmatch}/lgsm-default.cfg (100%) rename {HalfLifeDeathmatch/cfg => cfg/HalfLifeDeathmatch}/lgsm-default.cfg (100%) rename {HalfLifeDeathmatchSource/cfg => cfg/HalfLifeDeathmatchSource}/lgsm-default.cfg (100%) rename {Insurgency/lgsm/cfg => cfg/Insurgency}/lgsm-default.cfg (100%) rename {JustCause2/cfg => cfg/JustCause2}/config.lua (100%) rename {Left4Dead/cfg => cfg/Left4Dead}/lgsm-default.cfg (100%) rename {Left4Dead2/cfg => cfg/Left4Dead2}/lgsm-default.cfg (100%) rename {NoMoreRoomInHell/cfg => cfg/NoMoreRoomInHell}/lgsm-default.cfg (100%) rename {OpposingForce/cfg => cfg/OpposingForce}/lgsm-default.cfg (100%) rename {PiratesVikingsandKnightsII/cfg => cfg/PiratesVikingsandKnightsII}/lgsm-default.cfg (100%) rename {ProjectZomboid/cfg => cfg/ProjectZomboid}/servertest.ini (100%) rename {Ricochet/cfg => cfg/Ricochet}/lgsm-default.cfg (100%) rename {SeriousSam3BFE/cfg => cfg/SeriousSam3BFE}/lgsm-default.ini (100%) rename {StarBound/cfg => cfg/StarBound}/sbboot.config (100%) rename {TeamFortress2/cfg => cfg/TeamFortress2}/lgsm-default.cfg (100%) rename {TeamFortressClassic/cfg => cfg/TeamFortressClassic}/lgsm-default.cfg (100%) rename {TeamSpeak3/cfg => cfg/TeamSpeak3}/lgsm-default.ini (100%) rename {Teeworlds/cfg => cfg/Teeworlds}/ctf.cfg (100%) rename {Teeworlds/cfg => cfg/Teeworlds}/dm.cfg (100%) rename {Teeworlds/cfg => cfg/Teeworlds}/duel.cfg (100%) rename {Teeworlds/cfg => cfg/Teeworlds}/lgsm-default.cfg (100%) rename {Teeworlds/cfg => cfg/Teeworlds}/tdm.cfg (100%) rename {Terraria/cfg => cfg/Terraria}/lgsm-default.txt (100%) rename GarrysMod/dependencies/libc.so.6 => dependencies/libc.so.6.7d751c7d8c061730fc5cb7317322d370 (100%) rename DontStarveTogether/dependencies/libc.so.6 => dependencies/libc.so.6.c856f3fcac0a944a36e723b06bdbeb7e (100%) rename DoubleActionBoogaloo/dependencies/libm.so.6 => dependencies/libm.so.6.b6fef88fd045bfcd05fd4036f323855c (100%) rename GarrysMod/dependencies/libm.so.6 => dependencies/libm.so.6.ee439d489dcbfeb12b809d9b961ffc60 (100%) rename DontStarveTogether/dependencies/libpthread.so.0 => dependencies/libpthread.so.0.50a2a33d3cdd82f15c3de6539db7bf60 (100%) rename DontStarveTogether/dependencies/librt.so.1 => dependencies/librt.so.1.eabf0fc1f81292270343bd0796fc64ca (100%) rename GarrysMod/dependencies/libstdc++.so.6 => dependencies/libstdc++.so.6.4f9c911de2276f988afaf47659a8367f (100%) mode change 100755 => 100644 functions/github_hash.sh create mode 100644 functions/install_dependency.sh mode change 100755 => 100644 functions/install_sourcemod.sh mode change 100755 => 100644 functions/jq-linux64 rename {7DaysToDie => old-games-no-longer-used/7DaysToDie}/sdtdserver (100%) rename {ARKSurvivalEvolved => old-games-no-longer-used/ARKSurvivalEvolved}/arkserver (100%) create mode 100644 old-games-no-longer-used/ARKSurvivalEvolved/cfg/lgsm-default.ini rename {Arma3 => old-games-no-longer-used/Arma3}/arma3server (100%) create mode 100644 old-games-no-longer-used/Arma3/cfg/lgsm-default.network.cfg create mode 100644 old-games-no-longer-used/Arma3/cfg/lgsm-default.server.cfg rename {BlackMesa => old-games-no-longer-used/BlackMesa}/bmdmserver (100%) create mode 100644 old-games-no-longer-used/BlackMesa/cfg/lgsm-default.cfg rename {BladeSymphony => old-games-no-longer-used/BladeSymphony}/bsserver (100%) create mode 100644 old-games-no-longer-used/BladeSymphony/cfg/lgsm-default.cfg rename {BrainBread2 => old-games-no-longer-used/BrainBread2}/bb2server (100%) create mode 100644 old-games-no-longer-used/BrainBread2/cfg/lgsm-default.cfg create mode 100644 old-games-no-longer-used/CounterStrike/cfg/lgsm-default.cfg rename {CounterStrike => old-games-no-longer-used/CounterStrike}/csserver (100%) create mode 100644 old-games-no-longer-used/CounterStrikeConditionZero/cfg/lgsm-default.cfg rename {CounterStrikeConditionZero => old-games-no-longer-used/CounterStrikeConditionZero}/csczserver (100%) create mode 100644 old-games-no-longer-used/CounterStrikeGlobalOffensive/cfg/lgsm-default.cfg rename {CounterStrikeGlobalOffensive => old-games-no-longer-used/CounterStrikeGlobalOffensive}/csgoserver (100%) create mode 100644 old-games-no-longer-used/CounterStrikeSource/cfg/lgsm-default.cfg rename {CounterStrikeSource => old-games-no-longer-used/CounterStrikeSource}/cssserver (100%) create mode 100644 old-games-no-longer-used/DayOfDefeat/cfg/lgsm-default.cfg rename {DayOfDefeat => old-games-no-longer-used/DayOfDefeat}/dodserver (100%) create mode 100644 old-games-no-longer-used/DayOfDefeatSource/cfg/lgsm-default.cfg rename {DayOfDefeatSource => old-games-no-longer-used/DayOfDefeatSource}/dodsserver (100%) create mode 100644 old-games-no-longer-used/DeathmatchClassic/cfg/lgsm-default.cfg rename {DeathmatchClassic => old-games-no-longer-used/DeathmatchClassic}/dmcserver (100%) rename {Insurgency/lgsm => old-games-no-longer-used/DontStarveTogether}/dependencies/libc.so.6 (100%) rename {GarrysMod => old-games-no-longer-used/DontStarveTogether}/dependencies/libpthread.so.0 (100%) rename {Insurgency/lgsm => old-games-no-longer-used/DontStarveTogether}/dependencies/librt.so.1 (100%) rename {DontStarveTogether => old-games-no-longer-used/DontStarveTogether}/dstserver (100%) rename {DontStarveTogether => old-games-no-longer-used/DontStarveTogether}/lgsm-default.ini (100%) create mode 100644 old-games-no-longer-used/DoubleActionBoogaloo/cfg/lgsm-default.cfg rename {DoubleActionBoogaloo => old-games-no-longer-used/DoubleActionBoogaloo}/dabserver (100%) rename {FistfulOfFrags => old-games-no-longer-used/DoubleActionBoogaloo}/dependencies/libm.so.6 (100%) create mode 100644 old-games-no-longer-used/FistfulOfFrags/cfg/lgsm-default.cfg rename {Insurgency/lgsm => old-games-no-longer-used/FistfulOfFrags}/dependencies/libm.so.6 (100%) rename {FistfulOfFrags => old-games-no-longer-used/FistfulOfFrags}/fofserver (100%) rename {GarrysMod => old-games-no-longer-used/GarrysMod}/addons.sh (100%) create mode 100644 old-games-no-longer-used/GarrysMod/cfg/lgsm-default.cfg rename {NS2Combat => old-games-no-longer-used/GarrysMod}/dependencies/libc.so.6 (100%) create mode 100644 old-games-no-longer-used/GarrysMod/dependencies/libm.so.6 rename {Insurgency/lgsm => old-games-no-longer-used/GarrysMod}/dependencies/libpthread.so.0 (100%) rename {NS2Combat => old-games-no-longer-used/GarrysMod}/dependencies/libstdc++.so.6 (100%) rename {GarrysMod => old-games-no-longer-used/GarrysMod}/gmodserver (100%) create mode 100644 old-games-no-longer-used/GoldenEyeSource/cfg/lgsm-default.cfg rename {GoldenEyeSource => old-games-no-longer-used/GoldenEyeSource}/gesserver (100%) create mode 100644 old-games-no-longer-used/HalfLife2Deathmatch/cfg/lgsm-default.cfg rename {HalfLife2Deathmatch => old-games-no-longer-used/HalfLife2Deathmatch}/hl2dmserver (100%) create mode 100644 old-games-no-longer-used/HalfLifeDeathmatch/cfg/lgsm-default.cfg rename {HalfLifeDeathmatch => old-games-no-longer-used/HalfLifeDeathmatch}/hldmserver (100%) create mode 100644 old-games-no-longer-used/HalfLifeDeathmatchSource/cfg/lgsm-default.cfg rename {HalfLifeDeathmatchSource => old-games-no-longer-used/HalfLifeDeathmatchSource}/hldmsserver (100%) rename {Hurtworld => old-games-no-longer-used/Hurtworld}/hwserver (100%) rename {Insurgency => old-games-no-longer-used/Insurgency}/insserver (100%) create mode 100755 old-games-no-longer-used/Insurgency/lgsm/cfg/gamedata/_default create mode 100755 old-games-no-longer-used/Insurgency/lgsm/cfg/gamedata/_srcds create mode 100755 old-games-no-longer-used/Insurgency/lgsm/cfg/gamedata/insserver create mode 100644 old-games-no-longer-used/Insurgency/lgsm/cfg/lgsm-default.cfg create mode 100644 old-games-no-longer-used/Insurgency/lgsm/cfg/servers/_common.cfg create mode 100644 old-games-no-longer-used/Insurgency/lgsm/cfg/servers/_default.cfg create mode 100644 old-games-no-longer-used/Insurgency/lgsm/cfg/servers/insserver.cfg create mode 100644 old-games-no-longer-used/Insurgency/lgsm/cfg/servers/waaaa.cfg create mode 100644 old-games-no-longer-used/Insurgency/lgsm/dependencies/libc.so.6 rename {NS2Combat => old-games-no-longer-used/Insurgency/lgsm}/dependencies/libm.so.6 (100%) create mode 100644 old-games-no-longer-used/Insurgency/lgsm/dependencies/libpthread.so.0 create mode 100644 old-games-no-longer-used/Insurgency/lgsm/dependencies/librt.so.1 create mode 100755 old-games-no-longer-used/Insurgency/lgsm/functions/check.sh create mode 100755 old-games-no-longer-used/Insurgency/lgsm/functions/check_root.sh create mode 100755 old-games-no-longer-used/Insurgency/lgsm/functions/check_systemdir.sh create mode 100755 old-games-no-longer-used/Insurgency/lgsm/functions/command_console.sh create mode 100755 old-games-no-longer-used/Insurgency/lgsm/functions/command_monitor.sh create mode 100755 old-games-no-longer-used/Insurgency/lgsm/functions/core_functions.sh create mode 100755 old-games-no-longer-used/Insurgency/lgsm/functions/core_getopt.sh create mode 100755 old-games-no-longer-used/Insurgency/lgsm/functions/core_messages.sh create mode 100755 old-games-no-longer-used/Insurgency/lgsm/functions/game_settings.sh create mode 100755 old-games-no-longer-used/Insurgency/lgsm/functions/github_hash.sh create mode 100755 old-games-no-longer-used/Insurgency/lgsm/functions/jq-linux64 create mode 100644 old-games-no-longer-used/Insurgency/lgsm/settings.tmp/parms_minus create mode 100644 old-games-no-longer-used/Insurgency/lgsm/settings.tmp/parms_plus create mode 100644 old-games-no-longer-used/Insurgency/lgsm/settings.tmp/settings create mode 100644 old-games-no-longer-used/Insurgency/lgsm/tmp/.manifest create mode 100644 old-games-no-longer-used/Insurgency/lgsm/tmp/.manifest.json create mode 100644 old-games-no-longer-used/Insurgency/lgsm/tmp/d6dc2f7eaa02e21684c07b56475de83f7e3f4fee.manifest create mode 100644 old-games-no-longer-used/Insurgency/lgsm/tmp/d6dc2f7eaa02e21684c07b56475de83f7e3f4fee.manifest.json create mode 100644 old-games-no-longer-used/Insurgency/lgsm/tmp/lastcommit create mode 100644 old-games-no-longer-used/Insurgency/lgsm/tmp/lastcommit.json rename {Insurgency => old-games-no-longer-used/Insurgency}/manifest.sh (100%) create mode 100644 old-games-no-longer-used/JustCause2/cfg/config.lua rename {JustCause2 => old-games-no-longer-used/JustCause2}/jc2server (100%) rename {KillingFloor => old-games-no-longer-used/KillingFloor}/kfserver (100%) create mode 100644 old-games-no-longer-used/Left4Dead/cfg/lgsm-default.cfg rename {Left4Dead => old-games-no-longer-used/Left4Dead}/l4dserver (100%) create mode 100644 old-games-no-longer-used/Left4Dead2/cfg/lgsm-default.cfg rename {Left4Dead2 => old-games-no-longer-used/Left4Dead2}/l4d2server (100%) rename {Mumble => old-games-no-longer-used/Mumble}/mumbleserver (100%) rename {NaturalSelection2 => old-games-no-longer-used/NS2Combat}/dependencies/libc.so.6 (100%) rename {NaturalSelection2 => old-games-no-longer-used/NS2Combat}/dependencies/libm.so.6 (100%) rename {NaturalSelection2 => old-games-no-longer-used/NS2Combat}/dependencies/libstdc++.so.6 (100%) rename {NS2Combat => old-games-no-longer-used/NS2Combat}/ns2cserver (100%) create mode 100644 old-games-no-longer-used/NaturalSelection2/dependencies/libc.so.6 rename {NoMoreRoomInHell => old-games-no-longer-used/NaturalSelection2}/dependencies/libm.so.6 (100%) create mode 100644 old-games-no-longer-used/NaturalSelection2/dependencies/libstdc++.so.6 rename {NaturalSelection2 => old-games-no-longer-used/NaturalSelection2}/ns2server (100%) create mode 100644 old-games-no-longer-used/NoMoreRoomInHell/cfg/lgsm-default.cfg create mode 100644 old-games-no-longer-used/NoMoreRoomInHell/dependencies/libm.so.6 rename {NoMoreRoomInHell => old-games-no-longer-used/NoMoreRoomInHell}/nmrihserver (100%) create mode 100644 old-games-no-longer-used/OpposingForce/cfg/lgsm-default.cfg rename {OpposingForce => old-games-no-longer-used/OpposingForce}/opforserver (100%) create mode 100644 old-games-no-longer-used/PiratesVikingsandKnightsII/cfg/lgsm-default.cfg rename {PiratesVikingsandKnightsII => old-games-no-longer-used/PiratesVikingsandKnightsII}/pvkiiserver (100%) create mode 100644 old-games-no-longer-used/ProjectZomboid/cfg/servertest.ini rename {ProjectZomboid => old-games-no-longer-used/ProjectZomboid}/pzserver (100%) rename {RedOrchestra => old-games-no-longer-used/RedOrchestra}/roserver (100%) create mode 100644 old-games-no-longer-used/Ricochet/cfg/lgsm-default.cfg rename {Ricochet => old-games-no-longer-used/Ricochet}/ricochetserver (100%) create mode 100644 old-games-no-longer-used/SeriousSam3BFE/cfg/lgsm-default.ini rename {SeriousSam3BFE => old-games-no-longer-used/SeriousSam3BFE}/help/DedicatedServer_Readme.txt (100%) rename {SeriousSam3BFE => old-games-no-longer-used/SeriousSam3BFE}/ss3sserver (100%) create mode 100644 old-games-no-longer-used/StarBound/cfg/sbboot.config rename {StarBound => old-games-no-longer-used/StarBound}/sbserver (100%) create mode 100644 old-games-no-longer-used/TeamFortress2/cfg/lgsm-default.cfg rename {TeamFortress2 => old-games-no-longer-used/TeamFortress2}/tf2server (100%) create mode 100644 old-games-no-longer-used/TeamFortressClassic/cfg/lgsm-default.cfg rename {TeamFortressClassic => old-games-no-longer-used/TeamFortressClassic}/tfcserver (100%) create mode 100644 old-games-no-longer-used/TeamSpeak3/cfg/lgsm-default.ini rename {TeamSpeak3 => old-games-no-longer-used/TeamSpeak3}/ts3server (100%) create mode 100644 old-games-no-longer-used/Teeworlds/cfg/ctf.cfg create mode 100644 old-games-no-longer-used/Teeworlds/cfg/dm.cfg create mode 100644 old-games-no-longer-used/Teeworlds/cfg/duel.cfg create mode 100644 old-games-no-longer-used/Teeworlds/cfg/lgsm-default.cfg create mode 100644 old-games-no-longer-used/Teeworlds/cfg/tdm.cfg rename {Teeworlds => old-games-no-longer-used/Teeworlds}/twserver (100%) create mode 100644 old-games-no-longer-used/Terraria/cfg/lgsm-default.txt rename {Terraria => old-games-no-longer-used/Terraria}/terrariaserver (100%) rename {UnrealTournament2004 => old-games-no-longer-used/UnrealTournament2004}/ut2k4server (100%) rename {UnrealTournament99 => old-games-no-longer-used/UnrealTournament99}/ut99server (100%) create mode 100755 tools/update-game-list.sh diff --git a/_MasterScript/lgsm-core b/_MasterScript/lgsm-core index 4b8059683..783905e1d 100755 --- a/_MasterScript/lgsm-core +++ b/_MasterScript/lgsm-core @@ -119,48 +119,61 @@ fi # filename: The path of the file in reference to the repository root # exec: Optional, set to 1 to make file executable # url: Optional, set to full path under repository root if different than filename -fn_getgithubfile(){ - filename=$1 - exec=$2 - fileurl=${3:-$filename} - force=$4 - filepath="${lgsmdir}/${filename}" - filedir=$(dirname "${filepath}") - +fn_get_file(){ + fileurl="${1}" + filepath="${2}" + exec=${3:-0} + force=${4:-0} # If the function file is missing, then download - if [ ! -f "${filepath}" ] || [ "${force}" != "" ]; then + if [ ! -f "${filepath}" ] || [ "${force}" == "1" ] || [ "${force}" == "yes" ]; then + filedir=$(dirname "${filepath}") if [ ! -d "${filedir}" ]; then mkdir -p "${filedir}" fi - githuburl="https://raw.githubusercontent.com/${githubuser}/${githubrepo}/${githubbranch}/${fileurl}" - echo -ne " fetching ${filename} (${githuburl})... " + echo -ne " fetching ${filename} (${fileurl})... " if [ "$(basename ${fetchcmd})" == "curl" ]; then cmd="$fetchcmd -s --fail -o" elif [ "$(basename ${fetchcmd})" == "wget" ]; then cmd="$fetchcmd -O" fi - fetch=$($cmd "${filepath}" "${githuburl}" 2>&1) - if [ "${exec}" != "" ]; then + fetch=$($cmd "${filepath}" "${fileurl}" 2>&1) + if [ "${exec}" == "run" ] || [ "${exec}" == "exec" ] || [ "${exec}" == "1" ] || [ "${exec}" != "noexec" ] || [ "${exec}" != "norun" ]; then chmod +x "${filepath}" fi fn_colortext 32 "DONE" fi - if [ "${exec}" == "1" ]; then + if [ "${exec}" == "run" ] || [ "${exec}" == "exec" ] || [ "${exec}" == "1" ]; then source "${filepath}" fi } +fn_getgithubfile(){ + filename=$1 + exec=${2:-0} + fileurl=${3:-$filename} + force=${4:-0} + if [[ $filename = /* ]]; then + filepath="${filename}" + else + filepath="${lgsmdir}/${filename}" + fi + githuburl="https://raw.githubusercontent.com/${githubuser}/${githubrepo}/${githubbranch}/${fileurl}" + fn_get_file "${githuburl}" "${filepath}" "${exec}" "${force}" +} # fn_runfunction fn_runfunction(){ scriptfile=${1:-$functionfile} functionfile=$scriptfile - fn_getgithubfile "functions/${functionfile}" 1 + fn_getgithubfile "functions/${functionfile}" run fn_check_github_files "${lgsmdir}" "${lgsmdir}/functions/${functionfile}" } # Load GitHub hashing and updating functions fn_runfunction github_hash.sh +# Install gsquery.py +fn_getgithubfile "gsquery.py" norun "GameServerQuery/gsquery.py" + # Load core functions fn_runfunction core_functions.sh diff --git a/ARKSurvivalEvolved/cfg/lgsm-default.ini b/cfg/ARKSurvivalEvolved/lgsm-default.ini similarity index 100% rename from ARKSurvivalEvolved/cfg/lgsm-default.ini rename to cfg/ARKSurvivalEvolved/lgsm-default.ini diff --git a/Arma3/cfg/lgsm-default.network.cfg b/cfg/Arma3/lgsm-default.network.cfg similarity index 100% rename from Arma3/cfg/lgsm-default.network.cfg rename to cfg/Arma3/lgsm-default.network.cfg diff --git a/Arma3/cfg/lgsm-default.server.cfg b/cfg/Arma3/lgsm-default.server.cfg similarity index 100% rename from Arma3/cfg/lgsm-default.server.cfg rename to cfg/Arma3/lgsm-default.server.cfg diff --git a/BlackMesa/cfg/lgsm-default.cfg b/cfg/BlackMesa/lgsm-default.cfg similarity index 100% rename from BlackMesa/cfg/lgsm-default.cfg rename to cfg/BlackMesa/lgsm-default.cfg diff --git a/BladeSymphony/cfg/lgsm-default.cfg b/cfg/BladeSymphony/lgsm-default.cfg similarity index 100% rename from BladeSymphony/cfg/lgsm-default.cfg rename to cfg/BladeSymphony/lgsm-default.cfg diff --git a/BrainBread2/cfg/lgsm-default.cfg b/cfg/BrainBread2/lgsm-default.cfg similarity index 100% rename from BrainBread2/cfg/lgsm-default.cfg rename to cfg/BrainBread2/lgsm-default.cfg diff --git a/CounterStrike/cfg/lgsm-default.cfg b/cfg/CounterStrike/lgsm-default.cfg similarity index 100% rename from CounterStrike/cfg/lgsm-default.cfg rename to cfg/CounterStrike/lgsm-default.cfg diff --git a/CounterStrikeConditionZero/cfg/lgsm-default.cfg b/cfg/CounterStrikeConditionZero/lgsm-default.cfg similarity index 100% rename from CounterStrikeConditionZero/cfg/lgsm-default.cfg rename to cfg/CounterStrikeConditionZero/lgsm-default.cfg diff --git a/CounterStrikeGlobalOffensive/cfg/lgsm-default.cfg b/cfg/CounterStrikeGlobalOffensive/lgsm-default.cfg similarity index 100% rename from CounterStrikeGlobalOffensive/cfg/lgsm-default.cfg rename to cfg/CounterStrikeGlobalOffensive/lgsm-default.cfg diff --git a/CounterStrikeSource/cfg/lgsm-default.cfg b/cfg/CounterStrikeSource/lgsm-default.cfg similarity index 100% rename from CounterStrikeSource/cfg/lgsm-default.cfg rename to cfg/CounterStrikeSource/lgsm-default.cfg diff --git a/DayOfDefeat/cfg/lgsm-default.cfg b/cfg/DayOfDefeat/lgsm-default.cfg similarity index 100% rename from DayOfDefeat/cfg/lgsm-default.cfg rename to cfg/DayOfDefeat/lgsm-default.cfg diff --git a/DayOfDefeatSource/cfg/lgsm-default.cfg b/cfg/DayOfDefeatSource/lgsm-default.cfg similarity index 100% rename from DayOfDefeatSource/cfg/lgsm-default.cfg rename to cfg/DayOfDefeatSource/lgsm-default.cfg diff --git a/DeathmatchClassic/cfg/lgsm-default.cfg b/cfg/DeathmatchClassic/lgsm-default.cfg similarity index 100% rename from DeathmatchClassic/cfg/lgsm-default.cfg rename to cfg/DeathmatchClassic/lgsm-default.cfg diff --git a/DoubleActionBoogaloo/cfg/lgsm-default.cfg b/cfg/DoubleActionBoogaloo/lgsm-default.cfg similarity index 100% rename from DoubleActionBoogaloo/cfg/lgsm-default.cfg rename to cfg/DoubleActionBoogaloo/lgsm-default.cfg diff --git a/FistfulOfFrags/cfg/lgsm-default.cfg b/cfg/FistfulOfFrags/lgsm-default.cfg similarity index 100% rename from FistfulOfFrags/cfg/lgsm-default.cfg rename to cfg/FistfulOfFrags/lgsm-default.cfg diff --git a/GarrysMod/cfg/lgsm-default.cfg b/cfg/GarrysMod/lgsm-default.cfg similarity index 100% rename from GarrysMod/cfg/lgsm-default.cfg rename to cfg/GarrysMod/lgsm-default.cfg diff --git a/GoldenEyeSource/cfg/lgsm-default.cfg b/cfg/GoldenEyeSource/lgsm-default.cfg similarity index 100% rename from GoldenEyeSource/cfg/lgsm-default.cfg rename to cfg/GoldenEyeSource/lgsm-default.cfg diff --git a/HalfLife2Deathmatch/cfg/lgsm-default.cfg b/cfg/HalfLife2Deathmatch/lgsm-default.cfg similarity index 100% rename from HalfLife2Deathmatch/cfg/lgsm-default.cfg rename to cfg/HalfLife2Deathmatch/lgsm-default.cfg diff --git a/HalfLifeDeathmatch/cfg/lgsm-default.cfg b/cfg/HalfLifeDeathmatch/lgsm-default.cfg similarity index 100% rename from HalfLifeDeathmatch/cfg/lgsm-default.cfg rename to cfg/HalfLifeDeathmatch/lgsm-default.cfg diff --git a/HalfLifeDeathmatchSource/cfg/lgsm-default.cfg b/cfg/HalfLifeDeathmatchSource/lgsm-default.cfg similarity index 100% rename from HalfLifeDeathmatchSource/cfg/lgsm-default.cfg rename to cfg/HalfLifeDeathmatchSource/lgsm-default.cfg diff --git a/Insurgency/lgsm/cfg/lgsm-default.cfg b/cfg/Insurgency/lgsm-default.cfg similarity index 100% rename from Insurgency/lgsm/cfg/lgsm-default.cfg rename to cfg/Insurgency/lgsm-default.cfg diff --git a/JustCause2/cfg/config.lua b/cfg/JustCause2/config.lua similarity index 100% rename from JustCause2/cfg/config.lua rename to cfg/JustCause2/config.lua diff --git a/Left4Dead/cfg/lgsm-default.cfg b/cfg/Left4Dead/lgsm-default.cfg similarity index 100% rename from Left4Dead/cfg/lgsm-default.cfg rename to cfg/Left4Dead/lgsm-default.cfg diff --git a/Left4Dead2/cfg/lgsm-default.cfg b/cfg/Left4Dead2/lgsm-default.cfg similarity index 100% rename from Left4Dead2/cfg/lgsm-default.cfg rename to cfg/Left4Dead2/lgsm-default.cfg diff --git a/NoMoreRoomInHell/cfg/lgsm-default.cfg b/cfg/NoMoreRoomInHell/lgsm-default.cfg similarity index 100% rename from NoMoreRoomInHell/cfg/lgsm-default.cfg rename to cfg/NoMoreRoomInHell/lgsm-default.cfg diff --git a/OpposingForce/cfg/lgsm-default.cfg b/cfg/OpposingForce/lgsm-default.cfg similarity index 100% rename from OpposingForce/cfg/lgsm-default.cfg rename to cfg/OpposingForce/lgsm-default.cfg diff --git a/PiratesVikingsandKnightsII/cfg/lgsm-default.cfg b/cfg/PiratesVikingsandKnightsII/lgsm-default.cfg similarity index 100% rename from PiratesVikingsandKnightsII/cfg/lgsm-default.cfg rename to cfg/PiratesVikingsandKnightsII/lgsm-default.cfg diff --git a/ProjectZomboid/cfg/servertest.ini b/cfg/ProjectZomboid/servertest.ini similarity index 100% rename from ProjectZomboid/cfg/servertest.ini rename to cfg/ProjectZomboid/servertest.ini diff --git a/Ricochet/cfg/lgsm-default.cfg b/cfg/Ricochet/lgsm-default.cfg similarity index 100% rename from Ricochet/cfg/lgsm-default.cfg rename to cfg/Ricochet/lgsm-default.cfg diff --git a/SeriousSam3BFE/cfg/lgsm-default.ini b/cfg/SeriousSam3BFE/lgsm-default.ini similarity index 100% rename from SeriousSam3BFE/cfg/lgsm-default.ini rename to cfg/SeriousSam3BFE/lgsm-default.ini diff --git a/StarBound/cfg/sbboot.config b/cfg/StarBound/sbboot.config similarity index 100% rename from StarBound/cfg/sbboot.config rename to cfg/StarBound/sbboot.config diff --git a/TeamFortress2/cfg/lgsm-default.cfg b/cfg/TeamFortress2/lgsm-default.cfg similarity index 100% rename from TeamFortress2/cfg/lgsm-default.cfg rename to cfg/TeamFortress2/lgsm-default.cfg diff --git a/TeamFortressClassic/cfg/lgsm-default.cfg b/cfg/TeamFortressClassic/lgsm-default.cfg similarity index 100% rename from TeamFortressClassic/cfg/lgsm-default.cfg rename to cfg/TeamFortressClassic/lgsm-default.cfg diff --git a/TeamSpeak3/cfg/lgsm-default.ini b/cfg/TeamSpeak3/lgsm-default.ini similarity index 100% rename from TeamSpeak3/cfg/lgsm-default.ini rename to cfg/TeamSpeak3/lgsm-default.ini diff --git a/Teeworlds/cfg/ctf.cfg b/cfg/Teeworlds/ctf.cfg similarity index 100% rename from Teeworlds/cfg/ctf.cfg rename to cfg/Teeworlds/ctf.cfg diff --git a/Teeworlds/cfg/dm.cfg b/cfg/Teeworlds/dm.cfg similarity index 100% rename from Teeworlds/cfg/dm.cfg rename to cfg/Teeworlds/dm.cfg diff --git a/Teeworlds/cfg/duel.cfg b/cfg/Teeworlds/duel.cfg similarity index 100% rename from Teeworlds/cfg/duel.cfg rename to cfg/Teeworlds/duel.cfg diff --git a/Teeworlds/cfg/lgsm-default.cfg b/cfg/Teeworlds/lgsm-default.cfg similarity index 100% rename from Teeworlds/cfg/lgsm-default.cfg rename to cfg/Teeworlds/lgsm-default.cfg diff --git a/Teeworlds/cfg/tdm.cfg b/cfg/Teeworlds/tdm.cfg similarity index 100% rename from Teeworlds/cfg/tdm.cfg rename to cfg/Teeworlds/tdm.cfg diff --git a/Terraria/cfg/lgsm-default.txt b/cfg/Terraria/lgsm-default.txt similarity index 100% rename from Terraria/cfg/lgsm-default.txt rename to cfg/Terraria/lgsm-default.txt diff --git a/GarrysMod/dependencies/libc.so.6 b/dependencies/libc.so.6.7d751c7d8c061730fc5cb7317322d370 similarity index 100% rename from GarrysMod/dependencies/libc.so.6 rename to dependencies/libc.so.6.7d751c7d8c061730fc5cb7317322d370 diff --git a/DontStarveTogether/dependencies/libc.so.6 b/dependencies/libc.so.6.c856f3fcac0a944a36e723b06bdbeb7e similarity index 100% rename from DontStarveTogether/dependencies/libc.so.6 rename to dependencies/libc.so.6.c856f3fcac0a944a36e723b06bdbeb7e diff --git a/DoubleActionBoogaloo/dependencies/libm.so.6 b/dependencies/libm.so.6.b6fef88fd045bfcd05fd4036f323855c similarity index 100% rename from DoubleActionBoogaloo/dependencies/libm.so.6 rename to dependencies/libm.so.6.b6fef88fd045bfcd05fd4036f323855c diff --git a/GarrysMod/dependencies/libm.so.6 b/dependencies/libm.so.6.ee439d489dcbfeb12b809d9b961ffc60 similarity index 100% rename from GarrysMod/dependencies/libm.so.6 rename to dependencies/libm.so.6.ee439d489dcbfeb12b809d9b961ffc60 diff --git a/DontStarveTogether/dependencies/libpthread.so.0 b/dependencies/libpthread.so.0.50a2a33d3cdd82f15c3de6539db7bf60 similarity index 100% rename from DontStarveTogether/dependencies/libpthread.so.0 rename to dependencies/libpthread.so.0.50a2a33d3cdd82f15c3de6539db7bf60 diff --git a/DontStarveTogether/dependencies/librt.so.1 b/dependencies/librt.so.1.eabf0fc1f81292270343bd0796fc64ca similarity index 100% rename from DontStarveTogether/dependencies/librt.so.1 rename to dependencies/librt.so.1.eabf0fc1f81292270343bd0796fc64ca diff --git a/GarrysMod/dependencies/libstdc++.so.6 b/dependencies/libstdc++.so.6.4f9c911de2276f988afaf47659a8367f similarity index 100% rename from GarrysMod/dependencies/libstdc++.so.6 rename to dependencies/libstdc++.so.6.4f9c911de2276f988afaf47659a8367f diff --git a/functions/fix_glibc.sh b/functions/fix_glibc.sh index 0270788ab..e00af1fa5 100644 --- a/functions/fix_glibc.sh +++ b/functions/fix_glibc.sh @@ -5,30 +5,30 @@ lgsm_version="020116" fn_glibcfixmsg(){ -echo "" -echo "GLIBC Fix required" -echo "============================" -sleep 1 -fn_printwarningnl "${gamename} requires GLIBC_${glibcversion} or above" -sleep 1 -echo "" -echo -e "Currently installed:\e[0;31m GLIBC_$(ldd --version |grep ldd|awk '{print $NF}')\e[0;39m" -echo -e "Required: =>\e[0;32m GLIBC_${glibcversion}\e[0;39m" -echo "" -sleep 1 -echo "The installer will now detect and download the required files to allow ${gamename} server to run on a distro with less than GLIBC_${glibcversion}." -echo "note: This will NOT upgrade GLIBC on your system." -echo "" -echo "http://gameservermanagers.com/glibcfix" -sleep 1 -echo "" -echo -en "loading required files.\r" -sleep 1 -echo -en "loading required files..\r" -sleep 1 -echo -en "loading required files...\r" -sleep 1 -echo -en "\n" + echo "" + echo "GLIBC Fix required" + echo "============================" + sleep 1 + fn_printwarningnl "${gamename} requires GLIBC_${glibcversion} or above" + sleep 1 + echo "" + echo -e "Currently installed:\e[0;31m GLIBC_$(ldd --version |grep ldd|awk '{print $NF}')\e[0;39m" + echo -e "Required: =>\e[0;32m GLIBC_${glibcversion}\e[0;39m" + echo "" + sleep 1 + echo "The installer will now detect and download the required files to allow ${gamename} server to run on a distro with less than GLIBC_${glibcversion}." + echo "note: This will NOT upgrade GLIBC on your system." + echo "" + echo "http://gameservermanagers.com/glibcfix" + sleep 1 + echo "" + echo -en "loading required files.\r" + sleep 1 + echo -en "loading required files..\r" + sleep 1 + echo -en "loading required files...\r" + sleep 1 + echo -en "\n" } # if ldd command not detected @@ -103,13 +103,13 @@ elif [ "$(ldd --version | sed -n '1 p' | tr -cd '[:digit:]' | tail -c 3)" -lt 21 cd "${filesdir}" wget -nv -N https://github.com/dgibbs64/linuxgsm/raw/master/NaturalSelection2/dependencies/libm.so.6 cp -v "${rootdir}/steamcmd/linux32/libstdc++.so.6" "${filesdir}/libstdc++.so.6" - # NS2: Combat - elif [ "${gamename}" == "NS2: Combat" ]; then - glibcversion="2.15" - fn_glibcfixmsg - cd "${filesdir}" - wget -nv -N https://github.com/dgibbs64/linuxgsm/raw/master/NS2Combat/dependencies/libm.so.6 - cp -v "${rootdir}/steamcmd/linux32/libstdc++.so.6" "${filesdir}/libstdc++.so.6" + # NS2: Combat + elif [ "${gamename}" == "NS2: Combat" ]; then + glibcversion="2.15" + fn_glibcfixmsg + cd "${filesdir}" + wget -nv -N https://github.com/dgibbs64/linuxgsm/raw/master/NS2Combat/dependencies/libm.so.6 + cp -v "${rootdir}/steamcmd/linux32/libstdc++.so.6" "${filesdir}/libstdc++.so.6" # No More Room in Hell elif [ "${gamename}" == "No More Room in Hell" ]; then glibcversion="2.15" diff --git a/functions/game_settings.sh b/functions/game_settings.sh index 74af87f93..63d0cd37b 100644 --- a/functions/game_settings.sh +++ b/functions/game_settings.sh @@ -104,7 +104,7 @@ fn_import_game_settings(){ importdir=$(echo "${gamedatadir}" | sed -e "s|${lgsmdir}/||g") #echo $importdir if [ ! -e $import ]; then - fn_getgithubfile "${importdir}/${1}" 1 "gamedata/${1}" + fn_getgithubfile "${importdir}/${1}" run "gamedata/${1}" fi source $import } diff --git a/functions/github_hash.sh b/functions/github_hash.sh old mode 100755 new mode 100644 index e78450d58..cbe40086e --- a/functions/github_hash.sh +++ b/functions/github_hash.sh @@ -34,7 +34,7 @@ fn_get_github_manifest(){ if [ ! -e "${cachedir}" ]; then mkdir -p "${cachedir}" fi - fn_getgithubfile "functions/jq-linux64" + fn_getgithubfile "functions/jq-linux64" noexec jq_path="${lgsmdir}/functions/jq-linux64" chmod +x "${jq_path}" # Get latest commit from GitHub. Cache file for 60 minutes @@ -84,7 +84,7 @@ fn_check_github_files(){ echo "Can't find ${repofile} in git!" elif [ "${myhash}" != "${githash}" ]; then #echo "Would fetch ${repofile}: have ${myhash}, expected ${githash}" - fn_getgithubfile "${repofile}" 0 "${repofile}" 1 + fn_getgithubfile "${repofile}" "" "${repofile}" 1 fi fi done diff --git a/functions/install_dependency.sh b/functions/install_dependency.sh new file mode 100644 index 000000000..40fd2f0aa --- /dev/null +++ b/functions/install_dependency.sh @@ -0,0 +1,24 @@ +#!/bin/bash +# LGSM install_dependency.sh function +# Author: Jared Ballou +# Website: http://gameservermanagers.com +lgsm_version="260116" + +fn_add_game_dependency() { + # If the directory doesn't yet exist, exit the function. + # This is so that we wait until the game is installed before putting these files in place + if [ ! -e "${dependency_path}" ]; then + return + fi + + filename="${1}" + md5sum="${2}" + remote_path="dependencies/${filename}.${md5sum}" + local_path="${dependency_path}/${filename}" + local_md5="$(md5sum "${local_path}" | awk '{print $1}')" + echo "Checking ${filename} for ${md5sum}" + if [ "${local_md5}" != "${md5sum}" ]; then + fn_getgithubfile "${local_path}" 0 "${remote_path}" 1 + fi +#"${function_selfname}" == "command_install.sh" +} diff --git a/functions/install_gsquery.sh b/functions/install_gsquery.sh index 143357553..64eb96b4f 100644 --- a/functions/install_gsquery.sh +++ b/functions/install_gsquery.sh @@ -5,10 +5,14 @@ lgsm_version="271215" fn_dlgsquery(){ -cd "${lgsmdir}" -echo -e "downloading gsquery.py...\c" -wget -N /dev/null "http://gameservermanagers.com/dl/gsquery.py" 2>&1 | grep -F "HTTP" | grep -v "Moved Permanently" | cut -c45- | uniq -chmod +x gsquery.py + gsquery_path="${lgsmdir}/gsquery.py" + if [ ! -e "${gsquery_path}" ]; then + echo -e "downloading gsquery.py...\c" + curl -sL "http://gameservermanagers.com/dl/gsquery.py" -o "${gsquery_path}" + fi + if ! -x "${gsquery_path}" ]; then + chmod +x "${gsquery_path}" + fi } if [ "${engine}" == "avalanche" ]||[ "${engine}" == "goldsource" ]||[ "${engine}" == "realvirtuality" ]||[ "${engine}" == "source" ]||[ "${engine}" == "spark" ]||[ "${engine}" == "unity3d" ]||[ "${gamename}" == "Hurtworld" ]||[ "${engine}" == "unreal" ]||[ "${engine}" == "unreal2" ]; then diff --git a/functions/install_sourcemod.sh b/functions/install_sourcemod.sh old mode 100755 new mode 100644 diff --git a/functions/jq-linux64 b/functions/jq-linux64 old mode 100755 new mode 100644 diff --git a/functions/monitor_gsquery.sh b/functions/monitor_gsquery.sh index e8f289c68..555830ebe 100644 --- a/functions/monitor_gsquery.sh +++ b/functions/monitor_gsquery.sh @@ -8,6 +8,10 @@ lgsm_version="271215" # Detects if the server has frozen. local modulename="Monitor" +# Attempt to install gsquery +if [ ! -f "${lgsmdir}/gsquery.py" ]; then + fn_runfunction install_gsquery.sh +fi if [ -f "${lgsmdir}/gsquery.py" ]; then if [ "${engine}" == "unreal" ]||[ "${engine}" == "unreal2" ]; then gameport=$(grep Port= "${servercfgfullpath}"|grep -v Master|grep -v LAN|grep -v Proxy|grep -v Listen|tr -d '\r'|tr -cd '[:digit:]') diff --git a/gamedata/_avalanche b/gamedata/_avalanche index 3c6157842..e6c45852d 100644 --- a/gamedata/_avalanche +++ b/gamedata/_avalanche @@ -4,6 +4,9 @@ fn_import_game_settings _default +# Dependencies +fn_add_game_dependency "libstdc++.so.6" "4f9c911de2276f988afaf47659a8367f" + # And the settings for defaults fn_set_game_params settings "engine" "avalanche" fn_set_game_params settings "servercfg" "config.lua" "Server Config file" diff --git a/gamedata/_default b/gamedata/_default index f179cd9a0..9f28f8dd2 100644 --- a/gamedata/_default +++ b/gamedata/_default @@ -3,6 +3,7 @@ # Base defaults for all games # Set the default settings for the script +fn_set_game_params settings "dependency_path" "${filesdir}" # Default settings. This group includes a lot of blanks just so that the comments are set (and the engine/game files will show blank values to remind people to set them). fn_set_game_params settings "appid" "--EMPTY--" "Steam App ID" diff --git a/gamedata/_halflife_shared b/gamedata/_halflife_shared index 0e8c3b6fb..3046e9143 100644 --- a/gamedata/_halflife_shared +++ b/gamedata/_halflife_shared @@ -6,6 +6,10 @@ fn_import_game_settings _default fn_import_game_settings _parms_plusminus +# Dependencies +fn_set_game_params settings "dependency_path" "${filesdir}/bin" + + # The parms that start with - go first fn_set_game_params parms_minus "game" "\${game}" diff --git a/gamedata/_realvirtuality b/gamedata/_realvirtuality index ec253592b..c9b8ed109 100644 --- a/gamedata/_realvirtuality +++ b/gamedata/_realvirtuality @@ -5,6 +5,10 @@ # Import default settings fn_import_game_settings _default +# Dependencies +fn_add_game_dependency "libstdc++.so.6" "4f9c911de2276f988afaf47659a8367f" + +# Game settings fn_set_game_params settings "engine" "realvirtuality" fn_set_game_params settings "systemdir" "\${filesdir}" fn_set_game_params settings "executabledir" "\${filesdir}" diff --git a/gamedata/_seriousengine35 b/gamedata/_seriousengine35 index 30d768d6b..bc9bca79d 100644 --- a/gamedata/_seriousengine35 +++ b/gamedata/_seriousengine35 @@ -5,6 +5,11 @@ # Import default settings fn_import_game_settings _default +# Dependencies +fn_set_game_params settings "dependency_path" "${filesdir}/Bin" +fn_add_game_dependency "libstdc++.so.6" "4f9c911de2276f988afaf47659a8367f" + +# Game settings fn_set_game_params settings "engine" "seriousengine35" fn_set_game_params settings "systemdir" "\${filesdir}/Bin" fn_set_game_params settings "executable" "./runSam3_DedicatedServer.sh" diff --git a/gamedata/_spark b/gamedata/_spark index ae57b88bb..dd0462527 100644 --- a/gamedata/_spark +++ b/gamedata/_spark @@ -5,3 +5,23 @@ # Import default settings fn_import_game_settings _default +# http://wiki.unknownworlds.com/ns2/Dedicated_Server +fn_parms(){ +parms="-name \"${servername}\" -port ${port} -webadmin -webdomain ${ip} -webuser \"${webadminuser}\" -webpassword \"${webadminpass}\" -webport ${webadminport} -map \"${defaultmap}\" -limit ${maxplayers} -config_path \"${rootdir}/${configpath}\" -modstorage \"${rootdir}/${modstorage}\" -mods \"${mods}\"" +} + +# Dependencies +fn_set_game_params settings "dependency_path" "${filesdir}" +fn_add_game_dependency "libm.so.6" "b6fef88fd045bfcd05fd4036f323855c" +fn_add_game_dependency "libstdc++.so.6" "4f9c911de2276f988afaf47659a8367f" +fn_add_game_dependency "libc.so.6" "7d751c7d8c061730fc5cb7317322d370 + +fn_set_game_params settings "configpath" "server1" +fn_set_game_params settings "maxplayers" "24" +fn_set_game_params settings "mods" "--EMPTY--" +fn_set_game_params settings "modstorage" "server1/Workshop" +fn_set_game_params settings "password" "--EMPTY--" +fn_set_game_params settings "systemdir" "${filesdir}" +fn_set_game_params settings "webadminpass" "admin" +fn_set_game_params settings "webadminport" "8080" +fn_set_game_params settings "webadminuser" "admin" diff --git a/gamedata/arma3server b/gamedata/arma3server index cfc80af3c..735da092f 100644 --- a/gamedata/arma3server +++ b/gamedata/arma3server @@ -5,6 +5,8 @@ fn_import_game_settings _realvirtuality fn_parms(){ parms="-netlog -ip=${ip} -port=${port} -cfg=${networkcfgfullpath} -config=${servercfgfullpath} -mod=${mods} -servermod=${servermods} -bepath=${bepath} -autoinit -loadmissiontomemory" } + +# Game Settings fn_set_game_params settings "port" "2302" fn_set_game_params settings "mods" "" "Mods" fn_set_game_params settings "servermods" "" "Server Mods" diff --git a/gamedata/bsserver b/gamedata/bsserver index a64d7074d..18ef02e75 100644 --- a/gamedata/bsserver +++ b/gamedata/bsserver @@ -6,6 +6,9 @@ fn_import_game_settings _source fn_parms(){ parms="-autoupdate -strictportbind -ip ${ip} -port ${port} +clientport ${clientport} +tv_port ${sourcetvport} +map ${defaultmap} +servercfgfile ${servercfg} -maxplayers ${maxplayers}" } + +fn_add_game_dependency "libstdc++.so.6" "4f9c911de2276f988afaf47659a8367f" + fn_set_game_params settings "appid" "228780" fn_set_game_params settings "defaultmap" "duel_winter" fn_set_game_params settings "game" "berimbau" diff --git a/gamedata/dabserver b/gamedata/dabserver index 856f70b4f..f4a76f358 100644 --- a/gamedata/dabserver +++ b/gamedata/dabserver @@ -6,6 +6,10 @@ fn_import_game_settings _source fn_parms(){ parms="-strictportbind -ip ${ip} -port ${port} +clientport ${clientport} +tv_port ${sourcetvport} +map ${defaultmap} +servercfgfile ${servercfg} -maxplayers ${maxplayers}" } + +fn_set_game_params settings "dependency_path" "${filesdir}" +fn_add_game_dependency "libm.so.6" "b6fef88fd045bfcd05fd4036f323855c" + fn_set_game_params settings "appid" "317800" fn_set_game_params settings "defaultmap" "da_rooftops" fn_set_game_params settings "executable" "./dabds.sh" diff --git a/gamedata/dstserver b/gamedata/dstserver index 9278878ef..6465b8b57 100644 --- a/gamedata/dstserver +++ b/gamedata/dstserver @@ -6,6 +6,14 @@ fn_import_game_settings _dontstarve fn_parms(){ parms="" } + +# Dependencies +fn_set_game_params settings "dependency_path" "${filesdir}/bin/lib32/" +fn_add_game_dependency "libpthread.so.0" "50a2a33d3cdd82f15c3de6539db7bf60" +fn_add_game_dependency "librt.so.1" "eabf0fc1f81292270343bd0796fc64ca" +fn_add_game_dependency "libc.so.6" "c856f3fcac0a944a36e723b06bdbeb7e" + +# Game settings fn_set_game_params settings "appid" "343050" fn_set_game_params settings "game" "dontstarve" fn_set_game_params settings "gamename" "Don't Starve Together" diff --git a/gamedata/fofserver b/gamedata/fofserver index 6a06150b4..05e821276 100644 --- a/gamedata/fofserver +++ b/gamedata/fofserver @@ -6,6 +6,9 @@ fn_import_game_settings _source fn_parms(){ parms="-game fof -strictportbind -ip ${ip} -port ${port} +clientport ${clientport} +tv_port ${sourcetvport} +map ${defaultmap} +servercfgfile ${servercfg} -maxplayers ${maxplayers}" } +fn_set_game_params settings "dependency_path" "${filesdir}" +fn_add_game_dependency "libm.so.6" "b6fef88fd045bfcd05fd4036f323855c" + fn_set_game_params settings "appid" "295230" fn_set_game_params settings "defaultmap" "fof_depot" fn_set_game_params settings "game" "fof" diff --git a/gamedata/gmodserver b/gamedata/gmodserver index 60d37ff02..0900d15c5 100644 --- a/gamedata/gmodserver +++ b/gamedata/gmodserver @@ -7,6 +7,12 @@ fn_import_game_settings _source fn_import_game_settings _gslt fn_import_game_settings _workshop +# Add dependencies +fn_add_game_dependency "libpthread.so.0" "50a2a33d3cdd82f15c3de6539db7bf60" +fn_add_game_dependency "libm.so.6" "ee439d489dcbfeb12b809d9b961ffc60" +fn_add_game_dependency "libstdc++.so.6" "4f9c911de2276f988afaf47659a8367f" +fn_add_game_dependency "libc.so.6" "7d751c7d8c061730fc5cb7317322d370" + # Override some server settings fn_set_game_params settings "appid" "4020" fn_set_game_params settings "defaultmap" "gm_construct" diff --git a/gamedata/insserver b/gamedata/insserver index 25a080ea9..cf3315fb1 100644 --- a/gamedata/insserver +++ b/gamedata/insserver @@ -5,6 +5,12 @@ # Import Source Engine fn_import_game_settings _source +# Dependencies +fn_add_game_dependency "libc.so.6" "c856f3fcac0a944a36e723b06bdbeb7e" +fn_add_game_dependency "libm.so.6" "b6fef88fd045bfcd05fd4036f323855c" +fn_add_game_dependency "libpthread.so.0" "50a2a33d3cdd82f15c3de6539db7bf60" +fn_add_game_dependency "librt.so.1" "eabf0fc1f81292270343bd0796fc64ca" + # Override some server settings fn_set_game_params settings "appid" "237410" fn_set_game_params settings "defaultmap" "ministry checkpoint" diff --git a/gamedata/l4dserver b/gamedata/l4dserver index 67d7498af..cbc75b776 100644 --- a/gamedata/l4dserver +++ b/gamedata/l4dserver @@ -7,6 +7,9 @@ fn_import_game_settings _source fn_parms(){ parms="-game left4dead -strictportbind -ip ${ip} -port ${port} +clientport ${clientport} -tickrate ${tickrate} +map ${defaultmap} -maxplayers ${maxplayers}" } + +fn_add_game_dependency "libstdc++.so.6" "4f9c911de2276f988afaf47659a8367f" + fn_set_game_params settings "appid" "222840" fn_set_game_params settings "defaultmap" "l4d_hospital01_apartment" fn_set_game_params settings "game" "left4dead" diff --git a/gamedata/nmrihserver b/gamedata/nmrihserver index c7a5c8dd4..fe0f22385 100644 --- a/gamedata/nmrihserver +++ b/gamedata/nmrihserver @@ -6,6 +6,13 @@ fn_import_game_settings _source fn_parms(){ parms="-game nmrih -insecure -strictportbind -ip ${ip} -port ${port} +clientport ${clientport} +tv_port ${sourcetvport} +map ${defaultmap} +servercfgfile ${servercfg} -maxplayers ${maxplayers}" } + +# Dependencies +fn_set_game_params settings "dependency_path" "${filesdir}" +fn_add_game_dependency "libm.so.6" "b6fef88fd045bfcd05fd4036f323855c" +fn_add_game_dependency "libstdc++.so.6" "4f9c911de2276f988afaf47659a8367f" + +# Game settings fn_set_game_params settings "appid" "317670" fn_set_game_params settings "defaultmap" "nmo_broadway" fn_set_game_params settings "game" "nmrih" diff --git a/gamedata/ns2cserver b/gamedata/ns2cserver index 5b830de5b..c896a0aae 100644 --- a/gamedata/ns2cserver +++ b/gamedata/ns2cserver @@ -2,21 +2,9 @@ # Import Engine fn_import_game_settings _spark -fn_parms(){ -parms="-name \"${servername}\" -port ${port} -webadmin -webdomain ${ip} -webuser ${webadminuser} -webpassword \"${webadminpass}\" -webport ${webadminport} -map ${defaultmap} -limit ${maxplayers} -config_path \"${rootdir}/${configpath}\" -modstorage \"${rootdir}/${modstorage}\" -mods \"${mods}\"" -} - fn_set_game_params settings "appid" "313900" -fn_set_game_params settings "configpath" "server1" fn_set_game_params settings "defaultmap" "co_core" fn_set_game_params settings "executable" "./ns2combatserver_linux32" fn_set_game_params settings "executabledir" "\${filesdir}/ia32" fn_set_game_params settings "gamename" "NS2: Combat" -fn_set_game_params settings "maxplayers" "24" -fn_set_game_params settings "mods" "--EMPTY--" -fn_set_game_params settings "modstorage" "server1/Workshop" -fn_set_game_params settings "password" "-EMPTY--" fn_set_game_params settings "servername" "NS2C Server" -fn_set_game_params settings "webadminuser" "admin" -fn_set_game_params settings "webadminpass" "admin" -fn_set_game_params settings "webadminport" "8080" diff --git a/gamedata/ns2server b/gamedata/ns2server index 174cb8e84..08bc313cc 100644 --- a/gamedata/ns2server +++ b/gamedata/ns2server @@ -2,23 +2,9 @@ # Import Engine fn_import_game_settings _spark -# http://wiki.unknownworlds.com/ns2/Dedicated_Server -fn_parms(){ -parms="-name \"${servername}\" -port ${port} -webadmin -webdomain ${ip} -webuser ${webadminuser} -webpassword \"${webadminpass}\" -webport ${webadminport} -map ${defaultmap} -limit ${maxplayers} -config_path \"${rootdir}/${configpath}\" -modstorage \"${rootdir}/${modstorage}\" -mods \"${mods}\"" -} - -fn_set_game_params settings "defaultmap" "ns2_summit" -fn_set_game_params settings "maxplayers" "24" -fn_set_game_params settings "servername" "NS2 Server" -fn_set_game_params settings "webadminuser" "admin" -fn_set_game_params settings "webadminpass" "admin" -fn_set_game_params settings "webadminport" "8080" -fn_set_game_params settings "configpath" "server1" -fn_set_game_params settings "modstorage" "server1/Workshop" -fn_set_game_params settings "mods" "" -fn_set_game_params settings "password" "" fn_set_game_params settings "appid" "4940" -fn_set_game_params settings "gamename" "Natural Selection 2" -fn_set_game_params settings "systemdir" "${filesdir}" -fn_set_game_params settings "executabledir" "${filesdir}" +fn_set_game_params settings "defaultmap" "ns2_summit" fn_set_game_params settings "executable" "./server_linux32" +fn_set_game_params settings "executabledir" "${filesdir}" +fn_set_game_params settings "gamename" "Natural Selection 2" +fn_set_game_params settings "servername" "NS2 Server" diff --git a/7DaysToDie/sdtdserver b/old-games-no-longer-used/7DaysToDie/sdtdserver similarity index 100% rename from 7DaysToDie/sdtdserver rename to old-games-no-longer-used/7DaysToDie/sdtdserver diff --git a/ARKSurvivalEvolved/arkserver b/old-games-no-longer-used/ARKSurvivalEvolved/arkserver similarity index 100% rename from ARKSurvivalEvolved/arkserver rename to old-games-no-longer-used/ARKSurvivalEvolved/arkserver diff --git a/old-games-no-longer-used/ARKSurvivalEvolved/cfg/lgsm-default.ini b/old-games-no-longer-used/ARKSurvivalEvolved/cfg/lgsm-default.ini new file mode 100644 index 000000000..e14a10c6f --- /dev/null +++ b/old-games-no-longer-used/ARKSurvivalEvolved/cfg/lgsm-default.ini @@ -0,0 +1,135 @@ +[ServerSettings] +AllowFlyerCarryPvE=False +AllowThirdPersonPlayer=False +AlwaysNotifyPlayerLeft=False +AutoSavePeriodMinutes=15.000000 +ClampResourceHarvestDamage=False +DayCycleSpeedScale=1.000000 +DayTimeSpeedScale=1.000000 +DifficultyOffset=0.200000 +DinoCharacterFoodDrainMultiplier=1.000000 +DinoCharacterHealthRecoveryMultiplier=1.000000 +DinoCharacterStaminaDrainMultiplier=1.000000 +DinoCountMultiplier=1.000000 +DinoDamageMultiplier=1.000000 +DinoResistanceMultiplier=1.000000 +DisableStructureDecayPvE=False +DontAlwaysNotifyPlayerJoined=False +EnablePvPGamma=False +GlobalVoiceChat=False +HarvestAmountMultiplier=1.000000 +HarvestHealthMultiplier=1.000000 +KickIdlePlayersPeriod=2400.000000 +NewMaxStructuresInRange=6000.000000 +NightTimeSpeedScale=1.000000 +NoTributeDownloads=False +PlayerCharacterFoodDrainMultiplier=1.000000 +PlayerCharacterHealthRecoveryMultiplier=1.000000 +PlayerCharacterStaminaDrainMultiplier=1.000000 +PlayerCharacterWaterDrainMultiplier=1.000000 +PlayerDamageMultiplier=1.000000 +PlayerResistanceMultiplier=1.000000 +ProximityChat=False +ProximityVoiceChat=False +PvEStructureDecayDestructionPeriod=0.000000 +PvEStructureDecayPeriodMultiplier=1.000000 +RCONEnabled=True +RCONPort=32330 +ResourcesRespawnPeriodMultiplier=1.000000 +ServerAdminPassword=adminpassword +ServerCrosshair=False +ServerForceNoHUD=False +ServerHardcore=False +ServerPassword= +ServerPVE=False +ShowMapPlayerLocation=False +StructureDamageMultiplier=1.000000 +StructureResistanceMultiplier=1.000000 +TamedDinoDamageMultiplier=1.000000 +TamedDinoResistanceMultiplier=1.000000 +TamingSpeedMultiplier=1.000000 +XPMultiplier=1.000000 + +[/Script/ShooterGame.ShooterGameUserSettings] +MasterAudioVolume=1.000000 +MusicAudioVolume=1.000000 +SFXAudioVolume=1.000000 +VoiceAudioVolume=1.000000 +CameraShakeScale=1.000000 +bFirstPersonRiding=False +bThirdPersonPlayer=False +bShowStatusNotificationMessages=True +TrueSkyQuality=0.270000 +FOVMultiplier=1.000000 +GroundClutterDensity=1.000000 +bFilmGrain=False +bMotionBlur=True +bUseDFAO=True +bUseSSAO=True +bShowChatBox=True +bCameraViewBob=True +bInvertLookY=False +bFloatingNames=True +bChatBubbles=True +bHideServerInfo=False +bJoinNotifications=False +bCraftablesShowAllItems=True +LookLeftRightSensitivity=1.000000 +LookUpDownSensitivity=1.000000 +GraphicsQuality=2 +ActiveLingeringWorldTiles=10 +ClientNetQuality=3 +LastServerSearchType=0 +LastServerSearchHideFull=False +LastServerSearchProtected=False +HideItemTextOverlay=False +bDistanceFieldShadowing=True +LODScalar=1.000000 +HighQualityMaterials=True +HighQualitySurfaces=True +bTemperatureF=False +bDisableTorporEffect=False +bChatShowSteamName=False +bChatShowTribeName=True +EmoteKeyBind1=0 +EmoteKeyBind2=0 +bUseVSync=False +ResolutionSizeX=1280 +ResolutionSizeY=720 +LastUserConfirmedResolutionSizeX=1280 +LastUserConfirmedResolutionSizeY=720 +WindowPosX=-1 +WindowPosY=-1 +bUseDesktopResolutionForFullscreen=False +FullscreenMode=2 +LastConfirmedFullscreenMode=2 +Version=5 + +[ScalabilityGroups] +sg.ResolutionQuality=100 +sg.ViewDistanceQuality=3 +sg.AntiAliasingQuality=3 +sg.ShadowQuality=3 +sg.PostProcessQuality=3 +sg.TextureQuality=3 +sg.EffectsQuality=3 +sg.TrueSkyQuality=3 +sg.GroundClutterQuality=3 +sg.IBLQuality=1 +sg.HeightFieldShadowQuality=3 + +[SessionSettings] +SessionName=arkserver +QueryPort=27015 +Port=7777 +;MultiHome=INSERT_IPv4_HERE ;Example:192.168.0.9. If not just remove any line containing MultiHome. + +[/Script/Engine.GameSession] +MaxPlayers=127 + +[MultiHome] +;MultiHome=True ;If MultiHome=IPv4 is filled in. If not just remove any line containing MultiHome. + +[MessageOfTheDay] +Message=Welcome to ARK Server +Duration=5 diff --git a/Arma3/arma3server b/old-games-no-longer-used/Arma3/arma3server similarity index 100% rename from Arma3/arma3server rename to old-games-no-longer-used/Arma3/arma3server diff --git a/old-games-no-longer-used/Arma3/cfg/lgsm-default.network.cfg b/old-games-no-longer-used/Arma3/cfg/lgsm-default.network.cfg new file mode 100644 index 000000000..5bba89f8d --- /dev/null +++ b/old-games-no-longer-used/Arma3/cfg/lgsm-default.network.cfg @@ -0,0 +1,77 @@ +// +// network.cfg - Defines network tuning parameters +// +// This file is to be passed to the -cfg parameter on the command line for the server +// See http://community.bistudio.com/wiki/basic.cfg +// The following settings are the suggested settings + +// BANDWIDTH SETTINGS + +// Bandwidth the server is guaranteed to have (in bps) +// General guideline is NumberOfPlayers * 256kb +// Default: 131072 +MinBandwidth=5120000; +// Bandwidth the server can never go above (in bps) +// For a single server, use full network speed; decrease when running multiple servers +MaxBandwidth=10240000; + +// PACKET SETTINGS + +// Maximum number of packets per frame. +// Increasing the value potentially decreases lag, but increases desync +// Default: 128 +MaxMsgSend=2048; +// Maximum payload of guaranteed packet (in b) +// Small messages are packed to larger packets +// Guaranteed packets are used for non-repetitive events, like shooting +// Lower value means more packets are sent, so less events will get combined +// Default: 512 +MaxSizeGuaranteed=512; +// Maximum payload of non-guaranteed packet (in b) +// Increasing this value may improve bandwidth requirement, but may also increase lag +// Largest factor in desync +// Guidance is half of MaxSizeGuaranteed +// Default: 256 +MaxSizeNonguaranteed=256; +// Maximal size of a packet sent over the network +// Only necessary if ISP forces lower packet size and there are connectivity issues +// Default: 1400 +// class sockets{maxPacketSize=1400}; + +// SMOOTHNESS SETTINGS + +// Minimal error required to send network updates for far units +// Smaller values will make for smoother movement at long ranges, but will increase network traffic +// Default: 0.003 +MinErrorToSend=0.01; +// Minimal error required to send network updates for near units +// Using larger value can reduce traffic sent for near units +// Also controls client to server traffic +// Default: 0.01 +MinErrorToSendNear=0.02; + +// GEOLOCATION SETTINGS + +// Server latitude +serverLatitude=52; +serverLatitudeAuto=52; + +// Server Longitude +serverLongitude=0; +serverLongitudeAuto=0; +// MISC +// View Distance (not sure if this actually works) +viewDistance=10000; + +// Maximum size (in b) for custom face or sound files +// Default: 0 +MaxCustomFileSize=0; +// Server language +language="English"; +steamLanguage="English"; +// Adapter +adapter=-1; +// Windowed mode +Windowed=0; + +3D_Performance=1.000000; \ No newline at end of file diff --git a/old-games-no-longer-used/Arma3/cfg/lgsm-default.server.cfg b/old-games-no-longer-used/Arma3/cfg/lgsm-default.server.cfg new file mode 100644 index 000000000..51b2c26e6 --- /dev/null +++ b/old-games-no-longer-used/Arma3/cfg/lgsm-default.server.cfg @@ -0,0 +1,133 @@ +// ArmA 3 Server Config File +// +// More info about parameters: +// https://community.bistudio.com/wiki/server.cfg + + +// PORTS +// please specify the serverport as a parameter in arma3server executable +// it will automatically use the serverport including the next 3 for steam query & steam master. +// the fourth port ist not documented in https://community.bistudio.com/wiki/Arma_3_Dedicated_Server#Port_Forwarding +// Server Port +// default: 2302. +// serverport=2302; + +// Steam Master Port +// default: 2304. +// steamport=2304; + +// Steam Query Port +// default: 2303. +//steamqueryport=2303; + + +// GENERAL SETTINGS + +// Server Name +hostname = "arma3server"; + +// Server Password +//password = "arma3pass"; + +// Admin Password +passwordAdmin = "arma3adminpass"; + +// Server Slots +maxPlayers = 32; + +// Logfile +logFile = "arma3server.log"; + +// Minimum Required Client Build +//requiredBuild = 95691 + +// Message of the Day (MOTD) +motd[]={ + "Welcome to My Arma 3 Server", + "TS3 Server: teamspeak.somewhere.com", + "Web: www.example.com" +}; + +// MOTD Interval (Seconds) +motdInterval = 30; + + +// VOTING + +// Server Mission Start +// minimum number of clients before server starts mission +voteMissionPlayers = 1; + +// Accepted Vote Threshold +// 0.33 = 33% clients. +voteThreshold = 0.33; + +// INGAME SETTINGS + +// Disable Voice over Net (VoN) +// 0 = voice enabled. +// 1 = voice disabled. +disableVoN = 0; + +// VoN Codec Quality +// 0-10 = 8kHz (narrowband). +// 11-20 = 16kHz (wideband). +// 21-30 = 32kHz (ultrawideband). +vonCodecQuality = 3; + +//Persistent Battlefield +// 0 = disable. +// 1 = enable. +persistent = 1; + +// Time Stamp Format +// none, short, full +timeStampFormat = "short"; + + +// SERVER SECURITY/ANTI HACK + +// Verify Signitures for Client Addons +// 0 = off. +// 1 = weak protection (depricated). +// 2 = full protection. +verifySignatures = 2; + +// Secure Player ID +// 1 = Server warning message. +// 2 = Kick client. +requiredSecureId = 2; + +// Kick Duplicate Player IDs +kickDuplicate = 1; + +// BattlEye Anti-Cheat +// 0 = disable +// 1 = enable +BattlEye = 1; + +// Allowed File Extentions +allowedLoadFileExtensions[] = {"hpp","sqs","sqf","fsm","cpp","paa","txt","xml","inc","ext","sqm","ods","fxy","lip","csv","kb","bik","bikb","html","htm","biedi"}; +allowedPreprocessFileExtensions[] = {"hpp","sqs","sqf","fsm","cpp","paa","txt","xml","inc","ext","sqm","ods","fxy","lip","csv","kb","bik","bikb","html","htm","biedi"}; +allowedHTMLLoadExtensions[] = {"htm","html","xml","txt"}; + +// SCRIPTING ISSUES +onUserConnected = ""; // +onUserDisconnected = ""; // +doubleIdDetected = ""; // + +// SIGNATURE VERIFICATION +// kick = kick (_this select 0) +// ban = ban (_this select 0) +onUnsignedData = "kick (_this select 0)"; +onHackedData = "kick (_this select 0)"; +onDifferentData = ""; + +// HEADLESS CLIENT SUPPORT +// specify ip-adresses of allowed headless clients +// if more than one: +// headlessClients[]={"127.0.0.1", "192.168.0.1"}; +// localClient[]={"127.0.0.1", "192.168.0.1"}; +headlessClients[]={"127.0.0.1"}; +localClient[]={"127.0.0.1"}; +battleyeLicense=1; diff --git a/BlackMesa/bmdmserver b/old-games-no-longer-used/BlackMesa/bmdmserver similarity index 100% rename from BlackMesa/bmdmserver rename to old-games-no-longer-used/BlackMesa/bmdmserver diff --git a/old-games-no-longer-used/BlackMesa/cfg/lgsm-default.cfg b/old-games-no-longer-used/BlackMesa/cfg/lgsm-default.cfg new file mode 100644 index 000000000..9a047db15 --- /dev/null +++ b/old-games-no-longer-used/BlackMesa/cfg/lgsm-default.cfg @@ -0,0 +1,24 @@ +// Black Mesa server.cfg file +// Server Name +hostname "" + +// RCON Password +rcon_password "" + +// Server Password +sv_password "" + +// Server Logging +log on +sv_logbans 1 +sv_logecho 1 +sv_logfile 1 +sv_log_onefile 0 + +mp_timelimit 900 +mp_warmup_time 30 +// sv_lan 0 +// mp_flashlight 1 +// mp_forcerespawn 0 +// mp_friendlyfire 0 +// mp_fraglimit 45 \ No newline at end of file diff --git a/BladeSymphony/bsserver b/old-games-no-longer-used/BladeSymphony/bsserver similarity index 100% rename from BladeSymphony/bsserver rename to old-games-no-longer-used/BladeSymphony/bsserver diff --git a/old-games-no-longer-used/BladeSymphony/cfg/lgsm-default.cfg b/old-games-no-longer-used/BladeSymphony/cfg/lgsm-default.cfg new file mode 100644 index 000000000..c2b66dcbc --- /dev/null +++ b/old-games-no-longer-used/BladeSymphony/cfg/lgsm-default.cfg @@ -0,0 +1,15 @@ +// Server Name +hostname "" + +// RCON Password +rcon_password "" + +// Server Password +sv_password "" + +// Server Logging +log on +sv_logbans 1 +sv_logecho 1 +sv_logfile 1 +sv_log_onefile 0 \ No newline at end of file diff --git a/BrainBread2/bb2server b/old-games-no-longer-used/BrainBread2/bb2server similarity index 100% rename from BrainBread2/bb2server rename to old-games-no-longer-used/BrainBread2/bb2server diff --git a/old-games-no-longer-used/BrainBread2/cfg/lgsm-default.cfg b/old-games-no-longer-used/BrainBread2/cfg/lgsm-default.cfg new file mode 100644 index 000000000..e016e66fb --- /dev/null +++ b/old-games-no-longer-used/BrainBread2/cfg/lgsm-default.cfg @@ -0,0 +1,201 @@ +// **************************************************************************** +// * +// BrainBread 2 - server.cfg * +// Version 080116 * +// * +// **************************************************************************** + +// ............................. Basic Settings ............................. // + +// Hostname for server. +hostname "" + +// RCON - remote console password. +rcon_password "" + +// Server password - for private servers. +sv_password "" + +// Contact email for server sysop. +sv_contact "email@example.com" + +// LAN Mode - If set the server will not show on the internet. +// Default: sv_lan 0 +sv_lan 0 + +// Cheats - Allows cheats on the server. Steam achievements and stats are disabled. +// Default: 0 +sv_cheats 0 + +// Friendly Fire - Allows team members to injure other members of their team. +// 0 = Friendly fire off. +// 1 = Friendly fire on. +// Default: 0 +mp_friendlyfire 0 + +// ........................ Game Specific Commands ........................ // +// info: any commands that only apply to this game. + + +// Mercy Value - Sets how many deaths until the players become human once again. +// Default: bb2_allow_mercy 0 +bb2_allow_mercy 3 + +// Late Joining - Allows players to spawn late. +// default bb2_allow_latejoin 0 +bb2_allow_latejoin 1 + +// Player Spawn Protection - Time in seconds after Spawn. +// default bb2_spawn_protection 1 +bb2_spawn_protection 15 + +// Profile System - Allow players to save and load there skills. +// 0 = Disabled, skills are not saved. +// 1 = Global, players can load there global skills. +// 2 = Server, players save there skills to the server. Steam achievements and stats are disabled. +// Default 1 +bb2_allow_profile_system 1 + +// Allow NPC to score - Allow friendly npcs to affect scoring. For example for quests. +// Default 1 +bb2_allow_npc_to_score 0 + +// Vote Settings + +// Voting: Passing Votes - Percentage of players that are required to pass a vote. +// Minimum: 0 +// Maximum: 100 +// Default 50 +bb2_votes_required 50 + +// Voting: Ban Time - Number of minutes a player be banned if a vaote ban passes. +// minimum: 0 (permanent) +// default 30 +bb2_ban_time 30 + + +// Arena Settings + +// Arena: Respawn Interval Time (Seconds). +// Minimum: 20 +// Default 40 +bb2_arena_respawn_time 25 + +// Arena: Number of Reinforcements. +// Minimum: 0 +// Maximum: 100 +// Default 14 +bb2_arena_reinforcement_count 14 + + +// Classic Mode Settings + +// Classic: Zombie No Team Change. +// 0 = Players can become zombies. +// 1 = Players cannot become zombies. +// Default 0 +bb2_classic_zombie_noteamchange 1 + + +// Elimination Settings + +// Elimination: Team Fraglimit - Number of frags for a team to win a game. +// Minimum: 10 +// Default 200 +bb2_elimination_fraglimit 200 + +// Elimination: Respawn Time (Seconds). +// Minimum: 1 +// Maximum: 30 +// Default 4 +bb2_elimination_respawn_time 5 + +// Elimination: Respawn Time Scale - Increase the respawn timer in seconds when a player joins. +// Example: respawn_timer + (joined_players x time_scale) = new_respawn_timer. 14 + (20 x 2) = 54. +// Minimum: 0 +// Maximum: 10 +// Default 1 +bb2_elimination_respawn_time_scale 1 + +// Elimination: Extermination Score - The score a team should be awarded for exterminating (kill everyone before respawn) the other team. +// Minimum: 0 +// Maximum: 50 +// Default 25 +bb2_elimination_score_from_extermination 25 + +// Elimination: Zombie Score - Number of point a zombie gets for a kill. +// Minimum: 2 +// Maximum: 10 +// Default 5 +bb2_elimination_score_zombies 5 + +// Elimination: Team Perk Duration - Number of seconds a team perk lasts. +// Minimum: 5 +// Maximum: 60 +// Default 30 +bb2_elimination_teamperk_duration 30 + +// Elimination: Team Perk Required Kills - Number of kills a team need to get in order to activate a team perk. +// Minimum: 25 +// Maximum: 500 +// Default 50 +bb2_elimination_teamperk_kills_required 50 + + +// Zombie Settings + +// Zombie Lifespan - Number of minutes a regular zombie will last before dying. +// Minimum: 1 +// Default 5 +bb2_zombie_lifespan 2 + +// Max Zombies - Maximum number of zombies allowed in the game. +// Minimum: 1 +// Maximum: 128 +// Default 50 +bb2_zombie_max 45 + + +// M1A1 Abrams Settings + +// M1A1 Abrams: Main Cannon Damage. +// Minimum: 100 +// Maximum: 10000 +// Default 3000 +bb2_m1a1_damage 200 + +// M1A1 Abrams: Machinegun Damage. +// Minimum: 25 +// Maximum: 1000 +// Default 30 +bb2_m1a1_damage_machinegun 25 + +// M1A1 Abrams: Friendly Fire (Including NPC's). +// Minimum: 0 +// Maximum: 1 +// Default 1 +bb2_m1a1_friendly 1 + +// M1A1 Abrams: Machinegun Rate of Fire. +// Minimum: 0.01 +// Maximum: 1 +// Default 0.08 +bb2_m1a1_machinegun_firerate 1 + +// M1A1 Abrams: Explosion Radius. +// Minimum: 200 +// Maximum: 10000 +// Default 500 +bb2_m1a1_radius 500 + +// M1A1 Abrams: Max Sight Range. +// Minimum: 500 +// Maximum: 10000 +// Default 2000 +bb2_m1a1_range_max 1000 + +// M1A1 Abrams: Min Sight Range. +// Minimum: 250 +// Maximum: 5000 +// Default 400 +bb2_m1a1_range_min 250 \ No newline at end of file diff --git a/old-games-no-longer-used/CounterStrike/cfg/lgsm-default.cfg b/old-games-no-longer-used/CounterStrike/cfg/lgsm-default.cfg new file mode 100644 index 000000000..ceb8f9374 --- /dev/null +++ b/old-games-no-longer-used/CounterStrike/cfg/lgsm-default.cfg @@ -0,0 +1,38 @@ +// Server Name +hostname "" + +// RCON Password +rcon_password "" + +// Server Password +sv_password "" + +// Server Logging +log on +sv_logbans 1 +sv_logecho 1 +sv_logfile 1 +sv_log_onefile 0 + +// disable autoaim +sv_aim 0 + +// disable clients' ability to pause the server +pausable 0 + +// maximum client movement speed +sv_maxspeed 320 + +// 20 minute timelimit +mp_timelimit 20 + +// cheats off +sv_cheats 0 + +// load ban files +exec listip.cfg +exec banned.cfg + + + + diff --git a/CounterStrike/csserver b/old-games-no-longer-used/CounterStrike/csserver similarity index 100% rename from CounterStrike/csserver rename to old-games-no-longer-used/CounterStrike/csserver diff --git a/old-games-no-longer-used/CounterStrikeConditionZero/cfg/lgsm-default.cfg b/old-games-no-longer-used/CounterStrikeConditionZero/cfg/lgsm-default.cfg new file mode 100644 index 000000000..ceb8f9374 --- /dev/null +++ b/old-games-no-longer-used/CounterStrikeConditionZero/cfg/lgsm-default.cfg @@ -0,0 +1,38 @@ +// Server Name +hostname "" + +// RCON Password +rcon_password "" + +// Server Password +sv_password "" + +// Server Logging +log on +sv_logbans 1 +sv_logecho 1 +sv_logfile 1 +sv_log_onefile 0 + +// disable autoaim +sv_aim 0 + +// disable clients' ability to pause the server +pausable 0 + +// maximum client movement speed +sv_maxspeed 320 + +// 20 minute timelimit +mp_timelimit 20 + +// cheats off +sv_cheats 0 + +// load ban files +exec listip.cfg +exec banned.cfg + + + + diff --git a/CounterStrikeConditionZero/csczserver b/old-games-no-longer-used/CounterStrikeConditionZero/csczserver similarity index 100% rename from CounterStrikeConditionZero/csczserver rename to old-games-no-longer-used/CounterStrikeConditionZero/csczserver diff --git a/old-games-no-longer-used/CounterStrikeGlobalOffensive/cfg/lgsm-default.cfg b/old-games-no-longer-used/CounterStrikeGlobalOffensive/cfg/lgsm-default.cfg new file mode 100644 index 000000000..15906f925 --- /dev/null +++ b/old-games-no-longer-used/CounterStrikeGlobalOffensive/cfg/lgsm-default.cfg @@ -0,0 +1,23 @@ +// Server Name +hostname "" + +// RCON Password +rcon_password "" + +// Server Password +sv_password "" + +// Server Logging +log on +sv_logbans 1 +sv_logecho 1 +sv_logfile 1 +sv_log_onefile 0 + +exec banned_user.cfg +exec banned_ip.cfg +writeid +writeip + + + diff --git a/CounterStrikeGlobalOffensive/csgoserver b/old-games-no-longer-used/CounterStrikeGlobalOffensive/csgoserver similarity index 100% rename from CounterStrikeGlobalOffensive/csgoserver rename to old-games-no-longer-used/CounterStrikeGlobalOffensive/csgoserver diff --git a/old-games-no-longer-used/CounterStrikeSource/cfg/lgsm-default.cfg b/old-games-no-longer-used/CounterStrikeSource/cfg/lgsm-default.cfg new file mode 100644 index 000000000..c2b66dcbc --- /dev/null +++ b/old-games-no-longer-used/CounterStrikeSource/cfg/lgsm-default.cfg @@ -0,0 +1,15 @@ +// Server Name +hostname "" + +// RCON Password +rcon_password "" + +// Server Password +sv_password "" + +// Server Logging +log on +sv_logbans 1 +sv_logecho 1 +sv_logfile 1 +sv_log_onefile 0 \ No newline at end of file diff --git a/CounterStrikeSource/cssserver b/old-games-no-longer-used/CounterStrikeSource/cssserver similarity index 100% rename from CounterStrikeSource/cssserver rename to old-games-no-longer-used/CounterStrikeSource/cssserver diff --git a/old-games-no-longer-used/DayOfDefeat/cfg/lgsm-default.cfg b/old-games-no-longer-used/DayOfDefeat/cfg/lgsm-default.cfg new file mode 100644 index 000000000..ceb8f9374 --- /dev/null +++ b/old-games-no-longer-used/DayOfDefeat/cfg/lgsm-default.cfg @@ -0,0 +1,38 @@ +// Server Name +hostname "" + +// RCON Password +rcon_password "" + +// Server Password +sv_password "" + +// Server Logging +log on +sv_logbans 1 +sv_logecho 1 +sv_logfile 1 +sv_log_onefile 0 + +// disable autoaim +sv_aim 0 + +// disable clients' ability to pause the server +pausable 0 + +// maximum client movement speed +sv_maxspeed 320 + +// 20 minute timelimit +mp_timelimit 20 + +// cheats off +sv_cheats 0 + +// load ban files +exec listip.cfg +exec banned.cfg + + + + diff --git a/DayOfDefeat/dodserver b/old-games-no-longer-used/DayOfDefeat/dodserver similarity index 100% rename from DayOfDefeat/dodserver rename to old-games-no-longer-used/DayOfDefeat/dodserver diff --git a/old-games-no-longer-used/DayOfDefeatSource/cfg/lgsm-default.cfg b/old-games-no-longer-used/DayOfDefeatSource/cfg/lgsm-default.cfg new file mode 100644 index 000000000..ceb8f9374 --- /dev/null +++ b/old-games-no-longer-used/DayOfDefeatSource/cfg/lgsm-default.cfg @@ -0,0 +1,38 @@ +// Server Name +hostname "" + +// RCON Password +rcon_password "" + +// Server Password +sv_password "" + +// Server Logging +log on +sv_logbans 1 +sv_logecho 1 +sv_logfile 1 +sv_log_onefile 0 + +// disable autoaim +sv_aim 0 + +// disable clients' ability to pause the server +pausable 0 + +// maximum client movement speed +sv_maxspeed 320 + +// 20 minute timelimit +mp_timelimit 20 + +// cheats off +sv_cheats 0 + +// load ban files +exec listip.cfg +exec banned.cfg + + + + diff --git a/DayOfDefeatSource/dodsserver b/old-games-no-longer-used/DayOfDefeatSource/dodsserver similarity index 100% rename from DayOfDefeatSource/dodsserver rename to old-games-no-longer-used/DayOfDefeatSource/dodsserver diff --git a/old-games-no-longer-used/DeathmatchClassic/cfg/lgsm-default.cfg b/old-games-no-longer-used/DeathmatchClassic/cfg/lgsm-default.cfg new file mode 100644 index 000000000..585afb9e2 --- /dev/null +++ b/old-games-no-longer-used/DeathmatchClassic/cfg/lgsm-default.cfg @@ -0,0 +1,35 @@ +// Server Name +hostname "" + +// RCON Password +rcon_password "" + +// Server Password +sv_password "" + +// Server Logging +log on +sv_logbans 1 +sv_logecho 1 +sv_logfile 1 +sv_log_onefile 0 + +// disable autoaim +sv_aim 0 + +// disable clients' ability to pause the server +pausable 0 + +// maximum client movement speed +sv_maxspeed 320 + +// 20 minute timelimit +mp_timelimit 20 + +// cheats off +sv_cheats 0 + +// load ban files +exec listip.cfg +exec banned.cfg + diff --git a/DeathmatchClassic/dmcserver b/old-games-no-longer-used/DeathmatchClassic/dmcserver similarity index 100% rename from DeathmatchClassic/dmcserver rename to old-games-no-longer-used/DeathmatchClassic/dmcserver diff --git a/Insurgency/lgsm/dependencies/libc.so.6 b/old-games-no-longer-used/DontStarveTogether/dependencies/libc.so.6 similarity index 100% rename from Insurgency/lgsm/dependencies/libc.so.6 rename to old-games-no-longer-used/DontStarveTogether/dependencies/libc.so.6 diff --git a/GarrysMod/dependencies/libpthread.so.0 b/old-games-no-longer-used/DontStarveTogether/dependencies/libpthread.so.0 similarity index 100% rename from GarrysMod/dependencies/libpthread.so.0 rename to old-games-no-longer-used/DontStarveTogether/dependencies/libpthread.so.0 diff --git a/Insurgency/lgsm/dependencies/librt.so.1 b/old-games-no-longer-used/DontStarveTogether/dependencies/librt.so.1 similarity index 100% rename from Insurgency/lgsm/dependencies/librt.so.1 rename to old-games-no-longer-used/DontStarveTogether/dependencies/librt.so.1 diff --git a/DontStarveTogether/dstserver b/old-games-no-longer-used/DontStarveTogether/dstserver similarity index 100% rename from DontStarveTogether/dstserver rename to old-games-no-longer-used/DontStarveTogether/dstserver diff --git a/DontStarveTogether/lgsm-default.ini b/old-games-no-longer-used/DontStarveTogether/lgsm-default.ini similarity index 100% rename from DontStarveTogether/lgsm-default.ini rename to old-games-no-longer-used/DontStarveTogether/lgsm-default.ini diff --git a/old-games-no-longer-used/DoubleActionBoogaloo/cfg/lgsm-default.cfg b/old-games-no-longer-used/DoubleActionBoogaloo/cfg/lgsm-default.cfg new file mode 100644 index 000000000..c2b66dcbc --- /dev/null +++ b/old-games-no-longer-used/DoubleActionBoogaloo/cfg/lgsm-default.cfg @@ -0,0 +1,15 @@ +// Server Name +hostname "" + +// RCON Password +rcon_password "" + +// Server Password +sv_password "" + +// Server Logging +log on +sv_logbans 1 +sv_logecho 1 +sv_logfile 1 +sv_log_onefile 0 \ No newline at end of file diff --git a/DoubleActionBoogaloo/dabserver b/old-games-no-longer-used/DoubleActionBoogaloo/dabserver similarity index 100% rename from DoubleActionBoogaloo/dabserver rename to old-games-no-longer-used/DoubleActionBoogaloo/dabserver diff --git a/FistfulOfFrags/dependencies/libm.so.6 b/old-games-no-longer-used/DoubleActionBoogaloo/dependencies/libm.so.6 similarity index 100% rename from FistfulOfFrags/dependencies/libm.so.6 rename to old-games-no-longer-used/DoubleActionBoogaloo/dependencies/libm.so.6 diff --git a/old-games-no-longer-used/FistfulOfFrags/cfg/lgsm-default.cfg b/old-games-no-longer-used/FistfulOfFrags/cfg/lgsm-default.cfg new file mode 100644 index 000000000..81d9929fc --- /dev/null +++ b/old-games-no-longer-used/FistfulOfFrags/cfg/lgsm-default.cfg @@ -0,0 +1,124 @@ +// **************************************************************************** +// * +// Fistful of Frags - server.cfg * +// Version 100116 * +// * +// **************************************************************************** + +// ............................. Basic Settings ............................. // + +// Hostname for server. +hostname "" + +// RCON - remote console password. +rcon_password "" + +// Server password - for private servers. +sv_password "" + +// Contact email for server sysop. +sv_contact "email@example.com" + +// LAN Mode - If set the server will not show on the internet. +// Default: sv_lan 0 +sv_lan 0 + +// ............................... Map Cycles ............................... // +// info: There are several predefined mapcycles available that are listed below. +// You can also create your own custom mapcycle. + +// "mapcycle.txt" - All Shootout/2 Team Shootout/4 Team Shootout maps +// "mapcycle_12.txt" - All 12 slot maps for Shootout/2 Team Shootout/4 Team Shootout +// "mapcycle_32.txt" - All 32 slot maps for Shootout/2 Team Shootout/4 Team Shootout +// "mapcycle_tp.txt" - All Teamplay maps +// "mapcycle_gt.txt" - All Ghost Town maps +mapcyclefile "mapcycle.txt" + +// ....................... Time Limits/Round Settings ....................... // + +// Time spend on a single map (in minutes) before switching to a new one automatically. +// Default: mp_timelimit 0 +mp_timelimit 15 + +// ........................ Game Specific Commands ........................ // +// info: any commands that only apply to this game. + +// Game Modes +// 1 = Shootout/2 Team Shootout/4 Team Shootout/Ghost Town +// 2 = Teamplay +// 3 = Break Bad +// 4 = Elimination +fof_sv_currentmode 1 + +// Teamplay +// 0 = Free-for-all +// 1 = Team Deathmatch +mp_teamplay 0 + +// Team numbers +// 2 = Vigilantes & Desperados +// 3 = Vigilantes, Desperados & Bandidos +// 4 = Vigilantes, Desperados, Bandidos & Rangers +fof_sv_maxteams 4 + +// Friendly fire - Allows team members to injure other members of their team. +// 0 = Friendly fire disabled +// 1 = Friendly fire enabled +mp_friendlyfire 0 + +// ............................. Communication ............................. // + +// Enable communication over voice via microphone. +// Default: sv_voiceenable 1 +sv_voiceenable 1 + +// Players can hear all other players, no team restrictions. +// Default: sv_alltalk 0 +sv_alltalk 1 + +// ............................. Fast Download .............................. // +// info: Allows custom maps to be downloaded to the client. + +// Allows clients to download custom maps and textures etc. from the server at 20 kbps. +// Default: sv_allowdownload 1 +sv_allowdownload 1 + +// Allows clients to download custom maps, textures etc. from a web server with no transfer limit. +// Example: +// server location: maps/custommap.bsp +// web server location: http://example.com/custom/maps/custommap.bsp +// sv_downloadurl "http://example.com/custom" +// Default: sv_downloadurl "" +sv_downloadurl "" + +// ................................ Ban List ............................... // + +// personal banlist based on user IDs. +exec banned_user.cfg + +// personal banlist based on user IPs. +exec banned_ip.cfg + +writeid +writeip + +// ............................. Server Logging ............................. // + +//Enables logging to file, console, and udp < on | off >. +log on + +// Log server bans in the server logs. +// Default: sv_logbans 1 +sv_logbans 1 + +// Echo log information to the console. +// Default: sv_logecho 1 +sv_logecho 1 + +// Log server information in the log file. +// Default: sv_logfile 1 +sv_logfile 1 + +// Log server information to only one file. +// Default: sv_log_onefile 0 +sv_log_onefile 0 \ No newline at end of file diff --git a/Insurgency/lgsm/dependencies/libm.so.6 b/old-games-no-longer-used/FistfulOfFrags/dependencies/libm.so.6 similarity index 100% rename from Insurgency/lgsm/dependencies/libm.so.6 rename to old-games-no-longer-used/FistfulOfFrags/dependencies/libm.so.6 diff --git a/FistfulOfFrags/fofserver b/old-games-no-longer-used/FistfulOfFrags/fofserver similarity index 100% rename from FistfulOfFrags/fofserver rename to old-games-no-longer-used/FistfulOfFrags/fofserver diff --git a/GarrysMod/addons.sh b/old-games-no-longer-used/GarrysMod/addons.sh similarity index 100% rename from GarrysMod/addons.sh rename to old-games-no-longer-used/GarrysMod/addons.sh diff --git a/old-games-no-longer-used/GarrysMod/cfg/lgsm-default.cfg b/old-games-no-longer-used/GarrysMod/cfg/lgsm-default.cfg new file mode 100644 index 000000000..2e61eb6a2 --- /dev/null +++ b/old-games-no-longer-used/GarrysMod/cfg/lgsm-default.cfg @@ -0,0 +1,86 @@ +// Server Name +hostname "" + +// RCON Password +rcon_password "" + +// Server Password +sv_password "" + +// Server Logging +log on +sv_logbans 1 +sv_logecho 1 +sv_logfile 1 +sv_log_onefile 0 +lua_log_sv 0 + +sv_rcon_banpenalty 0 +sv_rcon_maxfailures 20 +sv_rcon_minfailures 20 +sv_rcon_minfailuretime 20 + +// Network Settings +sv_downloadurl "" +sv_loadingurl "" +net_maxfilesize 64 +sv_maxrate 40000 +sv_minrate 40000 +sv_maxupdaterate 66 +sv_minupdaterate 10 +sv_maxcmdrate 60 +sv_mincmdrate 10 + +// Server Settings +sv_airaccelerate 100 +sv_gravity 600 +sv_allow_wait_command 0 +sv_allow_voice_from_file 0 +sv_turbophysics 0 +sv_max_usercmd_future_ticks 12 +gmod_physiterations 2 +sv_client_min_interp_ratio 1 +sv_client_max_interp_ratio 2 +think_limit 20 +sv_region 0 +sv_noclipspeed 5 +sv_noclipaccelerate 5 +sv_lan 0 +sv_alltalk 1 +sv_contact youremail@changeme.com +sv_cheats 0 +sv_allowcslua 0 +sv_pausable 0 +sv_filterban 1 +sv_forcepreload 1 +sv_footsteps 1 +sv_voiceenable 1 +sv_voicecodec vaudio_speex +sv_timeout 120 +sv_deltaprint 0 +sv_allowupload 0 +sv_allowdownload 0 + +// Sandbox Settings +sbox_noclip 0 +sbox_godmode 0 +sbox_weapons 0 +sbox_playershurtplayers 0 +sbox_maxprops 100 +sbox_maxragdolls 50 +sbox_maxnpcs 10 +sbox_maxballoons 10 +sbox_maxeffects 0 +sbox_maxdynamite 0 +sbox_maxlamps 5 +sbox_maxthrusters 20 +sbox_maxwheels 20 +sbox_maxhoverballs 20 +sbox_maxvehicles 1 +sbox_maxbuttons 20 +sbox_maxemitters 0 + +// Misc Config +exec banned_user.cfg +exec banned_ip.cfg +heartbeat diff --git a/NS2Combat/dependencies/libc.so.6 b/old-games-no-longer-used/GarrysMod/dependencies/libc.so.6 similarity index 100% rename from NS2Combat/dependencies/libc.so.6 rename to old-games-no-longer-used/GarrysMod/dependencies/libc.so.6 diff --git a/old-games-no-longer-used/GarrysMod/dependencies/libm.so.6 b/old-games-no-longer-used/GarrysMod/dependencies/libm.so.6 new file mode 100644 index 0000000000000000000000000000000000000000..2f0eb4672dc56cbb9439a7f4deff7cae6e96500a GIT binary patch literal 173576 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