Merge pull request #21 from IceOfWraith/dst

Add Don't Starve Together Module
This commit is contained in:
PhonicUK 2022-01-09 14:56:03 +00:00 committed by GitHub
commit 1a9e9b3a68
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 468 additions and 0 deletions

41
dont-starve-together.kvp Normal file
View File

@ -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\] \(.+\) (?<username>.+?): (?<message>.+?)$
Console.UserJoinRegex=^\[\d+:\d+:\d+\]: \[Join Announcement\] (?<username>.+?)$
Console.UserLeaveRegex=^\[\d+:\d+:\d+\]: \[Leave Announcement\] (?<username>.+?)$
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/

View File

@ -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": {}
}
]

View File

@ -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"
}
}
]
}
]