diff --git a/gamedata/README.md b/gamedata/README.md new file mode 100644 index 000000000..50f12d257 --- /dev/null +++ b/gamedata/README.md @@ -0,0 +1,102 @@ +# Game Data Files +## General Info +These files are the proof of concept of my new method of supporting all the games LGSM covers. It's basically a hierarchial way to define three things: + * Script Parameters: These are things like executable, game name, local directories, and all the rest. + * Server Parameters: These are the command-line switches that we give to the actual game server daemon. There is a little bit of smarts around the Source and GoldSource parsers, we feed it "minus parameters" and "plus parameters", and it spits them out in a somewhat sane order. + * Server Settings: These are the items that go into _default.cfg for each game. They include the values for the two types of parameters, and are overridden hierarchially by sourcing _default.cfg, then _common.cfg, then $instance.cfg from the cfg/servers directory. +The gamedata files themselves use a few simple functions to do their magic. +## Functions +--- +### fn_flush_game_settings() +This function clears out all the collector files in $settingsdir (default is ${lgsmdir}/settings.tmp). It is run at every execution of the script right now, eventually the goal is to only regenerate these files when gamedata updates are pulled. +--- +### fn_import_game_settings() +This function takes one parameter, the name of the gamedata file to load. The main script calls it with the name of the main script file being called. With this method, the same "basic" script is used for all game servers, and we simply name it "insserver" or "csgoserver" for instance. Symlinks then pick up the main script to make this work for multiple-instance deployments. +In the gamedata files themselves, they are used to pull in other gamedata files. This is done in sequence, so it's usually best to do the import at the top of the file, and then overwrite. It is possible to import multiple files inside a single gamedata file, for instance include _source and _source_workshop to pull in Source engine sane defaults and the Workshop variables. Any "base" gamedata file (that is, not for a specific game) should be prefixed with a "_". The gamedata files for each engine should be named _${engine}. +--- +### fn_set_game_params() +Takes four parameters: + * param_set: The set of key-value pairs to update. You can create as many sets as you want, the only restriction is the set name must validate as a usable file name. For instance, I use parms_minus and parms_plus to separate the "-" and "+" parameters for the Server, and then I parse them in fn_parms() to assemble them. The reserved names are: + ** settings: which will be parsed into the values in cfg/servers/*.cfg + ** parms: Common name for server daemon parameters. Should have one key declared, also named "parms" which is a string of the command-line arguments to pass to the game server. + * param_name: The "key", this will be a Bash variable name so it should only be alphanumeric if you want to parse it. The parms_(minus|plus) files break this convention, as part of how we process them, but ideally they would all be able to be sourced and return the expectec values. + * param_value: The "default" to set the key to. Should be a single string, escape all quotes. If you want to reference a variable, use the \${varname} syntax, that way the actual value saved to that set will retain the variabe name, rather than interpolating. Special values are: + ** "--UNSET--" or "": the parser will REMOVE that key from the param_set. Useful if an engine usually has a certain parameter, but one specific game does not. This allows you to set the default in the engine gamedata file, and then just deletre it for the specific games that don't need it. + ** "--EMPTY--": This will set the value to "" (an empty string) and add it to the param set. This is useful for parameters that must be defined, but have no default value. + * param_comment: This is the comment to append at the end of the line. If overriding a key set earlier in the hierarchy, leaving this blank will reuse the original comment. If you want to delete the comment, use "--EMPTY--". +--- +### fn_parms() +This is the same old function from the original LGSM main scripts, the difference is we now have a "sane default" one in _default that just dumps params, and then each engine/game can get fancy if need be. This function gets overridden by the highest-ordered declaration, and for most games the default should be fine. The idea here is that we define flexible functions in each engine, and then allow the games to add/modify/delete keys in the data. +## Examples +This is an example of a gamedata file for the Widgets engine. We'll call it _widgets for the sake of argument: +```bash +# Import default settings +fn_import_game_settings _default + +# This is the way we create a script that collates and parses the parameters +fn_parms(){ + parms="$(echo $(sed -e 's/=\"/ /g' -e 's/\"$//g' ${settingsdir}/parms_minus)) ${srcds_parms} $(echo $(sed -e 's/=\"/ /g' -e 's/\"$//g' ${settingsdir}/parms_plus))" +} +# The parms that start with - go first +fn_set_game_params parms_minus "game" "\${game}" +fn_set_game_params parms_minus "strictportbind" "--EMPTY--" +fn_set_game_params parms_minus "ip" "\${ip}" +fn_set_game_params parms_minus "tickrate" "\${tickrate}" +fn_set_game_params parms_minus "port" "\${port}" + +# Then the parms that start with + +fn_set_game_params parms_plus "servercfgfile" "\${servercfg}" +fn_set_game_params parms_plus "map" "\${defaultmap}" + +# And the settings for defaults +fn_set_game_params settings "appid" "99999" "Steam App ID" +fn_set_game_params settings "defaultmap" "my_map" "Default map to load" +fn_set_game_params settings "engine" "widgets" "Game Engine" +fn_set_game_params settings "game" "widgets" "Name of game to pass to srcds" +fn_set_game_params settings "gamename" "widgets" "Name for subdirectory in GitHub repo" +fn_set_game_params settings "port" "99999" "Port to bind for server" +fn_set_game_params settings "servercfg" "\${selfname}.cfg" "Server Config file" +fn_set_game_params settings "steampass" "--EMPTY--" "Steam Password" +fn_set_game_params settings "steamuser" "anonymous" "Steam Username" + +# These are values that the script uses, they don't get used by the srcds server directly +fn_set_game_params settings "systemdir" "\${filesdir}/\${game}" +fn_set_game_params settings "gamelogdir" "\${systemdir}/logs" +fn_set_game_params settings "executabledir" "\${filesdir}" +fn_set_game_params settings "executable" "./widgets_server" +fn_set_game_params settings "servercfg" "\${servicename}.cfg" +fn_set_game_params settings "servercfgdir" "\${systemdir}/cfg" +fn_set_game_params settings "servercfgfullpath" "\${servercfgdir}/\${servercfg}" +fn_set_game_params settings "servercfgdefault" "\${servercfgdir}/lgsm-default.cfg" +``` +Then, we need a game! DooDads is the name of the game, and just imports the defaults from its engine. +```bash +# Import SRCDS +fn_import_game_settings _widgets + +# Delete tickrate parameter. This will remove it from the parameters, and remove it from _default.cfg +fn_set_game_params parms_minus "tickrate" "--UNSET--" +fn_set_game_params settings "tickrate" "--UNSET--" + +# Add playlist parameter +fn_set_game_params parms_plus "sv_playlist" "\${playlist}" + +# Override some server settings +fn_set_game_params settings "executable" "./doodads_server" +fn_set_game_params settings "appid" "100000" +fn_set_game_params settings "defaultmap" "special_map" +fn_set_game_params settings "game" "doodads" +fn_set_game_params settings "playlist" "custom" "Server Playlist" +fn_set_game_params settings "gamename" "DooDads" +``` +With this, we inherit everything from _widgets, but remove the tickrate setting, add playlist, and override some of the settings to make sure we install the right game via Steam. End users can then override the defaults in _connon.cfg and ${servicename}.cfg for doing things their own way. The script will keep the gamedata files in sync with GitHub, as of right now the _default.cfg is regenerated only when the $lgsm_version that created it differs from the script's $version. The next step is to only regenerate the settings files when the gamedata itself is updated, which would be much more efficient. +--- +## TODO + * [ ] Look into better handling of parms, especially with the "-" and "+" ordering in Source. + ** Perhaps put a "before" and "after" field in the parms, so we can do a little more complex ordering? + * [ ] Clean up gamedata files for all engines/games. + * [ ] When _default.cfg updates, read all other configs. Add in commented key/value/comment lines so that other configs have the keys and default values available. + * [ ] Add dependency installation for games, simple array of packages needed for debian,ubuntu,redhat for each game. + * [ ] Allow values to append or replace individual items, i.e. for dependencies layer on the needed packages from _default _engine and game data files. + * [ ] Parser should read the value and identify variable names, and make sure that this key is declared after those variables that the value references. + * [ ] Move insserver script (the POC common LGSM script) somewhere else to denote its new role diff --git a/gamedata/_avalanche b/gamedata/_avalanche index ca13bbd0f..3c6157842 100644 --- a/gamedata/_avalanche +++ b/gamedata/_avalanche @@ -1,43 +1,12 @@ # Game Settings File -# _srcds -# Base SRCDS Game +# _avalanche +# Avalanche Engine -systemdir="${filesdir}" -executabledir="${filesdir}" -executable="./Jcmp-Server" -servercfg="config.lua" -servercfgdir="${filesdir}" -servercfgfullpath="${servercfgdir}/${servercfg}" -servercfgdefault="${servercfgdir}/default_config.lua" -#gamelogdir="" # No server logs available - - - -# Import default settings fn_import_game_settings _default -# This is the way we create a script that collates and parses the parameters -fn_parms(){ - parms="$(echo $(sed -e 's/=\"/ /g' -e 's/\"$//g' ${settingsdir}/parms_minus)) ${srcds_parms} $(echo $(sed -e 's/=\"/ /g' -e 's/\"$//g' ${settingsdir}/parms_plus))" -} -# The parms that start with - go first -fn_set_game_params parms_minus "-game" "\${game}" -fn_set_game_params parms_minus "-strictportbind" "--EMPTY--" -fn_set_game_params parms_minus "-ip" "\${ip}" -fn_set_game_params parms_minus "-port" "\${port}" -fn_set_game_params parms_minus "-maxplayers" "\${maxplayers}" -fn_set_game_params parms_minus "-tickrate" "\${tickrate}" - -# Then the parms that start with + -fn_set_game_params parms_plus "+clientport" "\${clientport}" -fn_set_game_params parms_plus "+tv_port" "\${sourcetvport}" -fn_set_game_params parms_plus "+mapcyclefile" "\${mapcyclefile}" -fn_set_game_params parms_plus "+servercfgfile" "\${servercfg}" -fn_set_game_params parms_plus "+map" "\${defaultmap}" - # And the settings for defaults fn_set_game_params settings "engine" "avalanche" -fn_set_game_params settings "servercfg" "${selfname}.cfg" "Server Config file" +fn_set_game_params settings "servercfg" "config.lua" "Server Config file" fn_set_game_params settings "sourcetvport" "27020" "SourceTV Port" fn_set_game_params settings "srcds_parms" "--EMPTY--" "Additional SRCDS Parameters. Put the parameters that start with \"-\" first, then \"+\" parameters after" fn_set_game_params settings "steampass" "--EMPTY--" "Steam Password" @@ -45,12 +14,12 @@ fn_set_game_params settings "steamuser" "anonymous" "Steam Username" fn_set_game_params settings "tickrate" "64" "Server Tick Rate" # These are values that the script uses, they don't get used by the srcds server directly -fn_set_game_params settings "systemdir" "\${filesdir}/\${game}" -fn_set_game_params settings "gamelogdir" "\${systemdir}/logs" +fn_set_game_params settings "systemdir" "\${filesdir}" +fn_set_game_params settings "gamelogdir" "--EMPTY--" fn_set_game_params settings "executabledir" "\${filesdir}" -fn_set_game_params settings "executable" "./srcds_linux" -fn_set_game_params settings "servercfg" "\${servicename}.cfg" -fn_set_game_params settings "servercfgdir" "\${systemdir}/cfg" +fn_set_game_params settings "executable" "./Jcmp-Server" +fn_set_game_params settings "servercfg" "config.lua" +fn_set_game_params settings "servercfgdir" "\${filesdir}" fn_set_game_params settings "servercfgfullpath" "\${servercfgdir}/\${servercfg}" -fn_set_game_params settings "servercfgdefault" "\${servercfgdir}/lgsm-default.cfg" +fn_set_game_params settings "servercfgdefault" "\${servercfgdir}/default_config.lua" diff --git a/gamedata/_default b/gamedata/_default index 0616747c8..e5af7dced 100644 --- a/gamedata/_default +++ b/gamedata/_default @@ -3,24 +3,50 @@ # Base defaults for all games # Set the default settings for the script + +# 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" +fn_set_game_params settings "backupdir" "\${lgsmdir}/backups" "Backup Directory" +fn_set_game_params settings "defaultmap" "--EMPTY--" "Default map to load" fn_set_game_params settings "email" "email@example.com" "Email address for notification" +fn_set_game_params settings "emaillog" "\${scriptlogdir}/\${servicename}-email.log" "Email Log" fn_set_game_params settings "emailnotification" "off" "Email notification (on|off)" +fn_set_game_params settings "engine" "--EMPTY--" "Game Engine" +fn_set_game_params settings "filesdir" "\${rootdir}/serverfiles" "Server Files Directory" +fn_set_game_params settings "game" "--EMPTY--" "Name of game" +fn_set_game_params settings "gamename" "--EMPTY--" "Name for subdirectory in GitHub repo" fn_set_game_params settings "ip" "0.0.0.0" "IP Address to bind for server" fn_set_game_params settings "lgsm_version" "${version}" "Version of LGSM that created this config" +fn_set_game_params settings "lockselfname" "\${lgsmdir}/.\${servicename}.lock" "LGSM Lock File" fn_set_game_params settings "logdays" "7" "Number of days to retain logs" +fn_set_game_params settings "maxplayers" "--EMPTY--" "Maximum player count" +fn_set_game_params settings "port" "--EMPTY--" "Port to bind for server" +fn_set_game_params settings "steampass" "--EMPTY--" "Steam Password" +fn_set_game_params settings "steamuser" "anonymous" "Steam Username" fn_set_game_params settings "updateonstart" "off" "Update game on start" -fn_set_game_params settings "lockselfname" "\${lgsmdir}/.\${servicename}.lock" "LGSM Lock File" -fn_set_game_params settings "filesdir" "\${rootdir}/serverfiles" "Server Files Directory" -fn_set_game_params settings "backupdir" "\${lgsmdir}/backups" "Backup Directory" -fn_set_game_params settings "scriptlogdir" "\${lgsmdir}/log/script" "Script Log Dir" + +# These settings are in a second group, since they reference the first group. fn_set_game_params settings "consolelogdir" "\${lgsmdir}/log/console" "Console Log Dir" -fn_set_game_params settings "scriptlog" "\${scriptlogdir}/\${servicename}-script.log" "Script Log" fn_set_game_params settings "consolelog" "\${consolelogdir}/\${servicename}-console.log" "Console Log" -fn_set_game_params settings "emaillog" "\${scriptlogdir}/\${servicename}-email.log" "Email Log" -fn_set_game_params settings "scriptlogdate" "\${scriptlogdir}/\${servicename}-script-\$(date '+%d-%m-%Y-%H-%M-%S').log" "Script Log Rotation Filename" fn_set_game_params settings "consolelogdate" "\${consolelogdir}/\${servicename}-console-\$(date '+%d-%m-%Y-%H-%M-%S').log" "Console Log Rotation Filename" -# Default fn_parms does nothing right now, gets overridden by later instances +fn_set_game_params settings "scriptlogdir" "\${lgsmdir}/log/script" "Script Log Dir" +fn_set_game_params settings "scriptlog" "\${scriptlogdir}/\${servicename}-script.log" "Script Log" +fn_set_game_params settings "scriptlogdate" "\${scriptlogdir}/\${servicename}-script-\$(date '+%d-%m-%Y-%H-%M-%S').log" "Script Log Rotation Filename" + +fn_set_game_params settings "servercfg_suffix" ".cfg" "Suffix to put on the end of the server config. For file extensions, use \".ext\", setting to empty will use the bare server config name." +fn_set_game_params settings "systemdir" "\${filesdir}/\${game}" "System Directory (root of game installation)" +fn_set_game_params settings "gamelogdir" "\${systemdir}/logs" "Game log directory" + +fn_set_game_params settings "executabledir" "\${filesdir}" "Executable directory" +fn_set_game_params settings "executable" "--EMPTY--" "Executable to invoke to start game server" + +fn_set_game_params settings "servercfgdir" "\${systemdir}/cfg" "Server config directory" +fn_set_game_params settings "servercfg" "\${servicename}\${servercfg_suffix}" "Server config file for this instance" +fn_set_game_params settings "servercfgdefault" "\${servercfgdir}/lgsm-default\${servercfg_suffix}" "Default server configuration file" +fn_set_game_params settings "servercfgfullpath" "\${servercfgdir}/\${servercfg}" "Full path to server config" + +# Default fn_parms just loads the parms file. Still need to figure out how to handle "simple" parms. fn_parms(){ - parms="" + source "${settingsdir}/parms" } diff --git a/gamedata/_dontstarve b/gamedata/_dontstarve index c16e11445..a84a0cd34 100644 --- a/gamedata/_dontstarve +++ b/gamedata/_dontstarve @@ -1,62 +1,21 @@ # Game Settings File -# _srcds -# Base SRCDS Game - -engine="dontstarve" -systemdir="${filesdir}" -executabledir="${filesdir}/bin" -executable="./dontstarve_dedicated_server_nullrenderer" -servercfg="settings.ini" -servercfgdir="${HOME}/.klei/DoNotStarveTogether" -servercfgdefault="${servercfgdir}/lgsm-default.ini" +# _dontstarve +# Don't Starve Engine # Import default settings fn_import_game_settings _default -# This is the way we create a script that collates and parses the parameters -fn_parms(){ - parms="$(echo $(sed -e 's/=\"/ /g' -e 's/\"$//g' ${settingsdir}/parms_minus)) ${srcds_parms} $(echo $(sed -e 's/=\"/ /g' -e 's/\"$//g' ${settingsdir}/parms_plus))" -} -# The parms that start with - go first -fn_set_game_params parms_minus "-game" "\${game}" -fn_set_game_params parms_minus "-strictportbind" "--EMPTY--" -fn_set_game_params parms_minus "-ip" "\${ip}" -fn_set_game_params parms_minus "-port" "\${port}" -fn_set_game_params parms_minus "-maxplayers" "\${maxplayers}" -fn_set_game_params parms_minus "-tickrate" "\${tickrate}" - -# Then the parms that start with + -fn_set_game_params parms_plus "+clientport" "\${clientport}" -fn_set_game_params parms_plus "+tv_port" "\${sourcetvport}" -fn_set_game_params parms_plus "+mapcyclefile" "\${mapcyclefile}" -fn_set_game_params parms_plus "+servercfgfile" "\${servercfg}" -fn_set_game_params parms_plus "+map" "\${defaultmap}" - # And the settings for defaults -fn_set_game_params settings "appid" "204" "Steam App ID" -fn_set_game_params settings "clientport" "27005" "Client Port" -fn_set_game_params settings "defaultmap" "dm_lockdown" "Default map to load" -fn_set_game_params settings "engine" "source" "Game Engine" -fn_set_game_params settings "game" "hl2mp" "Name of game to pass to srcds" -fn_set_game_params settings "gamename" "HalfLife2Deathmatch" "Name for subdirectory in GitHub repo" -fn_set_game_params settings "mapcyclefile" "mapcycle.txt" "Map Cycle File" -fn_set_game_params settings "maxplayers" "64" "Maximum player count" -fn_set_game_params settings "playlist" "custom" "Playlist" -fn_set_game_params settings "port" "27015" "Port to bind for server" -fn_set_game_params settings "servercfg" "${selfname}.cfg" "Server Config file" -fn_set_game_params settings "sourcetvport" "27020" "SourceTV Port" -fn_set_game_params settings "srcds_parms" "--EMPTY--" "Additional SRCDS Parameters. Put the parameters that start with \"-\" first, then \"+\" parameters after" -fn_set_game_params settings "steampass" "--EMPTY--" "Steam Password" -fn_set_game_params settings "steamuser" "anonymous" "Steam Username" -fn_set_game_params settings "tickrate" "64" "Server Tick Rate" +fn_set_game_params settings "engine" "dontstarve" +fn_set_game_params settings "game" "dontstarve" +fn_set_game_params settings "gamename" "Don't Starve" # These are values that the script uses, they don't get used by the srcds server directly -fn_set_game_params settings "systemdir" "\${filesdir}/\${game}" -fn_set_game_params settings "gamelogdir" "\${systemdir}/logs" -fn_set_game_params settings "executabledir" "\${filesdir}" -fn_set_game_params settings "executable" "./srcds_linux" -fn_set_game_params settings "servercfg" "\${servicename}.cfg" -fn_set_game_params settings "servercfgdir" "\${systemdir}/cfg" +fn_set_game_params settings "systemdir" "\${filesdir}" +fn_set_game_params settings "executabledir" "\${filesdir}/bin" +fn_set_game_params settings "executable" "./dontstarve_dedicated_server_nullrenderer" +fn_set_game_params settings "servercfg" "settings.ini" +fn_set_game_params settings "servercfgdir" "\${HOME}/.klei/DoNotStarveTogether" fn_set_game_params settings "servercfgfullpath" "\${servercfgdir}/\${servercfg}" -fn_set_game_params settings "servercfgdefault" "\${servercfgdir}/lgsm-default.cfg" +fn_set_game_params settings "servercfgdefault" "\${servercfgdir}/lgsm-default.ini" diff --git a/gamedata/_engine b/gamedata/_engine deleted file mode 100644 index c3febfe01..000000000 --- a/gamedata/_engine +++ /dev/null @@ -1,54 +0,0 @@ -# Game Settings File -# _srcds -# Base SRCDS Game - -# Import default settings -fn_import_game_settings _default - -# This is the way we create a script that collates and parses the parameters -fn_parms(){ - parms="$(echo $(sed -e 's/=\"/ /g' -e 's/\"$//g' ${settingsdir}/parms_minus)) ${srcds_parms} $(echo $(sed -e 's/=\"/ /g' -e 's/\"$//g' ${settingsdir}/parms_plus))" -} -# The parms that start with - go first -fn_set_game_params parms_minus "-game" "\${game}" -fn_set_game_params parms_minus "-strictportbind" "--EMPTY--" -fn_set_game_params parms_minus "-ip" "\${ip}" -fn_set_game_params parms_minus "-port" "\${port}" -fn_set_game_params parms_minus "-maxplayers" "\${maxplayers}" -fn_set_game_params parms_minus "-tickrate" "\${tickrate}" - -# Then the parms that start with + -fn_set_game_params parms_plus "+clientport" "\${clientport}" -fn_set_game_params parms_plus "+tv_port" "\${sourcetvport}" -fn_set_game_params parms_plus "+mapcyclefile" "\${mapcyclefile}" -fn_set_game_params parms_plus "+servercfgfile" "\${servercfg}" -fn_set_game_params parms_plus "+map" "\${defaultmap}" - -# And the settings for defaults -fn_set_game_params settings "appid" "204" "Steam App ID" -fn_set_game_params settings "clientport" "27005" "Client Port" -fn_set_game_params settings "defaultmap" "dm_lockdown" "Default map to load" -fn_set_game_params settings "engine" "source" "Game Engine" -fn_set_game_params settings "game" "hl2mp" "Name of game to pass to srcds" -fn_set_game_params settings "gamename" "HalfLife2Deathmatch" "Name for subdirectory in GitHub repo" -fn_set_game_params settings "mapcyclefile" "mapcycle.txt" "Map Cycle File" -fn_set_game_params settings "maxplayers" "64" "Maximum player count" -fn_set_game_params settings "playlist" "custom" "Playlist" -fn_set_game_params settings "port" "27015" "Port to bind for server" -fn_set_game_params settings "servercfg" "${selfname}.cfg" "Server Config file" -fn_set_game_params settings "sourcetvport" "27020" "SourceTV Port" -fn_set_game_params settings "srcds_parms" "--EMPTY--" "Additional SRCDS Parameters. Put the parameters that start with \"-\" first, then \"+\" parameters after" -fn_set_game_params settings "steampass" "--EMPTY--" "Steam Password" -fn_set_game_params settings "steamuser" "anonymous" "Steam Username" -fn_set_game_params settings "tickrate" "64" "Server Tick Rate" - -# These are values that the script uses, they don't get used by the srcds server directly -fn_set_game_params settings "systemdir" "\${filesdir}/\${game}" -fn_set_game_params settings "gamelogdir" "\${systemdir}/logs" -fn_set_game_params settings "executabledir" "\${filesdir}" -fn_set_game_params settings "executable" "./srcds_linux" -fn_set_game_params settings "servercfg" "\${servicename}.cfg" -fn_set_game_params settings "servercfgdir" "\${systemdir}/cfg" -fn_set_game_params settings "servercfgfullpath" "\${servercfgdir}/\${servercfg}" -fn_set_game_params settings "servercfgdefault" "\${servercfgdir}/lgsm-default.cfg" - diff --git a/gamedata/_goldsource b/gamedata/_goldsource index 3676bc31b..2153da60d 100644 --- a/gamedata/_goldsource +++ b/gamedata/_goldsource @@ -1,61 +1,20 @@ # Game Settings File -# _srcds -# Base SRCDS Game - -engine="goldsource" -systemdir="${filesdir}/czero" -executable="./hlds_run" -servercfg="${servicename}.cfg" -servercfgdir="${systemdir}" - +# _goldsource +# Gold Source Engine # Import default settings -fn_import_game_settings _default +fn_import_game_settings _halflife_shared -# This is the way we create a script that collates and parses the parameters -fn_parms(){ - parms="$(echo $(sed -e 's/=\"/ /g' -e 's/\"$//g' ${settingsdir}/parms_minus)) ${srcds_parms} $(echo $(sed -e 's/=\"/ /g' -e 's/\"$//g' ${settingsdir}/parms_plus))" -} # The parms that start with - go first -fn_set_game_params parms_minus "-game" "\${game}" -fn_set_game_params parms_minus "-strictportbind" "--EMPTY--" -fn_set_game_params parms_minus "-ip" "\${ip}" -fn_set_game_params parms_minus "-port" "\${port}" -fn_set_game_params parms_minus "-maxplayers" "\${maxplayers}" -fn_set_game_params parms_minus "-tickrate" "\${tickrate}" +fn_set_game_params parms_minus "ip" "--UNSET--" +fn_set_game_params parms_plus "ip" "\${ip}" -# Then the parms that start with + -fn_set_game_params parms_plus "+clientport" "\${clientport}" -fn_set_game_params parms_plus "+tv_port" "\${sourcetvport}" -fn_set_game_params parms_plus "+mapcyclefile" "\${mapcyclefile}" -fn_set_game_params parms_plus "+servercfgfile" "\${servercfg}" -fn_set_game_params parms_plus "+map" "\${defaultmap}" +fn_set_game_params parms_minus "clientport" "--UNSET--" +fn_set_game_params parms_plus "clientport" "\${clientport}" # And the settings for defaults -fn_set_game_params settings "appid" "204" "Steam App ID" -fn_set_game_params settings "clientport" "27005" "Client Port" -fn_set_game_params settings "defaultmap" "dm_lockdown" "Default map to load" -fn_set_game_params settings "engine" "source" "Game Engine" -fn_set_game_params settings "game" "hl2mp" "Name of game to pass to srcds" -fn_set_game_params settings "gamename" "HalfLife2Deathmatch" "Name for subdirectory in GitHub repo" -fn_set_game_params settings "mapcyclefile" "mapcycle.txt" "Map Cycle File" -fn_set_game_params settings "maxplayers" "64" "Maximum player count" -fn_set_game_params settings "playlist" "custom" "Playlist" -fn_set_game_params settings "port" "27015" "Port to bind for server" -fn_set_game_params settings "servercfg" "${selfname}.cfg" "Server Config file" -fn_set_game_params settings "sourcetvport" "27020" "SourceTV Port" -fn_set_game_params settings "srcds_parms" "--EMPTY--" "Additional SRCDS Parameters. Put the parameters that start with \"-\" first, then \"+\" parameters after" -fn_set_game_params settings "steampass" "--EMPTY--" "Steam Password" -fn_set_game_params settings "steamuser" "anonymous" "Steam Username" -fn_set_game_params settings "tickrate" "64" "Server Tick Rate" - -# These are values that the script uses, they don't get used by the srcds server directly -fn_set_game_params settings "systemdir" "\${filesdir}/\${game}" -fn_set_game_params settings "gamelogdir" "\${systemdir}/logs" -fn_set_game_params settings "executabledir" "\${filesdir}" -fn_set_game_params settings "executable" "./srcds_linux" -fn_set_game_params settings "servercfg" "\${servicename}.cfg" -fn_set_game_params settings "servercfgdir" "\${systemdir}/cfg" -fn_set_game_params settings "servercfgfullpath" "\${servercfgdir}/\${servercfg}" -fn_set_game_params settings "servercfgdefault" "\${servercfgdir}/lgsm-default.cfg" +fn_set_game_params settings "appid" "90" +fn_set_game_params settings "defaultmap" "dm_lockdown" +fn_set_game_params settings "engine" "goldsource" +fn_set_game_params settings "executable" "./hlds_run" diff --git a/gamedata/_halflife_shared b/gamedata/_halflife_shared new file mode 100644 index 000000000..0e8c3b6fb --- /dev/null +++ b/gamedata/_halflife_shared @@ -0,0 +1,29 @@ +# Game Settings File +# _halflife_shared +# Half-Life Shared Engine (Source and GoldSource) + +# Import default settings +fn_import_game_settings _default +fn_import_game_settings _parms_plusminus + +# The parms that start with - go first + +fn_set_game_params parms_minus "game" "\${game}" +fn_set_game_params parms_minus "strictportbind" "--EMPTY--" +fn_set_game_params parms_minus "ip" "\${ip}" +fn_set_game_params parms_minus "port" "\${port}" +fn_set_game_params parms_minus "maxplayers" "\${maxplayers}" +fn_set_game_params parms_minus "tickrate" "\${tickrate}" + +# Then the parms that start with + +fn_set_game_params parms_plus "clientport" "\${clientport}" +fn_set_game_params parms_plus "servercfgfile" "\${servercfg}" +fn_set_game_params parms_plus "map" "\${defaultmap}" + +# And the settings for defaults +fn_set_game_params settings "clientport" "27005" "Client Port" +fn_set_game_params settings "defaultmap" "dm_lockdown" "Default map to load" +fn_set_game_params settings "maxplayers" "64" +fn_set_game_params settings "port" "27015" +fn_set_game_params settings "server_parms" "--EMPTY--" "Additional server Parameters. Put the parameters that start with \"-\" first, then \"+\" parameters after" +fn_set_game_params settings "tickrate" "64" "Server Tick Rate" diff --git a/gamedata/_parms_plusminus b/gamedata/_parms_plusminus new file mode 100644 index 000000000..240438a08 --- /dev/null +++ b/gamedata/_parms_plusminus @@ -0,0 +1,10 @@ +# Game Settings File +# _parms_plusminus +# Parameter parsing with "+" and "-" sorting + +# This is the way we create a script that collates and parses the parameters +fn_parms(){ + parms_minus="$(echo $(sed -e 's/^\([^#=]\+\)=\"/\-\1 /g' -e 's/\"$//g' ${settingsdir}/parms_minus)) + parms_plus="$(echo $(sed -e 's/^\([^#=]\+\)=\"/\+\1 /g' -e 's/\"$//g' ${settingsdir}/parms_plus)) + parms="$(echo "${parms_minus} ${server_parms} ${parms_plus}")" +} diff --git a/gamedata/_projectzomboid b/gamedata/_projectzomboid index 66ccbaf49..e5fa49dc4 100644 --- a/gamedata/_projectzomboid +++ b/gamedata/_projectzomboid @@ -1,61 +1,18 @@ # Game Settings File -# _srcds -# Base SRCDS Game -engine="projectzomboid" -systemdir="${filesdir}" -executabledir="${filesdir}" -executable="./start-server.sh" -servercfg="servertest.ini" -servercfgdir="${HOME}/Zomboid/Server" -servercfgfullpath="${servercfgdir}/${servercfg}" +# _projectzomboid +# Project Zomboid Engine # Import default settings fn_import_game_settings _default -# This is the way we create a script that collates and parses the parameters -fn_parms(){ - parms="$(echo $(sed -e 's/=\"/ /g' -e 's/\"$//g' ${settingsdir}/parms_minus)) ${srcds_parms} $(echo $(sed -e 's/=\"/ /g' -e 's/\"$//g' ${settingsdir}/parms_plus))" -} -# The parms that start with - go first -fn_set_game_params parms_minus "-game" "\${game}" -fn_set_game_params parms_minus "-strictportbind" "--EMPTY--" -fn_set_game_params parms_minus "-ip" "\${ip}" -fn_set_game_params parms_minus "-port" "\${port}" -fn_set_game_params parms_minus "-maxplayers" "\${maxplayers}" -fn_set_game_params parms_minus "-tickrate" "\${tickrate}" - -# Then the parms that start with + -fn_set_game_params parms_plus "+clientport" "\${clientport}" -fn_set_game_params parms_plus "+tv_port" "\${sourcetvport}" -fn_set_game_params parms_plus "+mapcyclefile" "\${mapcyclefile}" -fn_set_game_params parms_plus "+servercfgfile" "\${servercfg}" -fn_set_game_params parms_plus "+map" "\${defaultmap}" - # And the settings for defaults -fn_set_game_params settings "appid" "204" "Steam App ID" -fn_set_game_params settings "clientport" "27005" "Client Port" -fn_set_game_params settings "defaultmap" "dm_lockdown" "Default map to load" -fn_set_game_params settings "engine" "source" "Game Engine" -fn_set_game_params settings "game" "hl2mp" "Name of game to pass to srcds" -fn_set_game_params settings "gamename" "HalfLife2Deathmatch" "Name for subdirectory in GitHub repo" -fn_set_game_params settings "mapcyclefile" "mapcycle.txt" "Map Cycle File" -fn_set_game_params settings "maxplayers" "64" "Maximum player count" -fn_set_game_params settings "playlist" "custom" "Playlist" -fn_set_game_params settings "port" "27015" "Port to bind for server" -fn_set_game_params settings "servercfg" "${selfname}.cfg" "Server Config file" -fn_set_game_params settings "sourcetvport" "27020" "SourceTV Port" -fn_set_game_params settings "srcds_parms" "--EMPTY--" "Additional SRCDS Parameters. Put the parameters that start with \"-\" first, then \"+\" parameters after" -fn_set_game_params settings "steampass" "--EMPTY--" "Steam Password" -fn_set_game_params settings "steamuser" "anonymous" "Steam Username" -fn_set_game_params settings "tickrate" "64" "Server Tick Rate" +fn_set_game_params settings "engine" "projectzomboid" # These are values that the script uses, they don't get used by the srcds server directly -fn_set_game_params settings "systemdir" "\${filesdir}/\${game}" +fn_set_game_params settings "systemdir" "\${filesdir}" fn_set_game_params settings "gamelogdir" "\${systemdir}/logs" fn_set_game_params settings "executabledir" "\${filesdir}" -fn_set_game_params settings "executable" "./srcds_linux" -fn_set_game_params settings "servercfg" "\${servicename}.cfg" -fn_set_game_params settings "servercfgdir" "\${systemdir}/cfg" -fn_set_game_params settings "servercfgfullpath" "\${servercfgdir}/\${servercfg}" -fn_set_game_params settings "servercfgdefault" "\${servercfgdir}/lgsm-default.cfg" +fn_set_game_params settings "executable" "./start-server.sh" +fn_set_game_params settings "servercfg" "servertest.ini" +fn_set_game_params settings "servercfgdir" "\${HOME}/Zomboid/Server" diff --git a/gamedata/_realvirtuality b/gamedata/_realvirtuality index aca3485e0..ec253592b 100644 --- a/gamedata/_realvirtuality +++ b/gamedata/_realvirtuality @@ -1,66 +1,18 @@ # Game Settings File -# _srcds -# Base SRCDS Game - -engine="realvirtuality" -systemdir="${filesdir}" -executabledir="${filesdir}" -executable="./arma3server" -servercfg="${servicename}.server.cfg" -networkcfg="${servicename}.network.cfg" -servercfgdir="${systemdir}/cfg" -servercfgfullpath="${servercfgdir}/${servercfg}" -networkcfgfullpath="${servercfgdir}/${networkcfg}" -servercfgdefault="${servercfgdir}/lgsm-default.server.cfg" -networkcfgdefault="${servercfgdir}/lgsm-default.network.cfg" +# _realvirtuality +# Real Virtuality Engine # Import default settings fn_import_game_settings _default -# This is the way we create a script that collates and parses the parameters -fn_parms(){ - parms="$(echo $(sed -e 's/=\"/ /g' -e 's/\"$//g' ${settingsdir}/parms_minus)) ${srcds_parms} $(echo $(sed -e 's/=\"/ /g' -e 's/\"$//g' ${settingsdir}/parms_plus))" -} -# The parms that start with - go first -fn_set_game_params parms_minus "-game" "\${game}" -fn_set_game_params parms_minus "-strictportbind" "--EMPTY--" -fn_set_game_params parms_minus "-ip" "\${ip}" -fn_set_game_params parms_minus "-port" "\${port}" -fn_set_game_params parms_minus "-maxplayers" "\${maxplayers}" -fn_set_game_params parms_minus "-tickrate" "\${tickrate}" - -# Then the parms that start with + -fn_set_game_params parms_plus "+clientport" "\${clientport}" -fn_set_game_params parms_plus "+tv_port" "\${sourcetvport}" -fn_set_game_params parms_plus "+mapcyclefile" "\${mapcyclefile}" -fn_set_game_params parms_plus "+servercfgfile" "\${servercfg}" -fn_set_game_params parms_plus "+map" "\${defaultmap}" - -# And the settings for defaults -fn_set_game_params settings "appid" "204" "Steam App ID" -fn_set_game_params settings "clientport" "27005" "Client Port" -fn_set_game_params settings "defaultmap" "dm_lockdown" "Default map to load" -fn_set_game_params settings "engine" "source" "Game Engine" -fn_set_game_params settings "game" "hl2mp" "Name of game to pass to srcds" -fn_set_game_params settings "gamename" "HalfLife2Deathmatch" "Name for subdirectory in GitHub repo" -fn_set_game_params settings "mapcyclefile" "mapcycle.txt" "Map Cycle File" -fn_set_game_params settings "maxplayers" "64" "Maximum player count" -fn_set_game_params settings "playlist" "custom" "Playlist" -fn_set_game_params settings "port" "27015" "Port to bind for server" -fn_set_game_params settings "servercfg" "${selfname}.cfg" "Server Config file" -fn_set_game_params settings "sourcetvport" "27020" "SourceTV Port" -fn_set_game_params settings "srcds_parms" "--EMPTY--" "Additional SRCDS Parameters. Put the parameters that start with \"-\" first, then \"+\" parameters after" -fn_set_game_params settings "steampass" "--EMPTY--" "Steam Password" -fn_set_game_params settings "steamuser" "anonymous" "Steam Username" -fn_set_game_params settings "tickrate" "64" "Server Tick Rate" - -# These are values that the script uses, they don't get used by the srcds server directly -fn_set_game_params settings "systemdir" "\${filesdir}/\${game}" -fn_set_game_params settings "gamelogdir" "\${systemdir}/logs" +fn_set_game_params settings "engine" "realvirtuality" +fn_set_game_params settings "systemdir" "\${filesdir}" fn_set_game_params settings "executabledir" "\${filesdir}" -fn_set_game_params settings "executable" "./srcds_linux" -fn_set_game_params settings "servercfg" "\${servicename}.cfg" +fn_set_game_params settings "executable" "./arma3server" +fn_set_game_params settings "servercfg" "\${servicename}.server.cfg" +fn_set_game_params settings "networkcfg" "\${servicename}.network.cfg" fn_set_game_params settings "servercfgdir" "\${systemdir}/cfg" fn_set_game_params settings "servercfgfullpath" "\${servercfgdir}/\${servercfg}" -fn_set_game_params settings "servercfgdefault" "\${servercfgdir}/lgsm-default.cfg" - +fn_set_game_params settings "networkcfgfullpath" "\${servercfgdir}/\${networkcfg}" +fn_set_game_params settings "servercfgdefault" "\${servercfgdir}/lgsm-default.server.cfg" +fn_set_game_params settings "networkcfgdefault" "\${servercfgdir}/lgsm-default.network.cfg" diff --git a/gamedata/_seriousengine35 b/gamedata/_seriousengine35 index 67d3c1a86..30d768d6b 100644 --- a/gamedata/_seriousengine35 +++ b/gamedata/_seriousengine35 @@ -1,62 +1,15 @@ # Game Settings File -# _srcds -# Base SRCDS Game -engine="seriousengine35" -systemdir="${filesdir}/Bin" -executable="./runSam3_DedicatedServer.sh" -executabledir="${systemdir}" -servercfg="${servicename}.ini" -servercfgdir="${filesdir}/Content/SeriousSam3/Config" -servercfgfullpath="${servercfgdir}/${servercfg}" -servercfgdefault="${servercfgdir}/lgsm-default.ini" +# _seriousengine35 +# Serious Engine 3.5 # Import default settings fn_import_game_settings _default -# This is the way we create a script that collates and parses the parameters -fn_parms(){ - parms="$(echo $(sed -e 's/=\"/ /g' -e 's/\"$//g' ${settingsdir}/parms_minus)) ${srcds_parms} $(echo $(sed -e 's/=\"/ /g' -e 's/\"$//g' ${settingsdir}/parms_plus))" -} -# The parms that start with - go first -fn_set_game_params parms_minus "-game" "\${game}" -fn_set_game_params parms_minus "-strictportbind" "--EMPTY--" -fn_set_game_params parms_minus "-ip" "\${ip}" -fn_set_game_params parms_minus "-port" "\${port}" -fn_set_game_params parms_minus "-maxplayers" "\${maxplayers}" -fn_set_game_params parms_minus "-tickrate" "\${tickrate}" - -# Then the parms that start with + -fn_set_game_params parms_plus "+clientport" "\${clientport}" -fn_set_game_params parms_plus "+tv_port" "\${sourcetvport}" -fn_set_game_params parms_plus "+mapcyclefile" "\${mapcyclefile}" -fn_set_game_params parms_plus "+servercfgfile" "\${servercfg}" -fn_set_game_params parms_plus "+map" "\${defaultmap}" - -# And the settings for defaults -fn_set_game_params settings "appid" "204" "Steam App ID" -fn_set_game_params settings "clientport" "27005" "Client Port" -fn_set_game_params settings "defaultmap" "dm_lockdown" "Default map to load" -fn_set_game_params settings "engine" "source" "Game Engine" -fn_set_game_params settings "game" "hl2mp" "Name of game to pass to srcds" -fn_set_game_params settings "gamename" "HalfLife2Deathmatch" "Name for subdirectory in GitHub repo" -fn_set_game_params settings "mapcyclefile" "mapcycle.txt" "Map Cycle File" -fn_set_game_params settings "maxplayers" "64" "Maximum player count" -fn_set_game_params settings "playlist" "custom" "Playlist" -fn_set_game_params settings "port" "27015" "Port to bind for server" -fn_set_game_params settings "servercfg" "${selfname}.cfg" "Server Config file" -fn_set_game_params settings "sourcetvport" "27020" "SourceTV Port" -fn_set_game_params settings "srcds_parms" "--EMPTY--" "Additional SRCDS Parameters. Put the parameters that start with \"-\" first, then \"+\" parameters after" -fn_set_game_params settings "steampass" "--EMPTY--" "Steam Password" -fn_set_game_params settings "steamuser" "anonymous" "Steam Username" -fn_set_game_params settings "tickrate" "64" "Server Tick Rate" - -# These are values that the script uses, they don't get used by the srcds server directly -fn_set_game_params settings "systemdir" "\${filesdir}/\${game}" -fn_set_game_params settings "gamelogdir" "\${systemdir}/logs" -fn_set_game_params settings "executabledir" "\${filesdir}" -fn_set_game_params settings "executable" "./srcds_linux" -fn_set_game_params settings "servercfg" "\${servicename}.cfg" -fn_set_game_params settings "servercfgdir" "\${systemdir}/cfg" +fn_set_game_params settings "engine" "seriousengine35" +fn_set_game_params settings "systemdir" "\${filesdir}/Bin" +fn_set_game_params settings "executable" "./runSam3_DedicatedServer.sh" +fn_set_game_params settings "executabledir" "\${systemdir}" +fn_set_game_params settings "servercfg" "\${servicename}.ini" +fn_set_game_params settings "servercfgdir" "\${filesdir}/Content/SeriousSam3/Config" fn_set_game_params settings "servercfgfullpath" "\${servercfgdir}/\${servercfg}" -fn_set_game_params settings "servercfgdefault" "\${servercfgdir}/lgsm-default.cfg" - +fn_set_game_params settings "servercfgdefault" "\${servercfgdir}/lgsm-default.ini" diff --git a/gamedata/_source b/gamedata/_source index c3febfe01..c65023e2a 100644 --- a/gamedata/_source +++ b/gamedata/_source @@ -1,54 +1,15 @@ # Game Settings File -# _srcds -# Base SRCDS Game +# _source +# Source Engine # Import default settings -fn_import_game_settings _default - -# This is the way we create a script that collates and parses the parameters -fn_parms(){ - parms="$(echo $(sed -e 's/=\"/ /g' -e 's/\"$//g' ${settingsdir}/parms_minus)) ${srcds_parms} $(echo $(sed -e 's/=\"/ /g' -e 's/\"$//g' ${settingsdir}/parms_plus))" -} -# The parms that start with - go first -fn_set_game_params parms_minus "-game" "\${game}" -fn_set_game_params parms_minus "-strictportbind" "--EMPTY--" -fn_set_game_params parms_minus "-ip" "\${ip}" -fn_set_game_params parms_minus "-port" "\${port}" -fn_set_game_params parms_minus "-maxplayers" "\${maxplayers}" -fn_set_game_params parms_minus "-tickrate" "\${tickrate}" - -# Then the parms that start with + -fn_set_game_params parms_plus "+clientport" "\${clientport}" -fn_set_game_params parms_plus "+tv_port" "\${sourcetvport}" -fn_set_game_params parms_plus "+mapcyclefile" "\${mapcyclefile}" -fn_set_game_params parms_plus "+servercfgfile" "\${servercfg}" -fn_set_game_params parms_plus "+map" "\${defaultmap}" +fn_import_game_settings _halflife_shared # And the settings for defaults -fn_set_game_params settings "appid" "204" "Steam App ID" -fn_set_game_params settings "clientport" "27005" "Client Port" -fn_set_game_params settings "defaultmap" "dm_lockdown" "Default map to load" fn_set_game_params settings "engine" "source" "Game Engine" -fn_set_game_params settings "game" "hl2mp" "Name of game to pass to srcds" -fn_set_game_params settings "gamename" "HalfLife2Deathmatch" "Name for subdirectory in GitHub repo" -fn_set_game_params settings "mapcyclefile" "mapcycle.txt" "Map Cycle File" -fn_set_game_params settings "maxplayers" "64" "Maximum player count" -fn_set_game_params settings "playlist" "custom" "Playlist" -fn_set_game_params settings "port" "27015" "Port to bind for server" -fn_set_game_params settings "servercfg" "${selfname}.cfg" "Server Config file" fn_set_game_params settings "sourcetvport" "27020" "SourceTV Port" -fn_set_game_params settings "srcds_parms" "--EMPTY--" "Additional SRCDS Parameters. Put the parameters that start with \"-\" first, then \"+\" parameters after" -fn_set_game_params settings "steampass" "--EMPTY--" "Steam Password" -fn_set_game_params settings "steamuser" "anonymous" "Steam Username" -fn_set_game_params settings "tickrate" "64" "Server Tick Rate" + +fn_set_game_params parms_plus "tv_port" "\${sourcetvport}" # These are values that the script uses, they don't get used by the srcds server directly -fn_set_game_params settings "systemdir" "\${filesdir}/\${game}" -fn_set_game_params settings "gamelogdir" "\${systemdir}/logs" -fn_set_game_params settings "executabledir" "\${filesdir}" fn_set_game_params settings "executable" "./srcds_linux" -fn_set_game_params settings "servercfg" "\${servicename}.cfg" -fn_set_game_params settings "servercfgdir" "\${systemdir}/cfg" -fn_set_game_params settings "servercfgfullpath" "\${servercfgdir}/\${servercfg}" -fn_set_game_params settings "servercfgdefault" "\${servercfgdir}/lgsm-default.cfg" - diff --git a/gamedata/_spark b/gamedata/_spark index c3febfe01..ae57b88bb 100644 --- a/gamedata/_spark +++ b/gamedata/_spark @@ -1,54 +1,7 @@ # Game Settings File -# _srcds -# Base SRCDS Game +# _spark +# Spark Engine # Import default settings fn_import_game_settings _default -# This is the way we create a script that collates and parses the parameters -fn_parms(){ - parms="$(echo $(sed -e 's/=\"/ /g' -e 's/\"$//g' ${settingsdir}/parms_minus)) ${srcds_parms} $(echo $(sed -e 's/=\"/ /g' -e 's/\"$//g' ${settingsdir}/parms_plus))" -} -# The parms that start with - go first -fn_set_game_params parms_minus "-game" "\${game}" -fn_set_game_params parms_minus "-strictportbind" "--EMPTY--" -fn_set_game_params parms_minus "-ip" "\${ip}" -fn_set_game_params parms_minus "-port" "\${port}" -fn_set_game_params parms_minus "-maxplayers" "\${maxplayers}" -fn_set_game_params parms_minus "-tickrate" "\${tickrate}" - -# Then the parms that start with + -fn_set_game_params parms_plus "+clientport" "\${clientport}" -fn_set_game_params parms_plus "+tv_port" "\${sourcetvport}" -fn_set_game_params parms_plus "+mapcyclefile" "\${mapcyclefile}" -fn_set_game_params parms_plus "+servercfgfile" "\${servercfg}" -fn_set_game_params parms_plus "+map" "\${defaultmap}" - -# And the settings for defaults -fn_set_game_params settings "appid" "204" "Steam App ID" -fn_set_game_params settings "clientport" "27005" "Client Port" -fn_set_game_params settings "defaultmap" "dm_lockdown" "Default map to load" -fn_set_game_params settings "engine" "source" "Game Engine" -fn_set_game_params settings "game" "hl2mp" "Name of game to pass to srcds" -fn_set_game_params settings "gamename" "HalfLife2Deathmatch" "Name for subdirectory in GitHub repo" -fn_set_game_params settings "mapcyclefile" "mapcycle.txt" "Map Cycle File" -fn_set_game_params settings "maxplayers" "64" "Maximum player count" -fn_set_game_params settings "playlist" "custom" "Playlist" -fn_set_game_params settings "port" "27015" "Port to bind for server" -fn_set_game_params settings "servercfg" "${selfname}.cfg" "Server Config file" -fn_set_game_params settings "sourcetvport" "27020" "SourceTV Port" -fn_set_game_params settings "srcds_parms" "--EMPTY--" "Additional SRCDS Parameters. Put the parameters that start with \"-\" first, then \"+\" parameters after" -fn_set_game_params settings "steampass" "--EMPTY--" "Steam Password" -fn_set_game_params settings "steamuser" "anonymous" "Steam Username" -fn_set_game_params settings "tickrate" "64" "Server Tick Rate" - -# These are values that the script uses, they don't get used by the srcds server directly -fn_set_game_params settings "systemdir" "\${filesdir}/\${game}" -fn_set_game_params settings "gamelogdir" "\${systemdir}/logs" -fn_set_game_params settings "executabledir" "\${filesdir}" -fn_set_game_params settings "executable" "./srcds_linux" -fn_set_game_params settings "servercfg" "\${servicename}.cfg" -fn_set_game_params settings "servercfgdir" "\${systemdir}/cfg" -fn_set_game_params settings "servercfgfullpath" "\${servercfgdir}/\${servercfg}" -fn_set_game_params settings "servercfgdefault" "\${servercfgdir}/lgsm-default.cfg" - diff --git a/gamedata/_starbound b/gamedata/_starbound index f70d1f504..430f35a82 100644 --- a/gamedata/_starbound +++ b/gamedata/_starbound @@ -2,60 +2,12 @@ # _srcds # Base SRCDS Game -engine="starbound" -executabledir="${filesdir}/linux64" -executable="./starbound_server" -servercfg="sbboot.config" -servercfgdir="${executabledir}" -gamelogdir="${filesdir}/giraffe_storage" - # Import default settings fn_import_game_settings _default -# This is the way we create a script that collates and parses the parameters -fn_parms(){ - parms="$(echo $(sed -e 's/=\"/ /g' -e 's/\"$//g' ${settingsdir}/parms_minus)) ${srcds_parms} $(echo $(sed -e 's/=\"/ /g' -e 's/\"$//g' ${settingsdir}/parms_plus))" -} -# The parms that start with - go first -fn_set_game_params parms_minus "-game" "\${game}" -fn_set_game_params parms_minus "-strictportbind" "--EMPTY--" -fn_set_game_params parms_minus "-ip" "\${ip}" -fn_set_game_params parms_minus "-port" "\${port}" -fn_set_game_params parms_minus "-maxplayers" "\${maxplayers}" -fn_set_game_params parms_minus "-tickrate" "\${tickrate}" - -# Then the parms that start with + -fn_set_game_params parms_plus "+clientport" "\${clientport}" -fn_set_game_params parms_plus "+tv_port" "\${sourcetvport}" -fn_set_game_params parms_plus "+mapcyclefile" "\${mapcyclefile}" -fn_set_game_params parms_plus "+servercfgfile" "\${servercfg}" -fn_set_game_params parms_plus "+map" "\${defaultmap}" - -# And the settings for defaults -fn_set_game_params settings "appid" "204" "Steam App ID" -fn_set_game_params settings "clientport" "27005" "Client Port" -fn_set_game_params settings "defaultmap" "dm_lockdown" "Default map to load" -fn_set_game_params settings "engine" "source" "Game Engine" -fn_set_game_params settings "game" "hl2mp" "Name of game to pass to srcds" -fn_set_game_params settings "gamename" "HalfLife2Deathmatch" "Name for subdirectory in GitHub repo" -fn_set_game_params settings "mapcyclefile" "mapcycle.txt" "Map Cycle File" -fn_set_game_params settings "maxplayers" "64" "Maximum player count" -fn_set_game_params settings "playlist" "custom" "Playlist" -fn_set_game_params settings "port" "27015" "Port to bind for server" -fn_set_game_params settings "servercfg" "${selfname}.cfg" "Server Config file" -fn_set_game_params settings "sourcetvport" "27020" "SourceTV Port" -fn_set_game_params settings "srcds_parms" "--EMPTY--" "Additional SRCDS Parameters. Put the parameters that start with \"-\" first, then \"+\" parameters after" -fn_set_game_params settings "steampass" "--EMPTY--" "Steam Password" -fn_set_game_params settings "steamuser" "anonymous" "Steam Username" -fn_set_game_params settings "tickrate" "64" "Server Tick Rate" - -# These are values that the script uses, they don't get used by the srcds server directly -fn_set_game_params settings "systemdir" "\${filesdir}/\${game}" -fn_set_game_params settings "gamelogdir" "\${systemdir}/logs" -fn_set_game_params settings "executabledir" "\${filesdir}" -fn_set_game_params settings "executable" "./srcds_linux" -fn_set_game_params settings "servercfg" "\${servicename}.cfg" -fn_set_game_params settings "servercfgdir" "\${systemdir}/cfg" -fn_set_game_params settings "servercfgfullpath" "\${servercfgdir}/\${servercfg}" -fn_set_game_params settings "servercfgdefault" "\${servercfgdir}/lgsm-default.cfg" - +fn_set_game_params settings "engine" "starbound" +fn_set_game_params settings "executabledir" "\${filesdir}/linux64" +fn_set_game_params settings "executable" "./starbound_server" +fn_set_game_params settings "servercfg" "sbboot.config" +fn_set_game_params settings "servercfgdir" "\${executabledir}" +fn_set_game_params settings "gamelogdir" "\${filesdir}/giraffe_storage" diff --git a/gamedata/_teeworlds b/gamedata/_teeworlds index f8213df3c..f4994b9ed 100644 --- a/gamedata/_teeworlds +++ b/gamedata/_teeworlds @@ -1,63 +1,15 @@ # Game Settings File -# _srcds -# Base SRCDS Game - -engine="teeworlds" -systemdir="${filesdir}" -executabledir="${filesdir}" -executable="./teeworlds_srv" -servercfg="${servicename}.cfg" # Teeworlds can also auto load any config if an autoexec.cfg file is present in the server dir -servercfgdir="${filesdir}" -servercfgfullpath="${servercfgdir}/${servercfg}" -servercfgdefault="${servercfgdir}/lgsm-default.cfg" +# _teeworlds +# TeeWorlds Engine # Import default settings fn_import_game_settings _default -# This is the way we create a script that collates and parses the parameters -fn_parms(){ - parms="$(echo $(sed -e 's/=\"/ /g' -e 's/\"$//g' ${settingsdir}/parms_minus)) ${srcds_parms} $(echo $(sed -e 's/=\"/ /g' -e 's/\"$//g' ${settingsdir}/parms_plus))" -} -# The parms that start with - go first -fn_set_game_params parms_minus "-game" "\${game}" -fn_set_game_params parms_minus "-strictportbind" "--EMPTY--" -fn_set_game_params parms_minus "-ip" "\${ip}" -fn_set_game_params parms_minus "-port" "\${port}" -fn_set_game_params parms_minus "-maxplayers" "\${maxplayers}" -fn_set_game_params parms_minus "-tickrate" "\${tickrate}" - -# Then the parms that start with + -fn_set_game_params parms_plus "+clientport" "\${clientport}" -fn_set_game_params parms_plus "+tv_port" "\${sourcetvport}" -fn_set_game_params parms_plus "+mapcyclefile" "\${mapcyclefile}" -fn_set_game_params parms_plus "+servercfgfile" "\${servercfg}" -fn_set_game_params parms_plus "+map" "\${defaultmap}" - -# And the settings for defaults -fn_set_game_params settings "appid" "204" "Steam App ID" -fn_set_game_params settings "clientport" "27005" "Client Port" -fn_set_game_params settings "defaultmap" "dm_lockdown" "Default map to load" -fn_set_game_params settings "engine" "source" "Game Engine" -fn_set_game_params settings "game" "hl2mp" "Name of game to pass to srcds" -fn_set_game_params settings "gamename" "HalfLife2Deathmatch" "Name for subdirectory in GitHub repo" -fn_set_game_params settings "mapcyclefile" "mapcycle.txt" "Map Cycle File" -fn_set_game_params settings "maxplayers" "64" "Maximum player count" -fn_set_game_params settings "playlist" "custom" "Playlist" -fn_set_game_params settings "port" "27015" "Port to bind for server" -fn_set_game_params settings "servercfg" "${selfname}.cfg" "Server Config file" -fn_set_game_params settings "sourcetvport" "27020" "SourceTV Port" -fn_set_game_params settings "srcds_parms" "--EMPTY--" "Additional SRCDS Parameters. Put the parameters that start with \"-\" first, then \"+\" parameters after" -fn_set_game_params settings "steampass" "--EMPTY--" "Steam Password" -fn_set_game_params settings "steamuser" "anonymous" "Steam Username" -fn_set_game_params settings "tickrate" "64" "Server Tick Rate" - -# These are values that the script uses, they don't get used by the srcds server directly -fn_set_game_params settings "systemdir" "\${filesdir}/\${game}" -fn_set_game_params settings "gamelogdir" "\${systemdir}/logs" +fn_set_game_params settings "engine" "teeworlds" +fn_set_game_params settings "systemdir" "\${filesdir}" fn_set_game_params settings "executabledir" "\${filesdir}" -fn_set_game_params settings "executable" "./srcds_linux" -fn_set_game_params settings "servercfg" "\${servicename}.cfg" -fn_set_game_params settings "servercfgdir" "\${systemdir}/cfg" +fn_set_game_params settings "executable" "./teeworlds_srv" +fn_set_game_params settings "servercfg" "\${servicename}.cfg" # Teeworlds can also auto load any config if an autoexec.cfg file is present in the server dir +fn_set_game_params settings "servercfgdir" "\${filesdir}" fn_set_game_params settings "servercfgfullpath" "\${servercfgdir}/\${servercfg}" fn_set_game_params settings "servercfgdefault" "\${servercfgdir}/lgsm-default.cfg" - diff --git a/gamedata/_terraria b/gamedata/_terraria index b26e6d0e0..37b11f0cb 100644 --- a/gamedata/_terraria +++ b/gamedata/_terraria @@ -1,63 +1,15 @@ # Game Settings File -# _srcds -# Base SRCDS Game - -engine="terraria" -executabledir="${filesdir}" -executable="./TerrariaServer" -servercfg="${servicename}.txt" -servercfgdir="${filesdir}" -servercfgfullpath="${servercfgdir}/${servercfg}" -servercfgdefault="${servercfgdir}/lgsm-default.txt" -#gamelogdir="" # Terraria Doesn't Have a Server Log +# _terraria +# Terarria Engine # Import default settings fn_import_game_settings _default -# This is the way we create a script that collates and parses the parameters -fn_parms(){ - parms="$(echo $(sed -e 's/=\"/ /g' -e 's/\"$//g' ${settingsdir}/parms_minus)) ${srcds_parms} $(echo $(sed -e 's/=\"/ /g' -e 's/\"$//g' ${settingsdir}/parms_plus))" -} -# The parms that start with - go first -fn_set_game_params parms_minus "-game" "\${game}" -fn_set_game_params parms_minus "-strictportbind" "--EMPTY--" -fn_set_game_params parms_minus "-ip" "\${ip}" -fn_set_game_params parms_minus "-port" "\${port}" -fn_set_game_params parms_minus "-maxplayers" "\${maxplayers}" -fn_set_game_params parms_minus "-tickrate" "\${tickrate}" - -# Then the parms that start with + -fn_set_game_params parms_plus "+clientport" "\${clientport}" -fn_set_game_params parms_plus "+tv_port" "\${sourcetvport}" -fn_set_game_params parms_plus "+mapcyclefile" "\${mapcyclefile}" -fn_set_game_params parms_plus "+servercfgfile" "\${servercfg}" -fn_set_game_params parms_plus "+map" "\${defaultmap}" - -# And the settings for defaults -fn_set_game_params settings "appid" "204" "Steam App ID" -fn_set_game_params settings "clientport" "27005" "Client Port" -fn_set_game_params settings "defaultmap" "dm_lockdown" "Default map to load" -fn_set_game_params settings "engine" "source" "Game Engine" -fn_set_game_params settings "game" "hl2mp" "Name of game to pass to srcds" -fn_set_game_params settings "gamename" "HalfLife2Deathmatch" "Name for subdirectory in GitHub repo" -fn_set_game_params settings "mapcyclefile" "mapcycle.txt" "Map Cycle File" -fn_set_game_params settings "maxplayers" "64" "Maximum player count" -fn_set_game_params settings "playlist" "custom" "Playlist" -fn_set_game_params settings "port" "27015" "Port to bind for server" -fn_set_game_params settings "servercfg" "${selfname}.cfg" "Server Config file" -fn_set_game_params settings "sourcetvport" "27020" "SourceTV Port" -fn_set_game_params settings "srcds_parms" "--EMPTY--" "Additional SRCDS Parameters. Put the parameters that start with \"-\" first, then \"+\" parameters after" -fn_set_game_params settings "steampass" "--EMPTY--" "Steam Password" -fn_set_game_params settings "steamuser" "anonymous" "Steam Username" -fn_set_game_params settings "tickrate" "64" "Server Tick Rate" - -# These are values that the script uses, they don't get used by the srcds server directly -fn_set_game_params settings "systemdir" "\${filesdir}/\${game}" -fn_set_game_params settings "gamelogdir" "\${systemdir}/logs" +fn_set_game_params settings "engine" "terraria" fn_set_game_params settings "executabledir" "\${filesdir}" -fn_set_game_params settings "executable" "./srcds_linux" -fn_set_game_params settings "servercfg" "\${servicename}.cfg" -fn_set_game_params settings "servercfgdir" "\${systemdir}/cfg" +fn_set_game_params settings "executable" "./TerrariaServer" +fn_set_game_params settings "servercfg" "\${servicename}.txt" +fn_set_game_params settings "servercfgdir" "\${filesdir}" fn_set_game_params settings "servercfgfullpath" "\${servercfgdir}/\${servercfg}" -fn_set_game_params settings "servercfgdefault" "\${servercfgdir}/lgsm-default.cfg" - +fn_set_game_params settings "servercfgdefault" "\${servercfgdir}/lgsm-default.txt" +fn_set_game_params settings "gamelogdir" "" diff --git a/gamedata/_unity3d b/gamedata/_unity3d index 6b03ed85f..cd5448fa6 100644 --- a/gamedata/_unity3d +++ b/gamedata/_unity3d @@ -1,80 +1,31 @@ # Game Settings File -# _srcds -# Base SRCDS Game +# _unity3d +# Unity 3D Engine +# Import default settings +fn_import_game_settings _default -engine="unity3d" +fn_set_game_params settings "engine" "unity3d" # http://hurtworld.wikia.com/wiki/Hosting_A_Server fn_parms(){ parms="-batchmode -nographics -exec \"host ${port} ${map} ${loadsave};queryport ${queryport};maxplayers ${maxplayers};servername ${servername};creativemode ${creativemode};${admins}\" -logfile \"${logfile}\" " } -port="12871" -queryport="12881" -maxplayers="20" -map="" #Optional -creativemode="0" #Free Build -logfile="gamelog.txt" -admins="" "Adding admins using STEAMID64. Example : addadmin 012345678901234567; addadmin 987654321098765432" +fn_set_game_params settings "port" "12871" +fn_set_game_params settings "queryport" "12881" +fn_set_game_params settings "maxplayers" "20" +fn_set_game_params settings "map" "--EMPTY--" "Optional" +fn_set_game_params settings "creativemode" "0" "Free Build" +fn_set_game_params settings "logfile" "gamelog.txt" +fn_set_game_params settings "admins" "--EMPTY--" "Adding admins using STEAMID64. Example : addadmin 012345678901234567; addadmin 987654321098765432" # Advanced -loadsave="" "Rollback server state (remove after start command)" -x64mode="0" "Use unstable 64 bit server executable (O/1)" -filesdir="${rootdir}/serverfiles" -systemdir="${filesdir}" -executabledir="${filesdir}" +fn_set_game_params settings "loadsave" "" "Rollback server state (remove after start command)" +fn_set_game_params settings "x64mode" "0" "Use unstable 64 bit server executable (O/1)" +fn_set_game_params settings "filesdir" "\${rootdir}/serverfiles" +fn_set_game_params settings "systemdir" "\${filesdir}" +fn_set_game_params settings "executabledir" "\${filesdir}" if [ "${x64mode}" == "1" ]; then - executable="./Hurtworld.x86_64" + fn_set_game_params settings "executable" "./Hurtworld.x86_64" else - executable="./Hurtworld.x86" + fn_set_game_params settings "executable" "./Hurtworld.x86" fi - -# Import default settings -fn_import_game_settings _default - -# This is the way we create a script that collates and parses the parameters -fn_parms(){ - parms="$(echo $(sed -e 's/=\"/ /g' -e 's/\"$//g' ${settingsdir}/parms_minus)) ${srcds_parms} $(echo $(sed -e 's/=\"/ /g' -e 's/\"$//g' ${settingsdir}/parms_plus))" -} -# The parms that start with - go first -fn_set_game_params parms_minus "-game" "\${game}" -fn_set_game_params parms_minus "-strictportbind" "--EMPTY--" -fn_set_game_params parms_minus "-ip" "\${ip}" -fn_set_game_params parms_minus "-port" "\${port}" -fn_set_game_params parms_minus "-maxplayers" "\${maxplayers}" -fn_set_game_params parms_minus "-tickrate" "\${tickrate}" - -# Then the parms that start with + -fn_set_game_params parms_plus "+clientport" "\${clientport}" -fn_set_game_params parms_plus "+tv_port" "\${sourcetvport}" -fn_set_game_params parms_plus "+mapcyclefile" "\${mapcyclefile}" -fn_set_game_params parms_plus "+servercfgfile" "\${servercfg}" -fn_set_game_params parms_plus "+map" "\${defaultmap}" - -# And the settings for defaults -fn_set_game_params settings "appid" "204" "Steam App ID" -fn_set_game_params settings "clientport" "27005" "Client Port" -fn_set_game_params settings "defaultmap" "dm_lockdown" "Default map to load" -fn_set_game_params settings "engine" "source" "Game Engine" -fn_set_game_params settings "game" "hl2mp" "Name of game to pass to srcds" -fn_set_game_params settings "gamename" "HalfLife2Deathmatch" "Name for subdirectory in GitHub repo" -fn_set_game_params settings "mapcyclefile" "mapcycle.txt" "Map Cycle File" -fn_set_game_params settings "maxplayers" "64" "Maximum player count" -fn_set_game_params settings "playlist" "custom" "Playlist" -fn_set_game_params settings "port" "27015" "Port to bind for server" -fn_set_game_params settings "servercfg" "${selfname}.cfg" "Server Config file" -fn_set_game_params settings "sourcetvport" "27020" "SourceTV Port" -fn_set_game_params settings "srcds_parms" "--EMPTY--" "Additional SRCDS Parameters. Put the parameters that start with \"-\" first, then \"+\" parameters after" -fn_set_game_params settings "steampass" "--EMPTY--" "Steam Password" -fn_set_game_params settings "steamuser" "anonymous" "Steam Username" -fn_set_game_params settings "tickrate" "64" "Server Tick Rate" - -# These are values that the script uses, they don't get used by the srcds server directly -fn_set_game_params settings "systemdir" "\${filesdir}/\${game}" -fn_set_game_params settings "gamelogdir" "\${systemdir}/logs" -fn_set_game_params settings "executabledir" "\${filesdir}" -fn_set_game_params settings "executable" "./srcds_linux" -fn_set_game_params settings "servercfg" "\${servicename}.cfg" -fn_set_game_params settings "servercfgdir" "\${systemdir}/cfg" -fn_set_game_params settings "servercfgfullpath" "\${servercfgdir}/\${servercfg}" -fn_set_game_params settings "servercfgdefault" "\${servercfgdir}/lgsm-default.cfg" - diff --git a/gamedata/_unreal b/gamedata/_unreal index be55ed481..8f7aa893f 100644 --- a/gamedata/_unreal +++ b/gamedata/_unreal @@ -1,63 +1,20 @@ # Game Settings File -# _srcds -# Base SRCDS Game - -engine="unreal4" -systemdir="${filesdir}/ShooterGame" -executabledir="${systemdir}/Binaries/Linux" -executable="./ShooterGameServer" -servercfgdir="${systemdir}/Saved/Config/LinuxServer" -servercfg="GameUserSettings.ini" -servercfgfullpath="${servercfgdir}/${servercfg}" -servercfgdefault="${servercfgdir}/lgsm-default.ini" +# _unreal +# Unreal Engine # Import default settings fn_import_game_settings _default # This is the way we create a script that collates and parses the parameters fn_parms(){ - parms="$(echo $(sed -e 's/=\"/ /g' -e 's/\"$//g' ${settingsdir}/parms_minus)) ${srcds_parms} $(echo $(sed -e 's/=\"/ /g' -e 's/\"$//g' ${settingsdir}/parms_plus))" + parms="" } -# The parms that start with - go first -fn_set_game_params parms_minus "-game" "\${game}" -fn_set_game_params parms_minus "-strictportbind" "--EMPTY--" -fn_set_game_params parms_minus "-ip" "\${ip}" -fn_set_game_params parms_minus "-port" "\${port}" -fn_set_game_params parms_minus "-maxplayers" "\${maxplayers}" -fn_set_game_params parms_minus "-tickrate" "\${tickrate}" - -# Then the parms that start with + -fn_set_game_params parms_plus "+clientport" "\${clientport}" -fn_set_game_params parms_plus "+tv_port" "\${sourcetvport}" -fn_set_game_params parms_plus "+mapcyclefile" "\${mapcyclefile}" -fn_set_game_params parms_plus "+servercfgfile" "\${servercfg}" -fn_set_game_params parms_plus "+map" "\${defaultmap}" - -# And the settings for defaults -fn_set_game_params settings "appid" "204" "Steam App ID" -fn_set_game_params settings "clientport" "27005" "Client Port" -fn_set_game_params settings "defaultmap" "dm_lockdown" "Default map to load" -fn_set_game_params settings "engine" "source" "Game Engine" -fn_set_game_params settings "game" "hl2mp" "Name of game to pass to srcds" -fn_set_game_params settings "gamename" "HalfLife2Deathmatch" "Name for subdirectory in GitHub repo" -fn_set_game_params settings "mapcyclefile" "mapcycle.txt" "Map Cycle File" -fn_set_game_params settings "maxplayers" "64" "Maximum player count" -fn_set_game_params settings "playlist" "custom" "Playlist" -fn_set_game_params settings "port" "27015" "Port to bind for server" -fn_set_game_params settings "servercfg" "${selfname}.cfg" "Server Config file" -fn_set_game_params settings "sourcetvport" "27020" "SourceTV Port" -fn_set_game_params settings "srcds_parms" "--EMPTY--" "Additional SRCDS Parameters. Put the parameters that start with \"-\" first, then \"+\" parameters after" -fn_set_game_params settings "steampass" "--EMPTY--" "Steam Password" -fn_set_game_params settings "steamuser" "anonymous" "Steam Username" -fn_set_game_params settings "tickrate" "64" "Server Tick Rate" - -# These are values that the script uses, they don't get used by the srcds server directly fn_set_game_params settings "systemdir" "\${filesdir}/\${game}" fn_set_game_params settings "gamelogdir" "\${systemdir}/logs" -fn_set_game_params settings "executabledir" "\${filesdir}" -fn_set_game_params settings "executable" "./srcds_linux" -fn_set_game_params settings "servercfg" "\${servicename}.cfg" -fn_set_game_params settings "servercfgdir" "\${systemdir}/cfg" +fn_set_game_params settings "executabledir" "\${systemdir}/Binaries/Linux" +fn_set_game_params settings "executable" "./\${game}Server" +fn_set_game_params settings "servercfg" "GameUserSettings.ini" +fn_set_game_params settings "servercfgdir" "\${systemdir}/Saved/Config/LinuxServer" fn_set_game_params settings "servercfgfullpath" "\${servercfgdir}/\${servercfg}" -fn_set_game_params settings "servercfgdefault" "\${servercfgdir}/lgsm-default.cfg" +fn_set_game_params settings "servercfgdefault" "\${servercfgdir}/lgsm-default.ini" diff --git a/gamedata/_unreal2 b/gamedata/_unreal2 index c3febfe01..9b635f42a 100644 --- a/gamedata/_unreal2 +++ b/gamedata/_unreal2 @@ -1,54 +1,18 @@ # Game Settings File -# _srcds -# Base SRCDS Game +# _unreal2 +# Unreal 2 Engine # Import default settings fn_import_game_settings _default -# This is the way we create a script that collates and parses the parameters fn_parms(){ - parms="$(echo $(sed -e 's/=\"/ /g' -e 's/\"$//g' ${settingsdir}/parms_minus)) ${srcds_parms} $(echo $(sed -e 's/=\"/ /g' -e 's/\"$//g' ${settingsdir}/parms_plus))" + parms="" } -# The parms that start with - go first -fn_set_game_params parms_minus "-game" "\${game}" -fn_set_game_params parms_minus "-strictportbind" "--EMPTY--" -fn_set_game_params parms_minus "-ip" "\${ip}" -fn_set_game_params parms_minus "-port" "\${port}" -fn_set_game_params parms_minus "-maxplayers" "\${maxplayers}" -fn_set_game_params parms_minus "-tickrate" "\${tickrate}" - -# Then the parms that start with + -fn_set_game_params parms_plus "+clientport" "\${clientport}" -fn_set_game_params parms_plus "+tv_port" "\${sourcetvport}" -fn_set_game_params parms_plus "+mapcyclefile" "\${mapcyclefile}" -fn_set_game_params parms_plus "+servercfgfile" "\${servercfg}" -fn_set_game_params parms_plus "+map" "\${defaultmap}" - -# And the settings for defaults -fn_set_game_params settings "appid" "204" "Steam App ID" -fn_set_game_params settings "clientport" "27005" "Client Port" -fn_set_game_params settings "defaultmap" "dm_lockdown" "Default map to load" -fn_set_game_params settings "engine" "source" "Game Engine" -fn_set_game_params settings "game" "hl2mp" "Name of game to pass to srcds" -fn_set_game_params settings "gamename" "HalfLife2Deathmatch" "Name for subdirectory in GitHub repo" -fn_set_game_params settings "mapcyclefile" "mapcycle.txt" "Map Cycle File" -fn_set_game_params settings "maxplayers" "64" "Maximum player count" -fn_set_game_params settings "playlist" "custom" "Playlist" -fn_set_game_params settings "port" "27015" "Port to bind for server" -fn_set_game_params settings "servercfg" "${selfname}.cfg" "Server Config file" -fn_set_game_params settings "sourcetvport" "27020" "SourceTV Port" -fn_set_game_params settings "srcds_parms" "--EMPTY--" "Additional SRCDS Parameters. Put the parameters that start with \"-\" first, then \"+\" parameters after" -fn_set_game_params settings "steampass" "--EMPTY--" "Steam Password" -fn_set_game_params settings "steamuser" "anonymous" "Steam Username" -fn_set_game_params settings "tickrate" "64" "Server Tick Rate" - -# These are values that the script uses, they don't get used by the srcds server directly fn_set_game_params settings "systemdir" "\${filesdir}/\${game}" fn_set_game_params settings "gamelogdir" "\${systemdir}/logs" -fn_set_game_params settings "executabledir" "\${filesdir}" -fn_set_game_params settings "executable" "./srcds_linux" -fn_set_game_params settings "servercfg" "\${servicename}.cfg" -fn_set_game_params settings "servercfgdir" "\${systemdir}/cfg" +fn_set_game_params settings "executabledir" "\${systemdir}/Binaries/Linux" +fn_set_game_params settings "executable" "./\${game}Server" +fn_set_game_params settings "servercfg" "GameUserSettings.ini" +fn_set_game_params settings "servercfgdir" "\${systemdir}/Saved/Config/LinuxServer" fn_set_game_params settings "servercfgfullpath" "\${servercfgdir}/\${servercfg}" -fn_set_game_params settings "servercfgdefault" "\${servercfgdir}/lgsm-default.cfg" - +fn_set_game_params settings "servercfgdefault" "\${servercfgdir}/lgsm-default.ini" diff --git a/gamedata/_unreal4 b/gamedata/_unreal4 index c3febfe01..e7f01274d 100644 --- a/gamedata/_unreal4 +++ b/gamedata/_unreal4 @@ -1,54 +1,18 @@ # Game Settings File -# _srcds -# Base SRCDS Game +# _unreal4 +# Unreal 4 Engine # Import default settings fn_import_game_settings _default -# This is the way we create a script that collates and parses the parameters fn_parms(){ - parms="$(echo $(sed -e 's/=\"/ /g' -e 's/\"$//g' ${settingsdir}/parms_minus)) ${srcds_parms} $(echo $(sed -e 's/=\"/ /g' -e 's/\"$//g' ${settingsdir}/parms_plus))" + parms="" } -# The parms that start with - go first -fn_set_game_params parms_minus "-game" "\${game}" -fn_set_game_params parms_minus "-strictportbind" "--EMPTY--" -fn_set_game_params parms_minus "-ip" "\${ip}" -fn_set_game_params parms_minus "-port" "\${port}" -fn_set_game_params parms_minus "-maxplayers" "\${maxplayers}" -fn_set_game_params parms_minus "-tickrate" "\${tickrate}" - -# Then the parms that start with + -fn_set_game_params parms_plus "+clientport" "\${clientport}" -fn_set_game_params parms_plus "+tv_port" "\${sourcetvport}" -fn_set_game_params parms_plus "+mapcyclefile" "\${mapcyclefile}" -fn_set_game_params parms_plus "+servercfgfile" "\${servercfg}" -fn_set_game_params parms_plus "+map" "\${defaultmap}" - -# And the settings for defaults -fn_set_game_params settings "appid" "204" "Steam App ID" -fn_set_game_params settings "clientport" "27005" "Client Port" -fn_set_game_params settings "defaultmap" "dm_lockdown" "Default map to load" -fn_set_game_params settings "engine" "source" "Game Engine" -fn_set_game_params settings "game" "hl2mp" "Name of game to pass to srcds" -fn_set_game_params settings "gamename" "HalfLife2Deathmatch" "Name for subdirectory in GitHub repo" -fn_set_game_params settings "mapcyclefile" "mapcycle.txt" "Map Cycle File" -fn_set_game_params settings "maxplayers" "64" "Maximum player count" -fn_set_game_params settings "playlist" "custom" "Playlist" -fn_set_game_params settings "port" "27015" "Port to bind for server" -fn_set_game_params settings "servercfg" "${selfname}.cfg" "Server Config file" -fn_set_game_params settings "sourcetvport" "27020" "SourceTV Port" -fn_set_game_params settings "srcds_parms" "--EMPTY--" "Additional SRCDS Parameters. Put the parameters that start with \"-\" first, then \"+\" parameters after" -fn_set_game_params settings "steampass" "--EMPTY--" "Steam Password" -fn_set_game_params settings "steamuser" "anonymous" "Steam Username" -fn_set_game_params settings "tickrate" "64" "Server Tick Rate" - -# These are values that the script uses, they don't get used by the srcds server directly fn_set_game_params settings "systemdir" "\${filesdir}/\${game}" fn_set_game_params settings "gamelogdir" "\${systemdir}/logs" -fn_set_game_params settings "executabledir" "\${filesdir}" -fn_set_game_params settings "executable" "./srcds_linux" -fn_set_game_params settings "servercfg" "\${servicename}.cfg" -fn_set_game_params settings "servercfgdir" "\${systemdir}/cfg" +fn_set_game_params settings "executabledir" "\${systemdir}/Binaries/Linux" +fn_set_game_params settings "executable" "./\${game}Server" +fn_set_game_params settings "servercfg" "GameUserSettings.ini" +fn_set_game_params settings "servercfgdir" "\${systemdir}/Saved/Config/LinuxServer" fn_set_game_params settings "servercfgfullpath" "\${servercfgdir}/\${servercfg}" -fn_set_game_params settings "servercfgdefault" "\${servercfgdir}/lgsm-default.cfg" - +fn_set_game_params settings "servercfgdefault" "\${servercfgdir}/lgsm-default.ini" diff --git a/gamedata/arkserver b/gamedata/arkserver index 49f332d32..70efe434e 100644 --- a/gamedata/arkserver +++ b/gamedata/arkserver @@ -1,15 +1,17 @@ -#TODO +# Game Settings File +# +# + +# Import Engine +fn_import_game_settings _unreal4 + fn_parms(){ parms="TheIsland?listen" } appid="376030" -servicename="ark-server" +game="ShooterGame" gamename="ARK: Survivial Evolved" - - -engine="unreal4" -systemdir="${filesdir}/ShooterGame" executabledir="${systemdir}/Binaries/Linux" executable="./ShooterGameServer" servercfgdir="${systemdir}/Saved/Config/LinuxServer" diff --git a/gamedata/arma3server b/gamedata/arma3server index eb71df4b9..1cbd8ed83 100644 --- a/gamedata/arma3server +++ b/gamedata/arma3server @@ -1,24 +1,23 @@ -#TODO -port="2302" +# Game Settings File +# Import Engine +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" } + +port="2302" mods="" servermods="" bepath="" -appid="233780" -# Development -# appid="233780 -beta development" +appid="233780" "For Development branch, use \"233780 -beta development\"" gamename="ARMA 3" - -engine="realvirtuality" -systemdir="${filesdir}" -executabledir="${filesdir}" +executabledir="\${filesdir}" executable="./arma3server" -servercfg="${servicename}.server.cfg" -networkcfg="${servicename}.network.cfg" -servercfgdir="${systemdir}/cfg" -servercfgfullpath="${servercfgdir}/${servercfg}" -networkcfgfullpath="${servercfgdir}/${networkcfg}" -servercfgdefault="${servercfgdir}/lgsm-default.server.cfg" -networkcfgdefault="${servercfgdir}/lgsm-default.network.cfg" +servercfg="\${servicename}.server.cfg" +networkcfg="\${servicename}.network.cfg" +servercfgdir="\${systemdir}/cfg" +servercfgfullpath="\${servercfgdir}/\${servercfg}" +networkcfgfullpath="\${servercfgdir}/\${networkcfg}" +servercfgdefault="\${servercfgdir}/lgsm-default.server.cfg" +networkcfgdefault="\${servercfgdir}/lgsm-default.network.cfg" diff --git a/gamedata/bb2server b/gamedata/bb2server index a2e2a9ff0..1c719e91d 100644 --- a/gamedata/bb2server +++ b/gamedata/bb2server @@ -1,11 +1,14 @@ -#TODO -defaultmap="bba_barracks" -gslt="" +# Game Settings File +# Import Engine +fn_import_game_settings _source +#fn_import_game_settings _gslt + # https://developer.valvesoftware.com/wiki/Command_Line_Options#Source_Dedicated_Server fn_parms(){ parms="-game brainbread2 -insecure -strictportbind -ip ${ip} -port ${port} +clientport ${clientport} +tv_port ${sourcetvport} +sv_setsteamaccount ${gslt} +map ${defaultmap} +servercfgfile ${servercfg} -maxplayers ${maxplayers}" } +game="brainvread2" +defaultmap="bba_barracks" +gslt="" appid="346330" gamename="BrainBread 2" -engine="source" -systemdir="${filesdir}/brainbread2" diff --git a/gamedata/bmdmserver b/gamedata/bmdmserver index a723b21ae..18d499a9e 100644 --- a/gamedata/bmdmserver +++ b/gamedata/bmdmserver @@ -1,9 +1,11 @@ -#TODO -defaultmap="dm_bounce" +# Game Settings File +# Import Engine +fn_import_game_settings _source + fn_parms(){ parms="-game bms -strictportbind -ip ${ip} -port ${port} +clientport ${clientport} +tv_port ${sourcetvport} +map ${defaultmap} +servercfgfile ${servercfg} -maxplayers ${maxplayers}" } +game="bms" +defaultmap="dm_bounce" appid="346680" gamename="Black Mesa: Deathmatch" -engine="source" -systemdir="${filesdir}/bms" diff --git a/gamedata/bsserver b/gamedata/bsserver index 893b7fc3b..ce236ad26 100644 --- a/gamedata/bsserver +++ b/gamedata/bsserver @@ -1,11 +1,13 @@ -#TODO -defaultmap="duel_winter" +# Game Settings File +# Import Engine +fn_import_game_settings _source + # https://developer.valvesoftware.com/wiki/Command_Line_Options#Source_Dedicated_Server fn_parms(){ parms="-autoupdate -strictportbind -ip ${ip} -port ${port} +clientport ${clientport} +tv_port ${sourcetvport} +map ${defaultmap} +servercfgfile ${servercfg} -maxplayers ${maxplayers}" } # Steam +defaultmap="duel_winter" appid="228780" gamename="Blade Symphony" -engine="source" -systemdir="${filesdir}/berimbau" +game="berimbau" diff --git a/gamedata/csczserver b/gamedata/csczserver index 26f5de761..5b00c2083 100644 --- a/gamedata/csczserver +++ b/gamedata/csczserver @@ -1,14 +1,12 @@ -#TODO -defaultmap="de_dust2" +# Game Settings File +# Import Engine +fn_import_game_settings _goldsource fn_parms(){ parms="-game czero -strictportbind +ip ${ip} -port ${port} +clientport ${clientport} +map ${defaultmap} -maxplayers ${maxplayers}" } + # Steam appid="90" -appidmod="czero" +defaultmap="de_dust2" +game="czero" gamename="Counter Strike: Condition Zero" -engine="goldsource" -systemdir="${filesdir}/czero" -executable="./hlds_run" -servercfg="${servicename}.cfg" -servercfgdir="${systemdir}" diff --git a/gamedata/csgoserver b/gamedata/csgoserver index 1c897be0a..d1dceccb9 100644 --- a/gamedata/csgoserver +++ b/gamedata/csgoserver @@ -21,14 +21,14 @@ fn_set_game_params settings "ws_start_map" "--EMPTY--" "Workshop Start Map" # The parms that start with - go first -fn_set_game_params parms_minus "-usercon" "--EMPTY--" -fn_set_game_params parms_minus "-maxplayers_override" "\${maxplayers}" -fn_set_game_params parms_minus "-authkey" "\${authkey}" +fn_set_game_params parms_minus "usercon" "--EMPTY--" +fn_set_game_params parms_minus "maxplayers_override" "\${maxplayers}" +fn_set_game_params parms_minus "authkey" "\${authkey}" # Then the parms that start with + -fn_set_game_params parms_plus "+sv_setsteamaccount" "\${gslt}" -fn_set_game_params parms_plus "+mapgroup" "\${mapgroup}" -fn_set_game_params parms_plus "+game_mode" "\${gamemode}" -fn_set_game_params parms_plus "+game_type" "\${gametype}" -fn_set_game_params parms_plus "+host_workshop_collection" "\${ws_collection_id}" -fn_set_game_params parms_plus "+workshop_start_map" "\${ws_start_map}" +fn_set_game_params parms_plus "sv_setsteamaccount" "\${gslt}" +fn_set_game_params parms_plus "mapgroup" "\${mapgroup}" +fn_set_game_params parms_plus "game_mode" "\${gamemode}" +fn_set_game_params parms_plus "game_type" "\${gametype}" +fn_set_game_params parms_plus "host_workshop_collection" "\${ws_collection_id}" +fn_set_game_params parms_plus "workshop_start_map" "\${ws_start_map}" diff --git a/gamedata/csserver b/gamedata/csserver index 554090141..8b4476247 100644 --- a/gamedata/csserver +++ b/gamedata/csserver @@ -1,13 +1,14 @@ +# Game Settings File +# Import Engine +fn_import_game_settings _goldsource + #TODO -defaultmap="de_dust2" # https://developer.valvesoftware.com/wiki/Command_Line_Options#Command-line_parameters_2 fn_parms(){ parms="-game cstrike -strictportbind +ip ${ip} -port ${port} +clientport ${clientport} +map ${defaultmap} -maxplayers ${maxplayers}" } # Steam appid="90" -appidmod="cstrike" +defaultmap="de_dust2" +game="cstrike" gamename="Counter Strike 1.6" -engine="goldsource" -systemdir="${filesdir}/cstrike" -executable="./hlds_run" diff --git a/gamedata/cssserver b/gamedata/cssserver index e6bf5efbc..3ee0309de 100644 --- a/gamedata/cssserver +++ b/gamedata/cssserver @@ -6,9 +6,9 @@ fn_import_game_settings _source # Override some server settings -appid="232330" +fn_parms(){ parms="-game cstrike -strictportbind -ip ${ip} -port ${port} +clientport ${clientport} +tv_port ${sourcetvport} +map ${defaultmap} +servercfgfile ${servercfg} -maxplayers ${maxplayers}" -gamename="Counter Strike: Source" +} fn_set_game_params settings "appid" "232330" fn_set_game_params settings "defaultmap" "de_dust2" diff --git a/gamedata/dabserver b/gamedata/dabserver index d371c36b0..39f4f7023 100644 --- a/gamedata/dabserver +++ b/gamedata/dabserver @@ -1,12 +1,14 @@ -defaultmap="da_rooftops" -maxplayers="10" +# Game Settings File +# Import Engine +fn_import_game_settings _source + # https://developer.valvesoftware.com/wiki/Command_Line_Options#Source_Dedicated_Server fn_parms(){ parms="-strictportbind -ip ${ip} -port ${port} +clientport ${clientport} +tv_port ${sourcetvport} +map ${defaultmap} +servercfgfile ${servercfg} -maxplayers ${maxplayers}" } +defaultmap="da_rooftops" +maxplayers="10" appid="317800" gamename="Double Action: Boogaloo" -engine="source" - -systemdir="${filesdir}/dab" +game="dab" executable="./dabds.sh" diff --git a/gamedata/dmcserver b/gamedata/dmcserver index 51f6e7a24..a165aa9de 100644 --- a/gamedata/dmcserver +++ b/gamedata/dmcserver @@ -1,4 +1,7 @@ -defaultmap="dcdm5" +# Game Settings File +# Import Engine +fn_import_game_settings _goldsource + # https://developer.valvesoftware.com/wiki/Command_Line_Options#Command-line_parameters_2 fn_parms(){ parms="-game dmc -strictportbind +ip ${ip} -port ${port} +clientport ${clientport} +map ${defaultmap} -maxplayers ${maxplayers}" @@ -6,8 +9,6 @@ parms="-game dmc -strictportbind +ip ${ip} -port ${port} +clientport ${clientpor # Steam appid="90" -appidmod="dmc" +game="dmc" +defaultmap="dcdm5" gamename="Deathmatch Classic" -engine="goldsource" -systemdir="${filesdir}/dmc" -executable="./hlds_run" diff --git a/gamedata/dodserver b/gamedata/dodserver index e7e3254be..7c0b2d725 100644 --- a/gamedata/dodserver +++ b/gamedata/dodserver @@ -1,12 +1,13 @@ -defaultmap="dod_Anzio" +# Game Settings File +# Import Engine +fn_import_game_settings _goldsource + # https://developer.valvesoftware.com/wiki/Command_Line_Options#Command-line_parameters_2 fn_parms(){ parms="-game dod -strictportbind +ip ${ip} -port ${port} +clientport ${clientport} +map ${defaultmap} -maxplayers ${maxplayers}" } # Steam appid="90" -appidmod="dod" +game="dod" +defaultmap="dod_Anzio" gamename="Day of Defeat" -engine="goldsource" -systemdir="${filesdir}/dod" -executable="./hlds_run" diff --git a/gamedata/dodsserver b/gamedata/dodsserver index 7df69b07b..b54fab18a 100644 --- a/gamedata/dodsserver +++ b/gamedata/dodsserver @@ -1,9 +1,12 @@ -defaultmap="dod_Anzio" +# Game Settings File +# Import Engine +fn_import_game_settings _source + # https://developer.valvesoftware.com/wiki/Command_Line_Options#Source_Dedicated_Server fn_parms(){ parms="-game dod -strictportbind -ip ${ip} -port ${port} +clientport ${clientport} +tv_port ${sourcetvport} +map ${defaultmap} +servercfgfile ${servercfg} -maxplayers ${maxplayers}" } appid="232290" +defaultmap="dod_Anzio" gamename="Day of Defeat: Source" -engine="source" -systemdir="${filesdir}/dod" +game="dod" diff --git a/gamedata/dstserver b/gamedata/dstserver index abc4f08a8..f2e34919c 100644 --- a/gamedata/dstserver +++ b/gamedata/dstserver @@ -1,14 +1,11 @@ +# Game Settings File +# Import Engine +fn_import_game_settings _dontstarve + #http://dont-starve-game.wikia.com/wiki/Guides/Don%E2%80%99t_Starve_Together_Dedicated_Servers fn_parms(){ parms="" } appid="343050" gamename="Don't Starve Together" - -engine="dontstarve" -systemdir="${filesdir}" -executabledir="${filesdir}/bin" -executable="./dontstarve_dedicated_server_nullrenderer" -servercfg="settings.ini" -servercfgdir="${HOME}/.klei/DoNotStarveTogether" -servercfgdefault="${servercfgdir}/lgsm-default.ini" +game="dontstarve" diff --git a/gamedata/fofserver b/gamedata/fofserver index 24166667d..38d43dd78 100644 --- a/gamedata/fofserver +++ b/gamedata/fofserver @@ -1,9 +1,13 @@ -defaultmap="fof_depot" +# Game Settings File +# Import Engine +fn_import_game_settings _source + # https://developer.valvesoftware.com/wiki/Command_Line_Options#Source_Dedicated_Server fn_parms(){ parms="-game fof -strictportbind -ip ${ip} -port ${port} +clientport ${clientport} +tv_port ${sourcetvport} +map ${defaultmap} +servercfgfile ${servercfg} -maxplayers ${maxplayers}" } appid="295230" gamename="Fistful of Frags" +defaultmap="fof_depot" engine="source" -systemdir="${filesdir}/fof" +game="fof" diff --git a/gamedata/gesserver b/gamedata/gesserver index 456920eec..edee8878d 100644 --- a/gamedata/gesserver +++ b/gamedata/gesserver @@ -1,10 +1,13 @@ -defaultmap="ge_archives" +# Game Settings File +# Import Engine +fn_import_game_settings _source + # https://developer.valvesoftware.com/wiki/Command_Line_Options#Source_Dedicated_Server fn_parms(){ parms="-game gesource -strictportbind -ip ${ip} -port ${port} +clientport ${clientport} +tv_port ${sourcetvport} +map ${defaultmap} +servercfgfile ${servercfg} -maxplayers ${maxplayers}" } -# Steam - 2007 SDK + appid="310" +defaultmap="ge_archives" gamename="GoldenEye: Source" -engine="source" -systemdir="${filesdir}/gesource" +game="gesource" diff --git a/gamedata/gmodserver b/gamedata/gmodserver index f2ed8e187..d984ce19d 100644 --- a/gamedata/gmodserver +++ b/gamedata/gmodserver @@ -17,10 +17,10 @@ fn_set_game_params settings "workshopauth" "--EMPTY--" "Optional key for Worksho fn_set_game_params settings "workshopcollectionid" "--EMPTY--" "Workshop Collection ID" # The parms that start with - go first -fn_set_game_params parms_minus "-authkey" "\${workshopauth}" +fn_set_game_params parms_minus "authkey" "\${workshopauth}" # Then the parms that start with + -fn_set_game_params parms_plus "+sv_setsteamaccount" "\${gslt}" -fn_set_game_params parms_plus "+mapgroup" "\${mapgroup}" -fn_set_game_params parms_plus "+gamemode" "\${gamemode}" -fn_set_game_params parms_plus "+host_workshop_collection" "\${"workshopcollectionid"}" +fn_set_game_params parms_plus "sv_setsteamaccount" "\${gslt}" +fn_set_game_params parms_plus "mapgroup" "\${mapgroup}" +fn_set_game_params parms_plus "gamemode" "\${gamemode}" +fn_set_game_params parms_plus "host_workshop_collection" "\${"workshopcollectionid"}" diff --git a/gamedata/hl2dmserver b/gamedata/hl2dmserver index 14545aa43..042788dc5 100644 --- a/gamedata/hl2dmserver +++ b/gamedata/hl2dmserver @@ -1,10 +1,12 @@ -defaultmap="dm_lockdown" +# Game Settings File +# Import Engine +fn_import_game_settings _source # https://developer.valvesoftware.com/wiki/Command_Line_Options#Source_Dedicated_Server fn_parms(){ parms="-game hl2mp -strictportbind -ip ${ip} -port ${port} +clientport ${clientport} +tv_port ${sourcetvport} +map ${defaultmap} +servercfgfile ${servercfg} -maxplayers ${maxplayers}" } appid="232370" +defaultmap="dm_lockdown" gamename="Half Life 2: Deathmatch" -engine="source" -systemdir="${filesdir}/hl2mp" +game="hl2mp" diff --git a/gamedata/hldmserver b/gamedata/hldmserver index e27e2ba13..754e5738f 100644 --- a/gamedata/hldmserver +++ b/gamedata/hldmserver @@ -1,11 +1,13 @@ -defaultmap="crossfire" +# Game Settings File +# Import Engine +fn_import_game_settings _goldsource + # https://developer.valvesoftware.com/wiki/Command_Line_Options#Command-line_parameters_2 fn_parms(){ parms="-game valve -strictportbind +ip ${ip} -port ${port} +clientport ${clientport} +map ${defaultmap} -maxplayers ${maxplayers}" } -# Steam + appid="90" gamename="Half Life: Deathmatch" -engine="goldsource" -systemdir="${filesdir}/valve" -executable="./hlds_run" +defaultmap="crossfire" +game="valve" diff --git a/gamedata/hldmsserver b/gamedata/hldmsserver index edbbeaa55..6b9042da0 100644 --- a/gamedata/hldmsserver +++ b/gamedata/hldmsserver @@ -1,4 +1,7 @@ -defaultmap="crossfire" +# Game Settings File +# Import Engine +fn_import_game_settings _source + # https://developer.valvesoftware.com/wiki/Command_Line_Options#Source_Dedicated_Server fn_parms(){ parms="-game hl1mp -strictportbind -ip ${ip} -port ${port} +clientport ${clientport} +tv_port ${sourcetvport} +map ${defaultmap} +servercfgfile ${servercfg} -maxplayers ${maxplayers}" @@ -6,5 +9,5 @@ parms="-game hl1mp -strictportbind -ip ${ip} -port ${port} +clientport ${clientp # Steam appid="255470" gamename="Half-Life Deathmatch: Source" -engine="source" -systemdir="${filesdir}/hl1mp" +defaultmap="crossfire" +game="hl1mp" diff --git a/gamedata/hwserver b/gamedata/hwserver index 47d198c08..6b1b4cc87 100644 --- a/gamedata/hwserver +++ b/gamedata/hwserver @@ -1,21 +1,24 @@ -servername="Hurtworld LGSM Server" -appid="405100" -gamename="Hurtworld" +# Game Settings File +# Import Engine +fn_import_game_settings _unity3d + -engine="unity3d" # http://hurtworld.wikia.com/wiki/Hosting_A_Server fn_parms(){ parms="-batchmode -nographics -exec \"host ${port} ${map} ${loadsave};queryport ${queryport};maxplayers ${maxplayers};servername ${servername};creativemode ${creativemode};${admins}\" -logfile \"${logfile}\" " } + +servername="Hurtworld LGSM Server" +appid="405100" +gamename="Hurtworld" port="12871" queryport="12881" maxplayers="20" -map="" #Optional -creativemode="0" #Free Build +map="" "Optional" +creativemode="0" "Free Build" logfile="gamelog.txt" admins="" "Adding admins using STEAMID64. Example : addadmin 012345678901234567; addadmin 987654321098765432" -# Advanced loadsave="" "Rollback server state (remove after start command)" x64mode="0" "Use unstable 64 bit server executable (O/1)" filesdir="${rootdir}/serverfiles" diff --git a/gamedata/insserver b/gamedata/insserver index 88b425c4c..0e5d953f7 100644 --- a/gamedata/insserver +++ b/gamedata/insserver @@ -6,7 +6,7 @@ fn_import_game_settings _source # Add playlist parameter -fn_set_game_params parms_plus "+sv_playlist" "\${playlist}" +fn_set_game_params parms_plus "sv_playlist" "\${playlist}" # Override some server settings fn_set_game_params settings "appid" "237410" diff --git a/gamedata/jc2server b/gamedata/jc2server index 8e27c941e..abf03720e 100644 --- a/gamedata/jc2server +++ b/gamedata/jc2server @@ -1,13 +1,10 @@ +# Game Settings File +# Import Engine +fn_import_game_settings _avalanche + fn_parms(){ parms="" } + appid="261140" gamename="Just Cause 2" -engine="avalanche" -systemdir="${filesdir}" -executabledir="${filesdir}" -executable="./Jcmp-Server" -servercfg="config.lua" -servercfgdir="${filesdir}" -servercfgfullpath="${servercfgdir}/${servercfg}" -servercfgdefault="${servercfgdir}/default_config.lua" diff --git a/gamedata/kfserver b/gamedata/kfserver index 18eec2d4c..cf50d05a5 100644 --- a/gamedata/kfserver +++ b/gamedata/kfserver @@ -1,4 +1,6 @@ -defaultmap="KF-BioticsLab.rom" +# Game Settings File +# Import Engine +fn_import_game_settings _unreal2 fn_parms(){ parms="server ${defaultmap}?game=KFmod.KFGameType?VACSecured=true -nohomedir ini=${servercfg} log=${gamelog}" @@ -10,7 +12,10 @@ parms="server ${defaultmap}?game=KFmod.KFGameType?VACSecured=true -nohomedir ini appid="215360" gamename="Killing Floor" -engine="unreal2" +defaultmap="KF-BioticsLab.rom" + + + systemdir="${filesdir}/System" executabledir="${systemdir}" diff --git a/gamedata/l4d2server b/gamedata/l4d2server index 06923648e..1e1780ab3 100644 --- a/gamedata/l4d2server +++ b/gamedata/l4d2server @@ -1,10 +1,13 @@ -defaultmap="c5m1_waterfront" -maxplayers="8" +# Game Settings File +# Import Engine +fn_import_game_settings _source + # https://developer.valvesoftware.com/wiki/Command_Line_Options#Source_Dedicated_Server fn_parms(){ parms="-game left4dead2 -strictportbind -ip ${ip} -port ${port} +clientport ${clientport} +map ${defaultmap} +servercfgfile ${servercfg} -maxplayers ${maxplayers}" } appid="222860" gamename="Left 4 Dead 2" -engine="source" -systemdir="${filesdir}/left4dead2" +defaultmap="c5m1_waterfront" +maxplayers="8" +game="left4dead2" diff --git a/gamedata/l4dserver b/gamedata/l4dserver index 01d30552c..9c3812c75 100644 --- a/gamedata/l4dserver +++ b/gamedata/l4dserver @@ -1,5 +1,7 @@ -defaultmap="l4d_hospital01_apartment" -maxplayers="8" +# Game Settings File +# Import Engine +fn_import_game_settings _source + # https://developer.valvesoftware.com/wiki/Command_Line_Options#Source_Dedicated_Server fn_parms(){ @@ -7,5 +9,6 @@ parms="-game left4dead -strictportbind -ip ${ip} -port ${port} +clientport ${cli } appid="222840" gamename="Left 4 Dead" -engine="source" -systemdir="${filesdir}/left4dead" +defaultmap="l4d_hospital01_apartment" +maxplayers="8" +game="left4dead" diff --git a/gamedata/nmrihserver b/gamedata/nmrihserver index 7660841ab..522bd9ed1 100644 --- a/gamedata/nmrihserver +++ b/gamedata/nmrihserver @@ -1,10 +1,13 @@ -defaultmap="nmo_broadway" -maxplayers="8" +# Game Settings File +# Import Engine +fn_import_game_settings _source + # https://developer.valvesoftware.com/wiki/Command_Line_Options#Source_Dedicated_Server fn_parms(){ parms="-game nmrih -insecure -strictportbind -ip ${ip} -port ${port} +clientport ${clientport} +tv_port ${sourcetvport} +map ${defaultmap} +servercfgfile ${servercfg} -maxplayers ${maxplayers}" } appid="317670" gamename="No More Room in Hell" -engine="source" -systemdir="${filesdir}/nmrih" +defaultmap="nmo_broadway" +maxplayers="8" +game="nmrih" diff --git a/gamedata/ns2cserver b/gamedata/ns2cserver index d716f5508..67893f0ad 100644 --- a/gamedata/ns2cserver +++ b/gamedata/ns2cserver @@ -1,3 +1,11 @@ +# Game Settings File +# 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}\"" +} + defaultmap="co_core" maxplayers="24" servername="NS2C Server" @@ -8,12 +16,7 @@ configpath="server1" modstorage="server1/Workshop" mods="" password="" -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}\"" -} - appid="313900" gamename="NS2: Combat" -engine="spark" executabledir="${filesdir}/ia32" executable="./ns2combatserver_linux32" diff --git a/gamedata/ns2server b/gamedata/ns2server index e4596b918..a25e9834e 100644 --- a/gamedata/ns2server +++ b/gamedata/ns2server @@ -1,3 +1,12 @@ +# Game Settings File +# 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}\"" +} + defaultmap="ns2_summit" maxplayers="24" servername="NS2 Server" @@ -8,13 +17,8 @@ configpath="server1" modstorage="server1/Workshop" mods="" password="" -# 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}\"" -} appid="4940" gamename="Natural Selection 2" -engine="spark" systemdir="${filesdir}" executabledir="${filesdir}" executable="./server_linux32" diff --git a/gamedata/opforserver b/gamedata/opforserver index 0e416992c..97347eb12 100644 --- a/gamedata/opforserver +++ b/gamedata/opforserver @@ -1,5 +1,7 @@ -defaultmap="op4_bootcamp" -maxplayers="16" +# Game Settings File +# Import Engine +fn_import_game_settings _goldsource + # https://developer.valvesoftware.com/wiki/Command_Line_Options#Command-line_parameters_2 fn_parms(){ parms="-game gearbox -strictportbind +ip ${ip} -port ${port} +clientport ${clientport} +map ${defaultmap} -maxplayers ${maxplayers}" @@ -7,5 +9,6 @@ parms="-game gearbox -strictportbind +ip ${ip} -port ${port} +clientport ${clien appid="90" appidmod="gearbox" gamename="Half-Life: Opposing Force" -engine="goldsource" -systemdir="${filesdir}/gearbox" +defaultmap="op4_bootcamp" +maxplayers="16" +game="gearbox" diff --git a/gamedata/pvkiiserver b/gamedata/pvkiiserver index 7776e9dd7..05e627398 100644 --- a/gamedata/pvkiiserver +++ b/gamedata/pvkiiserver @@ -1,9 +1,12 @@ -defaultmap="bt_island" -maxplayers="24" +# Game Settings File +# Import Engine +fn_import_game_settings _source + fn_parms(){ parms="-game pvkii -strictportbind -ip ${ip} -port ${port} +clientport ${clientport} +tv_port ${sourcetvport} +map ${defaultmap} +servercfgfile ${servercfg} -maxplayers ${maxplayers}" } appid="17575" gamename="Pirates, Vikings, and Knights II" -engine="source" -systemdir="${filesdir}/pvkii" +defaultmap="bt_island" +maxplayers="24" +game="pvkii" diff --git a/gamedata/pzserver b/gamedata/pzserver index ccdd166c2..87ba9c2c5 100644 --- a/gamedata/pzserver +++ b/gamedata/pzserver @@ -1,13 +1,17 @@ +# Game Settings File +# Import Engine +fn_import_game_settings _projectzomboid + + fn_parms(){ parms="" } appid="380870" gamename="Project Zomboid" -engine="projectzomboid" -systemdir="${filesdir}" -executabledir="${filesdir}" +systemdir="\${filesdir}" +executabledir="\${filesdir}" executable="./start-server.sh" servercfg="servertest.ini" -servercfgdir="${HOME}/Zomboid/Server" -servercfgfullpath="${servercfgdir}/${servercfg}" +servercfgdir="\${HOME}/Zomboid/Server" +servercfgfullpath="\${servercfgdir}/\${servercfg}" diff --git a/gamedata/ricochetserver b/gamedata/ricochetserver index 26f6ed999..81785ab31 100644 --- a/gamedata/ricochetserver +++ b/gamedata/ricochetserver @@ -1,10 +1,12 @@ -defaultmap="rc_arena" -maxplayers="16" +# Game Settings File +# Import Engine +fn_import_game_settings _goldsource + fn_parms(){ parms="-game ricochet -strictportbind +ip ${ip} -port ${port} +clientport ${clientport} +map ${defaultmap} -maxplayers ${maxplayers}" } appid="90" -appidmod="ricochet" +defaultmap="rc_arena" +maxplayers="16" gamename="Ricochet" -engine="goldsource" -systemdir="${filesdir}/ricochet" +game="ricochet" diff --git a/gamedata/roserver b/gamedata/roserver index f29be7c32..5066018b3 100644 --- a/gamedata/roserver +++ b/gamedata/roserver @@ -1,18 +1,20 @@ -defaultmap="RO-Arad.rom" +# Game Settings File +# Import Engine +fn_import_game_settings _unreal2 fn_parms(){ parms="server ${defaultmap}?game=ROGame.ROTeamGame?VACSecured=true -nohomedir ini=${servercfg} log=${gamelog}" } + gamename="Red Orchestra: Ostfront 41-45" -engine="unreal2" appid="223250" +defaultmap="RO-Arad.rom" -# Directories -systemdir="${filesdir}/system" -executabledir="${systemdir}" +systemdir="\${filesdir}/system" +executabledir="\${systemdir}" executable="./ucc-bin" -servercfg="${servicename}.ini" -servercfgdir="${systemdir}" -servercfgfullpath="${servercfgdir}/${servercfg}" -servercfgdefault="${servercfgdir}/default.ini" -compressedmapsdir="${rootdir}/Maps-Compressed" +servercfg="\${servicename}.ini" +servercfgdir="\${systemdir}" +servercfgfullpath="\${servercfgdir}/\${servercfg}" +servercfgdefault="\${servercfgdir}/default.ini" +compressedmapsdir="\${rootdir}/Maps-Compressed" diff --git a/gamedata/sbserver b/gamedata/sbserver index fa279fe64..d4e9fadcd 100644 --- a/gamedata/sbserver +++ b/gamedata/sbserver @@ -1,10 +1,13 @@ +# Game Settings File +# Import Engine +fn_import_game_settings _starbound + fn_parms(){ parms="" } appid="211820" gamename="Starbound" - -engine="starbound" +game="starbound" executabledir="${filesdir}/linux64" executable="./starbound_server" servercfg="sbboot.config" diff --git a/gamedata/sdtdserver b/gamedata/sdtdserver index 0e8e6b438..0131a94ed 100644 --- a/gamedata/sdtdserver +++ b/gamedata/sdtdserver @@ -1,12 +1,14 @@ +# Game Settings File +# Import Engine +fn_import_game_settings _unity3d + # http://7daystodie.gamepedia.com/Server fn_parms(){ parms="-configfile=${servercfgfullpath} -dedicated" } + appid="294420" gamename="7 Days To Die" - - -engine="unity3d" executable="./startserver.sh" servercfg="${servicename}.xml" servercfgdir="${filesdir}" diff --git a/gamedata/ss3sserver b/gamedata/ss3sserver index 12f34b096..d677fdd90 100644 --- a/gamedata/ss3sserver +++ b/gamedata/ss3sserver @@ -1,15 +1,18 @@ +# Game Settings File +# Import Engine +fn_import_game_settings _seriousengine35 + # https://raw.githubusercontent.com/dgibbs64/linuxgsm/master/SeriousSam3BFE/help/DedicatedServer_Readme.txt fn_parms(){ parms="+ip ${ip} +logfile ${gamelog} +exec ${servercfgfullpath}" } + appid="41080" gamename="Serious Sam 3: BFE" - -engine="seriousengine35" -systemdir="${filesdir}/Bin" +systemdir="\${filesdir}/Bin" executable="./runSam3_DedicatedServer.sh" -executabledir="${systemdir}" -servercfg="${servicename}.ini" -servercfgdir="${filesdir}/Content/SeriousSam3/Config" -servercfgfullpath="${servercfgdir}/${servercfg}" -servercfgdefault="${servercfgdir}/lgsm-default.ini" +executabledir="\${systemdir}" +servercfg="\${servicename}.ini" +servercfgdir="\${filesdir}/Content/SeriousSam3/Config" +servercfgfullpath="\${servercfgdir}/\${servercfg}" +servercfgdefault="\${servercfgdir}/lgsm-default.ini" diff --git a/gamedata/terrariaserver b/gamedata/terrariaserver index 6bc19df29..5bb3da2da 100644 --- a/gamedata/terrariaserver +++ b/gamedata/terrariaserver @@ -1,14 +1,17 @@ +# Game Settings File +# Import Engine +fn_import_game_settings _terarria + fn_parms(){ parms="-config ${servercfgfullpath}" } appid="105600" gamename="Terraria" - -engine="terraria" -executabledir="${filesdir}" +game="terraria" +executabledir="\${filesdir}" executable="./TerrariaServer" -servercfg="${servicename}.txt" -servercfgdir="${filesdir}" -servercfgfullpath="${servercfgdir}/${servercfg}" -servercfgdefault="${servercfgdir}/lgsm-default.txt" -#gamelogdir="" # Terraria Doesn't Have a Server Log +servercfg="\${servicename}.txt" +servercfgdir="\${filesdir}" +servercfgfullpath="\${servercfgdir}/\${servercfg}" +servercfgdefault="\${servercfgdir}/lgsm-default.txt" +gamelogdir="" "Terraria Doesn't Have a Server Log" diff --git a/gamedata/tests_jc2server.sh b/gamedata/tests_jc2server.sh index df3550df5..da2e45196 100644 --- a/gamedata/tests_jc2server.sh +++ b/gamedata/tests_jc2server.sh @@ -1,9 +1,12 @@ +# Game Settings File +# Import Engine +fn_import_game_settings _default + fn_parms(){ parms="" } -appid="261140" -# Server Details +appid="261140" servicename="jc2-server" gamename="Just Cause 2" diff --git a/gamedata/tf2server b/gamedata/tf2server index 9f85fa8e7..00fecde54 100644 --- a/gamedata/tf2server +++ b/gamedata/tf2server @@ -1,6 +1,6 @@ -defaultmap="cp_badlands" -maxplayers="16" -gslt="" +# Game Settings File +# Import Engine +fn_import_game_settings _source # https://developer.valvesoftware.com/wiki/Command_Line_Options#Source_Dedicated_Server fn_parms(){ @@ -8,5 +8,7 @@ parms="-game tf -strictportbind -ip ${ip} -port ${port} +clientport ${clientport } appid="232250" gamename="Team Fortress 2" -engine="source" -systemdir="${filesdir}/tf" +defaultmap="cp_badlands" +maxplayers="16" +gslt="" +game="tf" diff --git a/gamedata/tfcserver b/gamedata/tfcserver index 944ea6546..ff08fc46f 100644 --- a/gamedata/tfcserver +++ b/gamedata/tfcserver @@ -1,5 +1,7 @@ -defaultmap="dustbowl" -maxplayers="16" +# Game Settings File +# Import Engine +fn_import_game_settings _goldsource + # https://developer.valvesoftware.com/wiki/Command_Line_Options#Command-line_parameters_2 fn_parms(){ parms="-game tfc -strictportbind _ip ${ip} -port ${port} +clientport ${clientport} +map ${defaultmap} -maxplayers ${maxplayers}" @@ -8,5 +10,6 @@ parms="-game tfc -strictportbind _ip ${ip} -port ${port} +clientport ${clientpor appid="90" appidmos="tfc" gamename="Team Fortress Classic" -engine="goldsource" -systemdir="${filesdir}/tfc" +defaultmap="dustbowl" +maxplayers="16" +game="tfc" diff --git a/gamedata/twserver b/gamedata/twserver index 5ac278356..cfec177ef 100644 --- a/gamedata/twserver +++ b/gamedata/twserver @@ -1,14 +1,18 @@ +# Game Settings File +# Import Engine +fn_import_game_settings _teeworlds + fn_parms(){ parms="-f ${servercfgfullpath}" } + appid="380840" gamename="Teeworlds" - -engine="teeworlds" +game="teeworlds" systemdir="${filesdir}" executabledir="${filesdir}" executable="./teeworlds_srv" -servercfg="${servicename}.cfg" # Teeworlds can also auto load any config if an autoexec.cfg file is present in the server dir +servercfg="${servicename}.cfg" servercfgdir="${filesdir}" servercfgfullpath="${servercfgdir}/${servercfg}" servercfgdefault="${servercfgdir}/lgsm-default.cfg" diff --git a/gamedata/ut2k4server b/gamedata/ut2k4server index 0cb644419..862d04453 100644 --- a/gamedata/ut2k4server +++ b/gamedata/ut2k4server @@ -1,9 +1,12 @@ +# Game Settings File +# Import Engine +fn_import_game_settings _unreal2 + defaultmap="DM-Rankin" fn_parms(){ parms="server ${defaultmap}?game=XGame.xDeathMatch -nohomedir ini=${servercfg} log=${gamelog}" } gamename="Unreal Tournament 2004" -engine="unreal2" systemdir="${filesdir}/System" executabledir="${systemdir}" executable="./ucc-bin" diff --git a/gamedata/ut99server b/gamedata/ut99server index 850e20f8f..486a24b46 100644 --- a/gamedata/ut99server +++ b/gamedata/ut99server @@ -1,10 +1,12 @@ -defaultmap="DM-Deck16][" +# Game Settings File +# Import Engine +fn_import_game_settings _unreal fn_parms(){ parms="server ${defaultmap}.unr ini=${servercfgfullpath}" } gamename="Unreal Tournament 99" -engine="unreal" +defaultmap="DM-Deck16][" systemdir="${filesdir}/System" executabledir="${systemdir}" executable="./ucc-bin"