info_config.sh 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456
  1. #!/bin/bash
  2. # LGSM info_config.sh function
  3. # Author: Daniel Gibbs
  4. # Contributor: UltimateByte
  5. # Website: https://gameservermanagers.com
  6. # Description: Gets specific details from config files.
  7. local function_selfname="$(basename $(readlink -f "${BASH_SOURCE[0]}"))"
  8. ## Examples of filtering to get info from config files
  9. # sed 's/foo//g' - remove foo
  10. # tr -cd '[:digit:]' leave only digits
  11. # tr -d '=\"; ' remove selected characters =\";
  12. # grep -v "foo" filter out lines that contain foo
  13. unavailable="${red}UNAVAILABLE${default}"
  14. zero="${red}0${default}"
  15. fn_info_config_avalanche(){
  16. if [ ! -f "${servercfgfullpath}" ]; then
  17. servername="${unavailable}"
  18. serverpassword="${unavailable}"
  19. slots="${zero}"
  20. port="${zero}"
  21. else
  22. servername=$(grep "Name" "${servercfgfullpath}" | sed 's/Name//g' | tr -d '=", \n')
  23. serverpassword=$(grep "Password" "${servercfgfullpath}" | sed 's/Password//g' | tr -d '=", \n')
  24. slots=$(grep "MaxPlayers" "${servercfgfullpath}" | tr -cd '[:digit:]')
  25. port=$(grep "BindPort" "${servercfgfullpath}" | tr -cd '[:digit:]')
  26. # Not Set
  27. servername=${servername:-"NOT SET"}
  28. serverpassword=${serverpassword:-"NOT SET"}
  29. slots=${slots:-"0"}
  30. port=${port:-"0"}
  31. # check if the ip exists in the config file. Failing this will fall back to the default.
  32. ipconfigcheck=$(grep "BindIP" "${servercfgfullpath}" | sed 's/BindIP//g' | tr -d '=", \n')
  33. if [ -n "${ipconfigcheck}" ]; then
  34. ip="${ipconfigcheck}"
  35. fi
  36. fi
  37. }
  38. fn_info_config_dontstarve(){
  39. if [ ! -f "${servercfgfullpath}" ]; then
  40. servername="${unavailable}"
  41. serverpassword="${unavailable}"
  42. slots="${zero}"
  43. gamemode="${unavailable}"
  44. tickrate="${zero}"
  45. port="${zero}"
  46. else
  47. servername=$(grep "default_server_name = " "${servercfgfullpath}" | sed 's/default_server_name = //g')
  48. serverpassword=$(grep "server_password = " "${servercfgfullpath}" | grep -v "#" | sed 's/server_password = //g')
  49. slots=$(grep "max_players" "${servercfgfullpath}" | grep -v "#" | tr -cd '[:digit:]')
  50. gamemode=$(grep "game_mode = " "${servercfgfullpath}" | grep -v "#" | sed 's/game_mode = //g')
  51. tickrate=$(grep "tick_rate" "${servercfgfullpath}" | grep -v "#" | tr -cd '[:digit:]')
  52. port=$(grep "server_port" "${servercfgfullpath}" | grep -v "#" | tr -cd '[:digit:]')
  53. # Not Set
  54. servername=${servername:-"NOT SET"}
  55. serverpassword=${serverpassword:-"NOT SET"}
  56. slots=${slots:-"0"}
  57. gamemode=${gamemode:-"NOT SET"}
  58. tickrate=${tickrate:-"0"}
  59. port=${port:-"0"}
  60. fi
  61. }
  62. fn_info_config_minecraft(){
  63. if [ ! -f "${servercfgfullpath}" ]; then
  64. servername="${unavailable}"
  65. rconpassword="${unavailable}"
  66. rconport="${zero}"
  67. slots="${zero}"
  68. port="${zero}"
  69. gamemode="${zero}"
  70. gameworld="${unavailable}"
  71. else
  72. # check if the ip exists in the config file. Failing this will fall back to the default.
  73. ipconfigcheck=$(grep "server-ip=" "${servercfgfullpath}" | sed 's/server-ip=//g')
  74. if [ -n "${ipconfigcheck}" ]; then
  75. ip="${ipconfigcheck}"
  76. fi
  77. servername=$(grep "motd=" "${servercfgfullpath}" | sed 's/motd=//g' | tr -d '=\";' | sed 's/\\n.*//g')
  78. rconpassword=$(grep "rcon.password=" "${servercfgfullpath}" | sed 's/rcon.password=//g' | tr -d '=\"; ')
  79. rconport=$(grep "rcon.port=" "${servercfgfullpath}" | tr -cd '[:digit:]')
  80. slots=$(grep "max-players=" "${servercfgfullpath}" | tr -cd '[:digit:]')
  81. port=$(grep "server-port=" "${servercfgfullpath}" | tr -cd '[:digit:]')
  82. gamemode=$(grep "gamemode=" "${servercfgfullpath}" | tr -cd '[:digit:]')
  83. gameworld=$(grep "level-name=" "${servercfgfullpath}" | sed 's/level-name=//g' | tr -d '=\"; ')
  84. # Not Set
  85. servername=${servername:-"NOT SET"}
  86. rconpassword=${rconpassword:-"NOT SET"}
  87. rconport=${rconport:-"NOT SET"}
  88. slots=${slots:-"NOT SET"}
  89. port=${port:-"NOT SET"}
  90. gamemode=${gamemode:-"NOT SET"}
  91. gameworld=${gameworld:-"NOT SET"}
  92. fi
  93. }
  94. fn_info_config_projectzomboid(){
  95. if [ ! -f "${servercfgfullpath}" ]; then
  96. servername="${unavailable}"
  97. serverpassword="${unavailable}"
  98. rconpassword="${unavailable}"
  99. slots="${zero}"
  100. port="${zero}"
  101. gameworld="${unavailable}"
  102. else
  103. servername=$(grep "PublicName=" "${servercfgfullpath}" | sed 's/PublicName=//g' | tr -d '=\";\n')
  104. serverpassword=$(grep "^Password=$" "${servercfgfullpath}" | sed 's/Password=//g' | tr -d '=\"; ')
  105. rconpassword=$(grep "RCONPassword=" "${servercfgfullpath}" | sed 's/RCONPassword=//g' | tr -d '=\"; ')
  106. slots=$(grep "MaxPlayers=" "${servercfgfullpath}" | grep -v "#" | tr -cd '[:digit:]')
  107. port=$(grep "DefaultPort=" "${servercfgfullpath}" | tr -cd '[:digit:]')
  108. gameworld=$(grep "Map=" "${servercfgfullpath}" | sed 's/Map=//g' | tr -d '\n')
  109. # Not Set
  110. servername=${servername:-"NOT SET"}
  111. serverpassword=${serverpassword:-"NOT SET"}
  112. rconpassword=${rconpassword:-"NOT SET"}
  113. slots=${slots:-"NOT SET"}
  114. port=${port:-"NOT SET"}
  115. gameworld=${gameworld:-"NOT SET"}
  116. fi
  117. }
  118. fn_info_config_idtech3(){
  119. if [ ! -f "${servercfgfullpath}" ]; then
  120. servername="${unavailable}"
  121. serverpassword="${unavailable}"
  122. slots="${zero}"
  123. else
  124. servername=$(grep "set sv_hostname " "${servercfgfullpath}" | sed 's/set sv_hostname //g' | tr -d '=\"; ')
  125. serverpassword=$(grep "set g_password" "${servercfgfullpath}" | sed 's/set g_password//g' | tr -d '=\"; '| cut -f1 -d "/")
  126. slots=$(grep "set sv_maxClients" "${servercfgfullpath}" | grep -v "#" | tr -cd '[:digit:]')
  127. # Not Set
  128. servername=${servername:-"NOT SET"}
  129. serverpassword=${serverpassword:-"NOT SET"}
  130. slots=${slots:-"0"}
  131. fi
  132. }
  133. fn_info_config_realvirtuality(){
  134. if [ ! -f "${servercfgfullpath}" ]; then
  135. servername="${unavailable}"
  136. adminpassword="${unavailable}"
  137. serverpassword="${unavailable}"
  138. slots="${zero}"
  139. else
  140. servername=$(grep "hostname" "${servercfgfullpath}" | grep -v "//" | awk -F '"' '{print $2}')
  141. adminpassword=$(grep "passwordAdmin" "${servercfgfullpath}" | grep -v "//" | sed 's/\passwordAdmin//g' | tr -d '=\"; ')
  142. serverpassword=$(grep "password =" "${servercfgfullpath}" | grep -v "//" | sed 's/\password//g' | tr -d '=\"; ')
  143. slots=$(grep "maxPlayers" "${servercfgfullpath}" | grep -v "#" | tr -cd '[:digit:]')
  144. # Not Set
  145. servername=${servername:-"NOT SET"}
  146. adminpassword=${adminpassword:-"NOT SET"}
  147. serverpassword=${serverpassword:-"NOT SET"}
  148. slots=${slots:-"0"}
  149. fi
  150. }
  151. fn_info_config_seriousengine35(){
  152. if [ ! -f "${servercfgfullpath}" ]; then
  153. servername="${unavailable}"
  154. rconpassword="${unavailable}"
  155. gamemode="${unavailable}"
  156. slots="${zero}"
  157. port="${zero}"
  158. else
  159. servername=$(grep "prj_strMultiplayerSessionName" "${servercfgfullpath}" | sed 's/prj_strMultiplayerSessionName = //g' | tr -d '=\"; ')
  160. rconpassword=$(grep "rcts_strAdminPassword" "${servercfgfullpath}" | sed 's/rcts_strAdminPassword = //g' | tr -d '=\"; ')
  161. gamemode=$(grep "gam_idGameMode" "${servercfgfullpath}" | grep -v "#" | sed 's/gam_idGameMode//g' | tr -d '=\"; ')
  162. slots=$(grep "gam_ctMaxPlayers" "${servercfgfullpath}" | grep -v "#" | tr -cd '[:digit:]')
  163. port=$(grep "prj_uwPort" "${servercfgfullpath}" | tr -d '\r' | tr -cd '[:digit:]')
  164. # Not Set
  165. servername=${servername:-"NOT SET"}
  166. rconpassword=${rconpassword:-"NOT SET"}
  167. gamemode=${gamemode:-"NOT SET"}
  168. slots=${slots:-"0"}
  169. port=${port:-"0"}
  170. fi
  171. }
  172. fn_info_config_source(){
  173. if [ ! -f "${servercfgfullpath}" ]; then
  174. servername="${unavailable}"
  175. serverpassword="${unavailable}"
  176. rconpassword="${unavailable}"
  177. else
  178. servername=$(grep "hostname" "${servercfgfullpath}" | sed 's/hostname //g' | sed 's/"//g')
  179. serverpassword=$(grep "sv_password" "${servercfgfullpath}" | sed 's/sv_password //g' | sed 's/"//g')
  180. rconpassword=$(grep "rcon_password" "${servercfgfullpath}" | sed 's/rcon_password //g' | sed 's/"//g')
  181. # Not Set
  182. servername=${servername:-"NOT SET"}
  183. serverpassword=${serverpassword:-"NOT SET"}
  184. rconpassword=${rconpassword:-"NOT SET"}
  185. fi
  186. }
  187. fn_info_config_starbound(){
  188. if [ ! -f "${servercfgfullpath}" ]; then
  189. servername="${unavailable}"
  190. rconpassword="${unavailable}"
  191. port="21025"
  192. queryport="21025"
  193. rconport="21026"
  194. slots="8"
  195. else
  196. servername=$(grep "serverName" "${servercfgfullpath}" | sed 's/"serverName" \: //g' | grep -oP '"\K[^"]+(?=["])')
  197. rconpassword=$(grep "rconServerPassword" "${servercfgfullpath}" | sed 's/"rconServerPassword" \: //g' | grep -oP '"\K[^"]+(?=["])')
  198. port=$(grep "gameServerPort" "${servercfgfullpath}" | tr -cd '[:digit:]')
  199. queryport=$(grep "queryServerPort" "${servercfgfullpath}" | tr -cd '[:digit:]')
  200. rconport=$(grep "rconServerPort" "${servercfgfullpath}" | tr -cd '[:digit:]')
  201. slots=$(grep "maxPlayers" "${servercfgfullpath}" | tr -cd '[:digit:]')
  202. # Not Set
  203. servername=${servername:-"NOT SET"}
  204. rconpassword=${rconpassword:-"NOT SET"}
  205. port=${port:-"21025"}
  206. queryport=${queryport:-"21025"}
  207. rconport=${rconport:-"21026"}
  208. slots=${slots:-"8"}
  209. fi
  210. }
  211. fn_info_config_teamspeak3(){
  212. if [ ! -f "${servercfgfullpath}" ]; then
  213. dbplugin="${unavailable}"
  214. port="9987"
  215. queryport="10011"
  216. fileport="30033"
  217. else
  218. # check if the ip exists in the config file. Failing this will fall back to the default.
  219. ipconfigcheck=$(grep "voice_ip=" "${servercfgfullpath}" | sed 's/voice_ip=//g')
  220. if [ -n "${ipconfigcheck}" ]; then
  221. ip="${ipconfigcheck}"
  222. fi
  223. dbplugin=$(grep "dbplugin=" "${servercfgfullpath}" | sed 's/dbplugin=//g')
  224. port=$(grep "default_voice_port=" "${servercfgfullpath}" | tr -cd '[:digit:]')
  225. queryport=$(grep "query_port=" "${servercfgfullpath}" | tr -cd '[:digit:]')
  226. fileport=$(grep "filetransfer_port=" "${servercfgfullpath}" | tr -cd '[:digit:]')
  227. # Not Set
  228. port=${port:-"9987"}
  229. queryport=${queryport:-"10011"}
  230. fileport=${fileport:-"30033"}
  231. fi
  232. }
  233. fn_info_config_mumble(){
  234. if [ ! -f "${servercfgfullpath}" ]; then
  235. port="64738"
  236. queryport="${port}"
  237. servername="Mumble"
  238. else
  239. # check if the ip exists in the config file. Failing this will fall back to the default.
  240. ipconfigcheck=$(cat "${servercfgfullpath}" | grep "host=" | awk -F'=' '{ print $2}')
  241. if [ -n "${ipconfigcheck}" ]; then
  242. ip="${ipconfigcheck}"
  243. fi
  244. port=$(cat "${servercfgfullpath}" | grep 'port=' | awk -F'=' '{ print $2 }')
  245. queryport="${port}"
  246. # Not Set
  247. port=${port:-"64738"}
  248. queryport=${queryport:-"64738"}
  249. servername="Mumble Port ${port}"
  250. fi
  251. }
  252. fn_info_config_teeworlds(){
  253. if [ ! -f "${servercfgfullpath}" ]; then
  254. servername="unnamed server"
  255. serverpassword="${unavailable}"
  256. rconpassword="${unavailable}"
  257. port="8303"
  258. slots="12"
  259. else
  260. servername=$(grep "sv_name" "${servercfgfullpath}" | sed 's/sv_name //g' | sed 's/"//g')
  261. serverpassword=$(grep "password " "${servercfgfullpath}" | awk '!/sv_rcon_password/'| sed 's/password //g' | tr -d '=\"; ')
  262. rconpassword=$(grep "sv_rcon_password" "${servercfgfullpath}" | sed 's/sv_rcon_password //g' | tr -d '=\"; ')
  263. port=$(grep "sv_port" "${servercfgfullpath}" | tr -cd '[:digit:]')
  264. slots=$(grep "sv_max_clients" "${servercfgfullpath}" | tr -cd '[:digit:]')
  265. # Not Set
  266. servername=${servername:-"NOT SET"}
  267. serverpassword=${serverpassword:-"NOT SET"}
  268. rconpassword=${rconpassword:-"NOT SET"}
  269. port=${port:-"8303"}
  270. slots=${slots:-"12"}
  271. fi
  272. }
  273. fn_info_config_terraria(){
  274. if [ ! -f "${servercfgfullpath}" ]; then
  275. servername="${unavailable}"
  276. port="${zero}"
  277. gameworld="${unavailable}"
  278. slots="${zero}"
  279. else
  280. servername=$(grep "worldname=" "${servercfgfullpath}" | sed 's/worldname=//g')
  281. port=$(grep "port=" "${servercfgfullpath}" | tr -cd '[:digit:]')
  282. gameworld=$(grep "world=" "${servercfgfullpath}" | sed 's/world=//g')
  283. slots=$(grep "maxplayers=" "${servercfgfullpath}" | sed 's/maxplayers=//g')
  284. # Not Set
  285. servername=${servername:-"NOT SET"}
  286. port=${port:-"0"}
  287. gameworld=${gameworld:-"NOT SET"}
  288. slots=${slots:-"0"}
  289. fi
  290. }
  291. fn_info_config_unreal(){
  292. if [ ! -f "${servercfgfullpath}" ]; then
  293. servername="${unavailable}"
  294. serverpassword="${unavailable}"
  295. adminpassword="${unavailable}"
  296. port="${zero}"
  297. gsqueryport="${zero}"
  298. webadminenabled="${unavailable}"
  299. webadminport="${zero}"
  300. webadminuser="${unavailable}"
  301. webadminpass="${unavailable}"
  302. else
  303. servername=$(grep "ServerName=" "${servercfgfullpath}" | sed 's/ServerName=//g')
  304. serverpassword=$(grep "GamePassword=" "${servercfgfullpath}" | sed 's/GamePassword=//g')
  305. adminpassword=$(grep "AdminPassword=" "${servercfgfullpath}" | sed 's/AdminPassword=//g')
  306. port=$(grep "Port=" "${servercfgfullpath}" | grep -v "Master" | grep -v "LAN" | grep -v "Proxy" | grep -v "Listen" | tr -d '\r' | tr -cd '[:digit:]')
  307. gsqueryport=$(grep "OldQueryPortNumber=" "${servercfgfullpath}" | tr -d '\r' | tr -cd '[:digit:]')
  308. webadminenabled=$(grep "bEnabled=" "${servercfgfullpath}" | sed 's/bEnabled=//g' | tr -d '\r')
  309. webadminport=$(grep "ListenPort=" "${servercfgfullpath}" | tr -d '\r' | tr -cd '[:digit:]')
  310. if [ "${engine}" == "unreal" ]; then
  311. webadminuser=$(grep "AdminUsername=" "${servercfgfullpath}" | sed 's/AdminUsername=//g')
  312. webadminpass=$(grep "UTServerAdmin.UTServerAdmin" "${servercfgfullpath}" -A 2 | grep "AdminPassword=" | sed 's/AdminPassword=//g')
  313. else
  314. webadminuser=$(grep "AdminName=" "${servercfgfullpath}" | sed 's/AdminName=//g')
  315. webadminpass="${adminpassword}"
  316. fi
  317. # Not Set
  318. servername=${servername:-"NOT SET"}
  319. serverpassword=${serverpassword:-"NOT SET"}
  320. adminpassword=${adminpassword:-"NOT SET"}
  321. port=${port:-"0"}
  322. gsqueryport=${gsqueryport:-"0"}
  323. webadminenabled=${webadminenabled:-"NOT SET"}
  324. webadminport=${webadminport:-"0"}
  325. webadminuser=${webadminuser:-"NOT SET"}
  326. webadminpass=${webadminpass:-"NOT SET"}
  327. fi
  328. }
  329. fn_info_config_sdtd(){
  330. if [ ! -f "${servercfgfullpath}" ]; then
  331. servername="${unavailable}"
  332. serverpassword="${unavailable}"
  333. port="${zero}"
  334. queryport="${zero}"
  335. webadminenabled="${unavailable}"
  336. webadminport="${zero}"
  337. webadminpass="${unavailable}"
  338. telnetenabled="${unavailable}"
  339. telnetport="${zero}"
  340. telnetpass="${unavailable}"
  341. slots="${unavailable}"
  342. gamemode="${unavailable}"
  343. gameworld="${unavailable}"
  344. else
  345. servername=$(grep "ServerName" "${servercfgfullpath}" | sed 's/^.*value="//' | cut -f1 -d"\"")
  346. serverpassword=$(grep "ServerPassword" "${servercfgfullpath}" | sed 's/^.*value="//' | cut -f1 -d"\"")
  347. port=$(grep "ServerPort" "${servercfgfullpath}" | tr -cd '[:digit:]')
  348. queryport=$((port + 1))
  349. webadminenabled=$(grep "ControlPanelEnabled" "${servercfgfullpath}" | sed 's/^.*value="//' | cut -f1 -d"\"")
  350. webadminport=$(grep "ControlPanelPort" "${servercfgfullpath}" | tr -cd '[:digit:]')
  351. webadminpass=$(grep "ControlPanelPassword" "${servercfgfullpath}" | sed 's/^.*value="//' | cut -f1 -d"\"")
  352. telnetenabled=$(grep "TelnetEnabled" "${servercfgfullpath}" | sed 's/^.*value="//' | cut -f1 -d"\"")
  353. telnetport=$(grep "TelnetPort" "${servercfgfullpath}" | tr -cd '[:digit:]')
  354. telnetpass=$(grep "TelnetPassword" "${servercfgfullpath}" | sed 's/^.*value="//' | cut -f1 -d"\"")
  355. slots=$(grep "ServerMaxPlayerCount" "${servercfgfullpath}" | tr -cd '[:digit:]')
  356. gamemode=$(grep "GameMode" "${servercfgfullpath}" | sed 's/^.*value="//' | cut -f1 -d"\"")
  357. gameworld=$(grep "GameWorld" "${servercfgfullpath}" | sed 's/^.*value="//' | cut -f1 -d"\"")
  358. # Not Set
  359. servername=${servername:-"NOT SET"}
  360. serverpassword=${serverpassword:-"NOT SET"}
  361. port=${port:-"0"}
  362. queryport=${queryport:-"0"}
  363. webadminenabled=${webadminenabled:-"NOT SET"}
  364. webadminport=${webadminport:-"0"}
  365. webadminpass=${webadminpass:-"NOT SET"}
  366. telnetenabled=${telnetenabled:-"NOT SET"}
  367. telnetport=${telnetport:-"0"}
  368. telnetpass=${telnetpass:-"NOT SET"}
  369. slots=${slots:-"NOT SET"}
  370. gamemode=${gamemode:-"NOT SET"}
  371. gameworld=${gameworld:-"NOT SET"}
  372. fi
  373. }
  374. # Just Cause 2
  375. if [ "${engine}" == "avalanche" ]; then
  376. fn_info_config_avalanche
  377. # Dont Starve Together
  378. elif [ "${engine}" == "dontstarve" ]; then
  379. fn_info_config_dontstarve
  380. # Quake Love
  381. elif [ "${engine}" == "idtech3" ]; then
  382. fn_info_config_idtech3
  383. # Minecraft
  384. elif [ "${engine}" == "lwjgl2" ]; then
  385. fn_info_config_minecraft
  386. # Project Zomboid
  387. elif [ "${engine}" == "projectzomboid" ]; then
  388. fn_info_config_projectzomboid
  389. # ARMA 3
  390. elif [ "${engine}" == "realvirtuality" ]; then
  391. fn_info_config_realvirtuality
  392. # Serious Sam
  393. elif [ "${engine}" == "seriousengine35" ]; then
  394. fn_info_config_seriousengine35
  395. # Source Engine Games
  396. elif [ "${engine}" == "source" ]||[ "${engine}" == "goldsource" ]; then
  397. fn_info_config_source
  398. # Starbound
  399. elif [ "${engine}" == "starbound" ]; then
  400. fn_info_config_starbound
  401. # TeamSpeak 3
  402. elif [ "${gamename}" == "TeamSpeak 3" ]; then
  403. fn_info_config_teamspeak3
  404. elif [ "${gamename}" == "Mumble" ]; then
  405. fn_info_config_mumble
  406. # Teeworlds
  407. elif [ "${engine}" == "teeworlds" ]; then
  408. fn_info_config_teeworlds
  409. # Terraria
  410. elif [ "${engine}" == "terraria" ]; then
  411. fn_info_config_terraria
  412. # Unreal/Unreal 2 engine
  413. elif [ "${engine}" == "unreal" ]||[ "${engine}" == "unreal2" ]; then
  414. fn_info_config_unreal
  415. # 7 Day To Die (unity3d)
  416. elif [ "${gamename}" == "7 Days To Die" ]; then
  417. fn_info_config_sdtd
  418. fi