diff --git a/dont-starve-together.kvp b/dont-starve-together.kvp new file mode 100644 index 0000000..51192a6 --- /dev/null +++ b/dont-starve-together.kvp @@ -0,0 +1,41 @@ +App.AdminMethod=STDIO +App.ApplicationPort1=11000 +App.ApplicationPort2=8766 +App.ApplicationPort3=27016 +App.RemoteAdminPort=10889 +App.ApplicationReadyMode=Immediate +App.BaseDirectory=./dont-starve-together/343050/ +App.CommandLineArgs=-persistent_storage_root "../dstserver" -conf_dir "dstserver_config" -shard shard {{$FormattedArgs}} +App.CommandLineParameterDelimiter= +App.CommandLineParameterFormat=-{0} "{1}" +App.DisplayName=Don't Starve Together +App.EnvironmentVariables={"LD_LIBRARY_PATH": "./linux64:%LD_LIBRARY_PATH%", "SteamAppId": "343050"} +App.ExecutableLinux=343050/bin/dontstarve_dedicated_server_nullrenderer +App.ExecutableWin=343050\bin\dontstarve_dedicated_server_nullrenderer.exe +App.AppSettings={"console_enabled":"true","encode_user_path":"true"} +App.ExitMethod=String +App.ExitString=c_shutdown(true) +App.HasReadableConsole=true +App.HasWritableConsole=true +App.RapidStartup=false +App.RootDir=./dont-starve-together/ +App.UpdateSource=Multi +App.UpdateSources=[{"UpdateStageName": "SteamCMD Download","UpdateSourcePlatform": "All", "UpdateSource": "SteamCMD", "UpdateSourceData": "343050"}] +App.WorkingDir=343050/bin +App.EncodeUserPath=true +App.ConsoleEnabled=true +Console.AppReadyRegex= +Console.ThrowawayMessageRegex= +Console.UserChatRegex=^\[\d+:\d+:\d+\]: \[Say\] \(.+\) (?.+?): (?.+?)$ +Console.UserJoinRegex=^\[\d+:\d+:\d+\]: \[Join Announcement\] (?.+?)$ +Console.UserLeaveRegex=^\[\d+:\d+:\d+\]: \[Leave Announcement\] (?.+?)$ +Meta.Author=IceOfWraith +Meta.ConfigManifest=dont-starve-togetherconfig.json +Meta.MetaConfigManifest=dont-starve-togethermetaconfig.json +Meta.ConfigRoot=dont-starve-together.kvp +Meta.Description= +Meta.DisplayImageSource=steam:322330 +Meta.DisplayName=Don't Starve Together +Meta.EndpointURIFormat=steam://connect/{ip}/{GenericModule.App.ApplicationPort2} +Meta.OS=3 +Meta.URL=https://store.steampowered.com/app/322330/Dont_Starve_Together/ \ No newline at end of file diff --git a/dont-starve-togetherconfig.json b/dont-starve-togetherconfig.json new file mode 100644 index 0000000..1c41356 --- /dev/null +++ b/dont-starve-togetherconfig.json @@ -0,0 +1,339 @@ +[ + { + "DisplayName": "Max Players", + "Category": "Cluster Settings", + "Description": "Maximum number of players in the server", + "Keywords": "max players", + "FieldName": "max_players", + "InputType": "number", + "IsFlagArgument": false, + "ParamFieldName": "max_players", + "IncludeInCommandLine": false, + "DefaultValue": "64", + "EnumValues": {} + }, + { + "DisplayName": "Tick Rate", + "Category": "Server Settings", + "Description": "Force the server to run at a specific tick rate, higher is better performing but requires more bandwidth and CPU", + "Keywords": "tick rate", + "FieldName": "tickrate", + "InputType": "enum", + "IsFlagArgument": false, + "ParamFieldName": "tickrate", + "IncludeInCommandLine": true, + "DefaultValue": "60", + "EnumValues": { + "10": "10", + "15": "15", + "30": "30", + "60": "60" + } + }, + { + "DisplayName": "Lan Only", + "Category": "Server Settings", + "Description": "Set the server to LAN only mode", + "Keywords": "LAN only", + "FieldName": "dedicated_lan_server", + "InputType": "checkbox", + "IsFlagArgument": false, + "ParamFieldName": "dedicated_lan_server", + "IncludeInCommandLine": false, + "DefaultValue": "", + "EnumValues": { + "true": "True", + "false": "False" + } + }, + { + "DisplayName": "Master Server", + "Category": "Server Settings", + "Description": "Enable only on the master server", + "Keywords": "master server", + "FieldName": "is_master", + "InputType": "checkbox", + "IsFlagArgument": false, + "ParamFieldName": "is_master", + "IncludeInCommandLine": false, + "DefaultValue": "true", + "EnumValues": { + "true": "True", + "false": "False" + } + }, + { + "DisplayName": "Shard Name", + "Category": "Server Settings", + "Description": "The name for the server", + "Keywords": "server description", + "FieldName": "shard_name", + "InputType": "text", + "IsFlagArgument": false, + "ParamFieldName": "shard_name", + "IncludeInCommandLine": false, + "DefaultValue": "Master", + "EnumValues": {} + }, + { + "DisplayName": "Shard ID", + "Category": "Server Settings", + "Description": "A unique number to identify the shard in a cluster", + "Keywords": "shard id", + "FieldName": "id", + "InputType": "number", + "IsFlagArgument": false, + "ParamFieldName": "id", + "IncludeInCommandLine": false, + "DefaultValue": "1", + "EnumValues": {} + }, + { + "DisplayName": "Server Description", + "Category": "Server Settings", + "Description": "The description for the server", + "Keywords": "server description", + "FieldName": "default_server_description", + "InputType": "text", + "IsFlagArgument": false, + "ParamFieldName": "default_server_description", + "IncludeInCommandLine": false, + "DefaultValue": "AMP Powered Server", + "EnumValues": {} + }, + { + "DisplayName": "Enable PVP", + "Category": "Cluster Settings", + "Description": "Enable/Disable player-vs-player", + "Keywords": "pvp player vs", + "FieldName": "pvp", + "InputType": "checkbox", + "IsFlagArgument": false, + "ParamFieldName": "pvp", + "IncludeInCommandLine": false, + "DefaultValue": "false", + "EnumValues": { + "true": "True", + "false": "False" + } + }, + { + "DisplayName": "Game Mode", + "Category": "Server Settings", + "Description": "Game mode selection", + "Keywords": "game mode", + "FieldName": "game_mode", + "InputType": "enum", + "IsFlagArgument": false, + "ParamFieldName": "game_mode", + "IncludeInCommandLine": false, + "DefaultValue": "survival", + "EnumValues": { + "endless": "Endless", + "survival": "Survival", + "wilderness": "Wilderness" + } + }, + { + "DisplayName": "Cluster Intention", + "Category": "Cluster Settings", + "Description": "Cluster play style", + "Keywords": "cluster intention play style", + "FieldName": "cluster_intention", + "InputType": "enum", + "IsFlagArgument": false, + "ParamFieldName": "cluster_intention", + "IncludeInCommandLine": false, + "DefaultValue": "cooperative", + "EnumValues": { + "competitive": "Competitive", + "cooperative": "Cooperative", + "madness": "Madness", + "social": "Social" + } + }, + { + "DisplayName": "Enable Snapshots", + "Category": "Server Settings", + "Description": "Enable/Disable Snapshots", + "Keywords": "enable snapshots", + "FieldName": "enable_snapshots", + "InputType": "checkbox", + "IsFlagArgument": false, + "ParamFieldName": "enable_snapshots", + "IncludeInCommandLine": false, + "DefaultValue": "false", + "EnumValues": { + "true": "True", + "false": "False" + } + }, + { + "DisplayName": "Enable Autosaver", + "Category": "Server Settings", + "Description": "Enable/Disable Autosaving at the begining of each day in-game", + "Keywords": "enable autosaver", + "FieldName": "enable_autosaver", + "InputType": "checkbox", + "IsFlagArgument": false, + "ParamFieldName": "enable_autosaver", + "IncludeInCommandLine": false, + "DefaultValue": "true", + "EnumValues": { + "true": "True", + "false": "False" + } + }, + { + "DisplayName": "Enable Shards", + "Category": "Cluster Settings", + "Description": "Enable/Disable shards (Must be enabled for clusters)", + "Keywords": "enable shards", + "FieldName": "shard_enabled", + "InputType": "checkbox", + "IsFlagArgument": false, + "ParamFieldName": "shard_enabled", + "IncludeInCommandLine": false, + "DefaultValue": "true", + "EnumValues": { + "true": "True", + "false": "False" + } + }, + { + "DisplayName": "Connection Timeout (ms)", + "Category": "Server Settings", + "Description": "Time in milliseconds before server drops an idle player", + "Keywords": "connection timeout", + "FieldName": "connection_timeout", + "InputType": "number", + "IsFlagArgument": false, + "ParamFieldName": "connection_timeout", + "IncludeInCommandLine": false, + "DefaultValue": "8000", + "EnumValues": {} + }, + { + "DisplayName": "Enable Vote to Kick", + "Category": "Server Settings", + "Description": "Allow players to vote to kick other players", + "Keywords": "vote to kick enabled", + "FieldName": "vote_kick_enabled", + "InputType": "checkbox", + "IsFlagArgument": false, + "ParamFieldName": "vote_kick_enabled", + "IncludeInCommandLine": false, + "DefaultValue": "true", + "EnumValues": { + "true": "True", + "false": "False" + } + }, + { + "DisplayName": "Pause When Empty", + "Category": "Cluster Settings", + "Description": "Pause the game when no players in session", + "Keywords": "pause when empty", + "FieldName": "pause_when_empty", + "InputType": "checkbox", + "IsFlagArgument": false, + "ParamFieldName": "pause_when_empty", + "IncludeInCommandLine": false, + "DefaultValue": "true", + "EnumValues": { + "true": "True", + "false": "False" + } + }, + { + "DisplayName": "Cluster Description", + "Category": "Cluster Settings", + "Description": "Description for this server cluster", + "Keywords": "cluster description", + "FieldName": "cluster_description", + "InputType": "text", + "IsFlagArgument": false, + "ParamFieldName": "cluster_description", + "IncludeInCommandLine": false, + "DefaultValue": "AMP Powered Cluster", + "EnumValues": {} + }, + { + "DisplayName": "Cluster Name", + "Category": "Cluster Settings", + "Description": "Name for this cluster", + "Keywords": "cluster name", + "FieldName": "cluster_name", + "InputType": "text", + "IsFlagArgument": false, + "ParamFieldName": "cluster_name", + "IncludeInCommandLine": false, + "DefaultValue": "AMP Cluster", + "EnumValues": {} + }, + { + "DisplayName": "Cluster Password", + "Category": "Cluster Settings", + "Description": "Password required for a shard server to join the cluster", + "Keywords": "shard cluster password", + "FieldName": "cluster_password", + "InputType": "password", + "IsFlagArgument": false, + "ParamFieldName": "cluster_password", + "IncludeInCommandLine": false, + "DefaultValue": "Password123", + "EnumValues": {} + }, + { + "DisplayName": "Master IP", + "Category": "Cluster Settings", + "Description": "The IP of the master server (127.0.0.1 if same machine)", + "Keywords": "master ip address", + "FieldName": "master_ip", + "InputType": "text", + "IsFlagArgument": false, + "ParamFieldName": "master_ip", + "IncludeInCommandLine": false, + "DefaultValue": "127.0.0.1", + "EnumValues": {} + }, + { + "DisplayName": "Master Port", + "Category": "Cluster Settings", + "Description": "Port of the master server (Remote Admin Port of the Master in AMP)", + "Keywords": "master server port", + "FieldName": "master_port", + "InputType": "text", + "IsFlagArgument": false, + "ParamFieldName": "master_port", + "IncludeInCommandLine": false, + "DefaultValue": "", + "EnumValues": {} + }, + { + "DisplayName": "Cluster Key", + "Category": "Cluster Settings", + "Description": "Private key to allow cluster shards to communicate", + "Keywords": "cluster key password", + "FieldName": "cluster_key", + "InputType": "password", + "IsFlagArgument": false, + "ParamFieldName": "cluster_key", + "IncludeInCommandLine": false, + "DefaultValue": "Password123", + "EnumValues": {} + }, + { + "DisplayName": "Server Cluster Token (Required)", + "Category": "Server Settings", + "Description": "Obtained from [Klei's Site](https://accounts.klei.com/account/game/servers?game=DontStarveTogether)", + "Keywords": "cluster server token", + "FieldName": "cluster_token", + "InputType": "password", + "IsFlagArgument": false, + "ParamFieldName": "cluster_token", + "IncludeInCommandLine": false, + "DefaultValue": "", + "EnumValues": {} + } +] \ No newline at end of file diff --git a/dont-starve-togethermetaconfig.json b/dont-starve-togethermetaconfig.json new file mode 100644 index 0000000..4d243e7 --- /dev/null +++ b/dont-starve-togethermetaconfig.json @@ -0,0 +1,88 @@ +[ + { + "ConfigFile": "dstserver/dstserver_config/Cluster_1/shard/server.ini", + "Subsections": [ + { + "Heading": "NETWORK", + "SettingMappings": { + "server_port": "$ApplicationPort1", + } + }, + { + "Heading": "SHARD", + "SettingMappings": { + "is_master": "is_master", + "name": "shard_name", + "id": "id" + } + }, + { + "Heading": "STEAM", + "SettingMappings": { + "master_server_port": "$ApplicationPort2", + "authentication_port": "$ApplicationPort3" + } + }, + { + "Heading": "ACCOUNT", + "SettingMappings": { + "dedicated_lan_server": "dedicated_lan_server", + "encode_user_path": "encode_user_path" + } + } + ] + }, + { + "ConfigFile": "dstserver/dstserver_config/Cluster_1/cluster.ini", + "Subsections": [ + { + "Heading": "GAMEPLAY", + "SettingMappings": { + "game_mode": "game_mode", + "max_players": "max_players", + "pvp": "pvp", + "pause_when_empty": "pause_when_empty" + } + }, + { + "Heading": "NETWORK", + "SettingMappings": { + "cluster_description": "cluster_description", + "cluster_name": "cluster_name", + "cluster_intention": "cluster_intention", + "cluster_password": "cluster_password" + } + }, + { + "Heading": "MISC", + "SettingMappings": { + "console_enabled": "console_enabled" + } + }, + { + "Heading": "SHARD", + "SettingMappings": { + "shard_enabled": "shard_enabled", + "bind_ip": "$ApplicationIPBinding", + "master_ip": "master_ip", + "master_port": "master_port", + "cluster_key": "cluster_key" + } + } + ] + }, + { + "ConfigFile": "dstserver/dstserver_config/Cluster_1/cluster_token.txt", + "ConfigType": "kvp", + "ConfigFormat": "{0}{1}", + "Subsections": [ + { + "Heading": "$root", + "SettingMappings": { + "": "cluster_token" + } + } + + ] + } +] \ No newline at end of file