Skip to content

Commit a0a37ec

Browse files
authored
Soulmask: add cluster settings and port, DLC map and CustomGameMode setting (#1873)
1 parent 386ad91 commit a0a37ec

3 files changed

Lines changed: 86 additions & 3 deletions

File tree

soulmask.kvp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ Meta.Prerequisites=[]
2020
Meta.ExtraContainerPackages=[]
2121
Meta.ConfigReleaseState=NotSpecified
2222
Meta.NoCommercialUsage=False
23-
Meta.ConfigVersion=5
23+
Meta.ConfigVersion=6
2424
Meta.AppConfigId=d9cf5fcb-d4b3-4157-8b18-016b58cdbefe
2525
Meta.ReleaseNotes=
2626
Meta.BreakingReleaseNotes=
@@ -34,7 +34,7 @@ App.ExecutableLinux=server/WS/Binaries/Linux/WSServer-Linux-Shipping
3434
App.WorkingDir=server
3535
App.LinuxCommandLineArgs=
3636
App.WindowsCommandLineArgs=-stdout -FullStdOutLogOutput
37-
App.CommandLineArgs=WS {{Map}} -server -SteamServerName="{{ServerName}}" -Port={{$ServerPort}} -QueryPort={{$QueryPort}} -EchoPort={{$EchoPort}} -RconPort={{$RCONPort}} -RconAddr={{$ApplicationIPBinding}} -UTF8Output -MultiHome={{$ApplicationIPBinding}} -forcepassthrough {{PvEPvPMode}}{{initbackup}}{{$FormattedArgs}} -mod=\"{{mod}}\" {{CustomParameters}} {{$PlatformArgs}}
37+
App.CommandLineArgs=WS {{Map}}{{CustomGameMode}} -server -SteamServerName="{{ServerName}}" -Port={{$ServerPort}} -QueryPort={{$QueryPort}} -EchoPort={{$EchoPort}} -RconPort={{$RCONPort}} -RconAddr={{$ApplicationIPBinding}} -UTF8Output -MultiHome={{$ApplicationIPBinding}} -forcepassthrough {{PvEPvPMode}}{{initbackup}}{{$FormattedArgs}} -mod="{{mod}}" {{ClusterMode}}{{CustomParameters}} {{$PlatformArgs}}
3838
App.UseLinuxIOREDIR=False
3939
App.AppSettings={}
4040
App.EnvironmentVariables={"LD_LIBRARY_PATH":"{{$FullBaseDir}}linux64:%LD_LIBRARY_PATH%","SteamAppId":"2646460"}

soulmaskconfig.json

Lines changed: 77 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,26 @@
6464
"ParamFieldName": "Map",
6565
"DefaultValue": "Level01_Main",
6666
"EnumValues": {
67-
"Level01_Main": "Level01_Main"
67+
"Level01_Main": "Cloud Mist Forest (default)",
68+
"DLC_Level01_Main": "Shifting Sands"
69+
}
70+
},
71+
{
72+
"DisplayName": "Custom Game Mode",
73+
"Category": "Soulmask:stadia_controller",
74+
"Subcategory": "Server:dns:1",
75+
"Description": "Sets whether to start the server with the selected custom game mode. Use at your own risk",
76+
"Keywords": "game,mode,custom,survival,tribe,warrior,pvp,customgamemode",
77+
"FieldName": "CustomGameMode",
78+
"InputType": "enum",
79+
"ParamFieldName": "CustomGameMode",
80+
"DefaultValue": "",
81+
"EnumValues": {
82+
"": "None (default)",
83+
"?CustomGameMode=0": "Survival",
84+
"?CustomGameMode=1": "Tribe",
85+
"?CustomGameMode=2": "Warrior",
86+
"?CustomGameMode=3": "PvP"
6887
}
6988
},
7089
{
@@ -185,5 +204,62 @@
185204
"ParamFieldName": "CustomParameters",
186205
"DefaultValue": "",
187206
"EnumValues": {}
207+
},
208+
{
209+
"DisplayName": "Cluster Mode",
210+
"Category": "Soulmask:stadia_controller",
211+
"Subcategory": "Clusters:share:2",
212+
"Description": "Sets whether and in what mode the server is part of a cluster, allowing cross-server linkage. Each cluster server must have the same Server Password. Cluster character data is stored in 'Saved/Accounts/account.db' on the main cluster server",
213+
"Keywords": "cluster,cross,transfer,linkage,mode",
214+
"FieldName": "ClusterMode",
215+
"InputType": "enum",
216+
"ParamFieldName": "ClusterMode",
217+
"DefaultValue": "",
218+
"EnumValues": {
219+
"": "Standalone - no cluster (default)",
220+
"-mainserverport={{$ClusterPort}} -serverid={{serverid}} ": "Main cluster server",
221+
"-clientserverconnect={{MainServerIP}}:{{MainServerPort}} -serverid={{serverid}} ": "Child cluster server"
222+
}
223+
},
224+
{
225+
"DisplayName": "Cluster Server ID",
226+
"Category": "Soulmask:stadia_controller",
227+
"Subcategory": "Clusters:share:2",
228+
"Description": "Sets the ID of the server within a cluster. Each cluster server (main or child) must have a unique ID. Requires Cluster Mode to be set to the appropriate cluster server mode",
229+
"Keywords": "cluster,server,id",
230+
"FieldName": "serverid",
231+
"InputType": "number",
232+
"ParamFieldName": "serverid",
233+
"DefaultValue": "{{randomdigits(1)}}",
234+
"Placeholder": "1",
235+
"EnumValues": {}
236+
},
237+
{
238+
"DisplayName": "Main Cluster Server Connection IP",
239+
"Category": "Soulmask:stadia_controller",
240+
"Subcategory": "Clusters:share:2",
241+
"Description": "Sets the IP address of the main cluster server to connect to. Only used for child cluster servers - requires Cluster Mode to be set to 'Child cluster server'",
242+
"Keywords": "cluster,main,server,ip",
243+
"FieldName": "MainServerIP",
244+
"InputType": "text",
245+
"ParamFieldName": "MainServerIP",
246+
"DefaultValue": "127.0.0.1",
247+
"Placeholder": "127.0.0.1",
248+
"EnumValues": {}
249+
},
250+
{
251+
"DisplayName": "Main Cluster Server Connection Port",
252+
"Category": "Soulmask:stadia_controller",
253+
"Subcategory": "Clusters:share:2",
254+
"Description": "Sets the broadcast port of the main cluster server to connect to (this is the Cluster Broadcast Port on the main cluster server). Only used for child cluster servers - requires Cluster Mode to be set to 'Child cluster server'",
255+
"Keywords": "cluster,main,server,port",
256+
"FieldName": "MainServerPort",
257+
"InputType": "number",
258+
"MinValue": "1",
259+
"MaxValue": "65535",
260+
"ParamFieldName": "MainServerPort",
261+
"DefaultValue": "20000",
262+
"Placeholder": "20000",
263+
"EnumValues": {}
188264
}
189265
]

soulmaskports.json

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,5 +26,12 @@
2626
"Ref": "RCONPort",
2727
"Name": "RCON Port",
2828
"Description": "Port for RCON traffic"
29+
},
30+
{
31+
"Protocol": "TCP",
32+
"Port": 20000,
33+
"Ref": "ClusterPort",
34+
"Name": "Cluster Broadcast Port",
35+
"Description": "Port for main server cluster traffic"
2936
}
3037
]

0 commit comments

Comments
 (0)