Re-Write of Squad (Draft)

Re-Write squad module, add web settings. Voting Config to be added at a later date.
This commit is contained in:
Shinynecrid 2022-02-14 08:41:10 -06:00
parent ed3b68b11d
commit c3fe8c6d0e
3 changed files with 415 additions and 18 deletions

View File

@ -1,17 +1,20 @@
App.AdminMethod=SourceRCON
App.ApplicationPort1=7787
App.ApplicationPort2=27165
App.ApplicationPort3=0
App.ApplicationReadyMode=RegexMatch
App.BaseDirectory=./squad-dedicated-server/403240/
App.CommandLineArgs=-maxplayers {{$MaxUsers}} -multihome {{$ApplicationIPBinding}} -random=always -log -port {{$ApplicationPort1}} -rconport {{$RemoteAdminPort}} -rconpassword "{{$RemoteAdminPassword}}"
App.CommandLineArgs=MULTIHOME={{$ApplicationIPBinding}} Port={{$ApplicationPort1}} QueryPort={{$ApplicationPort2}} RCONPORT={{$RemoteAdminPort}} RCONPASSWORD={{"$RemoteAdminPassword"}} -log -fullcrashdump
App.CommandLineParameterDelimiter=
App.CommandLineParameterFormat=-{0} "{1}"
App.CommandLineParameterFormat={0}="{1}"
App.DisplayName=Squad Dedicated Server
App.EnvironmentVariables={"LD_LIBRARY_PATH": "./linux64:%LD_LIBRARY_PATH%", "SteamAppId": "403240"}
App.EnvironmentVariables={"LD_LIBRARY_PATH":"{{$FullRootDir}}403240/linux64:%LD_LIBRARY_PATH%","SteamAppId":"393380"}
App.ExecutableLinux=403240/SquadGame/Binaries/Linux/SquadGameServer
App.ExecutableWin=403240\SquadGame\Binaries\Win64\SquadGameServer.exe
App.ExitMethod=OS_CLOSE
App.ExitString=stop
App.RCONConnectDelaySeconds=15
App.RCONConnectRetrySeconds=45
App.HasReadableConsole=true
App.HasWritableConsole=true
App.RapidStartup=false
@ -20,17 +23,19 @@ App.RootDir=./squad-dedicated-server/
App.UpdateSource=Multi
App.UpdateSources=[{"UpdateStageName": "SteamCMD Download","UpdateSourcePlatform": "All", "UpdateSource": "SteamCMD", "UpdateSourceData": "403240"}]
App.WorkingDir=403240
App.UseRandomAdminPassword=True
Console.AppReadyRegex=^(LogInit: Display: Starting Game\.)|(LogOnline: GotoState: NewState: Playing)$
Console.ThrowawayMessageRegex=^(WARNING|ERROR): Shader.+$
Console.UserChatRegex=^\[\d\d:\d\d:\d\d\] \[CHAT\] <(?<username>.+?)> (?<message>.+)$
Console.UserJoinRegex=^\[\d\d:\d\d:\d\d\] \[INFO\] "(?<username>.+?)" \((?<userid>.+?)\) connected from \[(?<endpoint>.+?)\]$
Console.UserLeaveRegex=^\[\d\d:\d\d:\d\d\] \[INFO\] "(?<username>.+?)" \((?<userid>.+?)\) disconnected \(Reason: (?<reason>.+?)\)$
Meta.Author=Shinynecrid
Console.UserChatRegex=
Console.UserJoinRegex=
Console.UserLeaveRegex=
Meta.Author=Shinynecrid,IceOfWraith
Meta.ConfigManifest=squad-dedicated-serverconfig.json
Meta.MetaConfigManifest=squad-dedicated-servermetaconfig.json
Meta.ConfigRoot=squad-dedicated-server.kvp
Meta.Description=Squad Dedicated Server
Meta.DisplayImageSource=steam:393380
Meta.DisplayName=Squad Dedicated Server
Meta.EndpointURIFormat=
Meta.EndpointURIFormat=steam://connect/{ip}/{GenericModule.App.ApplicationPort2}
Meta.OS=3
Meta.URL=https://squad.gamepedia.com/Dedicated_server
Meta.URL=https://steamdb.info/app/403240/

View File

@ -1,15 +1,394 @@
[
{
"DisplayName": "Max Users",
"Category": "Server Configuration",
"Description": "Sets the maximum ammount of allowed players in a game",
"Keywords": "Players",
"FieldName": "$MaxUsers",
"DisplayName": "RCON Password",
"Category": "Server Config",
"Description": "Password to connect to RCON. Change this after installing the server",
"Keywords": "RCON,password",
"FieldName": "$RemoteAdminPassword",
"InputType": "RandomPassword",
"IsFlagArgument": false,
"ParamFieldName": "$RemoteAdminPassword",
"IncludeInCommandLine": true,
"DefaultValue": "Password123"
},
{
"DisplayName": "Server Name",
"Category": "Server Config",
"Description": "Set the Name for the server to advertise",
"Keywords": "server name, name",
"FieldName": "ServerName",
"InputType": "text",
"IsFlagArgument": false,
"ParamFieldName": "-maxplayers",
"IncludeInCommandLine": true,
"DefaultValue": "80",
"EnumValues": {}
"ParamFieldName": "ServerName",
"IncludeInCommandLine": false,
"DefaultValue": "A Squad Server Powered by AMP"
},
{
"DisplayName": "Max Players",
"Category": "Server Config",
"Description": "Set the max players allowed on the server",
"Keywords": "max players, players",
"FieldName": "$MaxUsers",
"InputType": "number",
"IsFlagArgument": false,
"ParamFieldName": "MaxPlayers",
"IncludeInCommandLine": false,
"DefaultValue": "50"
},
{
"DisplayName": "LAN Mode",
"Category": "Server Config",
"Description": "set the server to LAN mode?",
"Keywords": "Lan,Server",
"FieldName": "IsLANMatch",
"InputType": "checkbox",
"IsFlagArgument": false,
"ParamFieldName": "IsLANMatch",
"DefaultValue": "false",
"EnumValues": {
"False": "false",
"True": "true"
}
},
{
"DisplayName": "Should Advertise",
"Category": "Server Config",
"Description": "Control visibility in the server browser",
"Keywords": "Visibility,Server",
"FieldName": "ShouldAdvertise",
"InputType": "checkbox",
"IsFlagArgument": false,
"ParamFieldName": "ShouldAdvertise",
"DefaultValue": "true",
"EnumValues": {
"False": "false",
"True": "true"
}
},
{
"DisplayName": "Number of Reserved Slots",
"Category": "Server Config",
"Description": "Number of reserved slots for admins / members",
"Keywords": "reserved players, players",
"FieldName": "NumReservedSlots",
"InputType": "number",
"IsFlagArgument": false,
"ParamFieldName": "NumReservedSlots",
"IncludeInCommandLine": false,
"DefaultValue": "0"
},
{
"DisplayName": "Public Queue Limit",
"Category": "Server Config",
"Description": "Size of the server queuing, for regular user",
"Keywords": "queue,players",
"FieldName": "PublicQueueLimit",
"InputType": "number",
"IsFlagArgument": false,
"ParamFieldName": "PublicQueueLimit",
"IncludeInCommandLine": false,
"DefaultValue": "25"
},
{
"DisplayName": "Map Rotation Mode",
"Category": "Server Config",
"Description": "Map rotation mode: Can Be, Level ListLevelList(use order in level rotation config file),LayerList (use order in layer rotation config file) or LevelList_Randomized,LayerList_Randomized ",
"Keywords": "Map Rotation,Rotation",
"FieldName": "MapRotationMode",
"InputType": "enum",
"IsFlagArgument": false,
"ParamFieldName": "MapRotationMode",
"IncludeInCommandLine": false,
"DefaultValue": "LayerList",
"EnumValues": {
"LevelList": "LevelList",
"LayerList": "LayerList",
"LevelList_Randomized": "LevelList_Randomized",
"LayerList_Randomized": "LayerList_Randomized"
},
"SkipIfEmpty": false
},
{
"DisplayName": "Randomize At Start",
"Category": "Server Config",
"Description": "Should the Map/Layer rotations list be randomized at start?",
"Keywords": "Map Rotation,Rotation",
"FieldName": "RandomizeAtStart",
"InputType": "checkbox",
"IsFlagArgument": false,
"ParamFieldName": "RandomizeAtStart",
"DefaultValue": "true",
"EnumValues": {
"False": "false",
"True": "true"
}
},
{
"DisplayName": "Use Vote Factions",
"Category": "Server Config",
"Description": "Should Faction be voted for on generic layers? Randomized if false.",
"Keywords": "Factions,Vote",
"FieldName": "UseVoteFactions",
"InputType": "checkbox",
"IsFlagArgument": false,
"ParamFieldName": "UseVoteFactions",
"DefaultValue": "false",
"EnumValues": {
"False": "false",
"True": "true"
}
},
{
"DisplayName": "Vote for map at end of round",
"Category": "Server Config",
"Description": "Should next Map be voted for at end of round?",
"Keywords": "Map,Vote",
"FieldName": "UseVoteLevel",
"InputType": "checkbox",
"IsFlagArgument": false,
"ParamFieldName": "UseVoteLevel",
"DefaultValue": "false",
"EnumValues": {
"False": "false",
"True": "true"
}
},
{
"DisplayName": "Vote for layer at end of round",
"Category": "Server Config",
"Description": "Should next Layer be voted for at end of round?",
"Keywords": "Layer,Vote",
"FieldName": "UseVoteLayer",
"InputType": "checkbox",
"IsFlagArgument": false,
"ParamFieldName": "UseVoteLayer",
"DefaultValue": "false",
"EnumValues": {
"False": "false",
"True": "true"
}
},
{
"DisplayName": "Allow Team Change",
"Category": "Server Config",
"Description": "Completly Allow or Disallow Team change to all players. Only user with Level_Balance access level can bypass this flag",
"Keywords": "Layer,Vote",
"FieldName": "AllowTeamChanges",
"InputType": "checkbox",
"IsFlagArgument": false,
"ParamFieldName": "AllowTeamChanges",
"DefaultValue": "true",
"EnumValues": {
"False": "false",
"True": "true"
}
},
{
"DisplayName": "Prevent Team Change If Unbalanced",
"Category": "Server Config",
"Description": "If set to false, players can change teams regardless of team balance. Otherwise, the NumPlayersDiffForTeamChanges Value is used",
"Keywords": "Layer,Vote",
"FieldName": "PreventTeamChangeIfUnbalanced",
"InputType": "checkbox",
"IsFlagArgument": false,
"ParamFieldName": "PreventTeamChangeIfUnbalanced",
"DefaultValue": "true",
"EnumValues": {
"False": "false",
"True": "true"
}
},
{
"DisplayName": "Max Allowed Difference in player count",
"Category": "Server Config",
"Description": "Maximum Allowed difference in player count between teams. This takes into account the team the player leaves and the team the player joins",
"Keywords": "queue,players",
"FieldName": "NumPlayersDiffForTeamChanges",
"InputType": "number",
"IsFlagArgument": false,
"ParamFieldName": "NumPlayersDiffForTeamChanges",
"IncludeInCommandLine": false,
"DefaultValue": "3"
},
{
"DisplayName": "Rejoin Squad Delay After Kick",
"Category": "Server Config",
"Description": "Delay a player is allowed to rejoin a squad after being kicked.",
"Keywords": "delay,players,kick",
"FieldName": "RejoinSquadDelayAfterKick",
"InputType": "number",
"IsFlagArgument": false,
"ParamFieldName": "RejoinSquadDelayAfterKick",
"IncludeInCommandLine": false,
"DefaultValue": "180"
},
{
"DisplayName": "Record Demos",
"Category": "Server Config",
"Description": "Enable Demo Recording",
"Keywords": "Record,Demo",
"FieldName": "RecordDemos",
"InputType": "checkbox",
"IsFlagArgument": false,
"ParamFieldName": "RecordDemos",
"DefaultValue": "true",
"EnumValues": {
"False": "false",
"True": "true"
}
},
{
"DisplayName": "Allow Public Clients Record Demos",
"Category": "Server Config",
"Description": "Enable Demo Recording",
"Keywords": "Record,Demo",
"FieldName": "AllowPublicClientsToRecord",
"InputType": "checkbox",
"IsFlagArgument": false,
"ParamFieldName": "AllowPublicClientsToRecord",
"DefaultValue": "false",
"EnumValues": {
"False": "false",
"True": "true"
}
},
{
"DisplayName": "Server Message Interval",
"Category": "Server Config",
"Description": "Maximum Allowed difference in player count between teams. This takes into account the team the player leaves and the team the player joins",
"Keywords": "Interval, Message",
"FieldName": "ServerMessageInterval",
"InputType": "number",
"IsFlagArgument": false,
"ParamFieldName": "ServerMessageInterval",
"IncludeInCommandLine": false,
"DefaultValue": "300"
},
{
"DisplayName": "Force Server Non-Seamless Travel",
"Category": "Server Config",
"Description": "Forces the server to do non-seamless travel (disconnect when changing maps) every X seconds",
"Keywords": "travel",
"FieldName": "ForceNonSeamlessTravelIntervalSeconds",
"InputType": "number",
"IsFlagArgument": false,
"ParamFieldName": "ForceNonSeamlessTravelIntervalSeconds",
"IncludeInCommandLine": false,
"DefaultValue": "43200",
"SkipIfEmpty": true
},
{
"DisplayName": "Team Kill Auto Kick Enabled",
"Category": "Server Config",
"Description": "Enable Auto Kick for teamkilling",
"Keywords": "Kick,Auto,Team,Kill",
"FieldName": "TKAutoKickEnabled",
"InputType": "checkbox",
"IsFlagArgument": false,
"ParamFieldName": "TKAutoKickEnabled",
"DefaultValue": "True",
"EnumValues": {
"False": "false",
"True": "true"
}
},
{
"DisplayName": "Auto Team Kill Ban Number",
"Category": "Server Config",
"Description": "Maximum allowed team kills before ban",
"Keywords": "Interval, Message",
"FieldName": "AutoTKBanNumberTKs",
"InputType": "number",
"IsFlagArgument": false,
"ParamFieldName": "AutoTKBanNumberTKs",
"IncludeInCommandLine": false,
"DefaultValue": "7"
},
{
"DisplayName": "Auto Team Kill Ban Timer",
"Category": "Server Config",
"Description": "Time a Team Kiling player is banned for before being allowed to rejoin match.",
"Keywords": "Interval,Message,Time",
"FieldName": "AutoTKBanTime",
"InputType": "number",
"IsFlagArgument": false,
"ParamFieldName": "AutoTKBanTime",
"IncludeInCommandLine": false,
"DefaultValue": "300"
},
{
"DisplayName": "Vehicle Kit Requirement Disabled",
"Category": "Server Config",
"Description": "Toggle to disable vehicle kit requirement",
"Keywords": "Vehicle,Kit",
"FieldName": "VehicleKitRequirementDisabled",
"InputType": "checkbox",
"IsFlagArgument": false,
"ParamFieldName": "VehicleKitRequirementDisabled",
"DefaultValue": "false",
"EnumValues": {
"False": "false",
"True": "true"
}
},
{
"DisplayName": "Allow Community Admin Access",
"Category": "Server Config",
"Description": "Enable Community Admin Access",
"Keywords": "Admin",
"FieldName": "AllowCommunityAdminAccess",
"InputType": "checkbox",
"IsFlagArgument": false,
"ParamFieldName": "AllowCommunityAdminAccess",
"DefaultValue": "true",
"EnumValues": {
"False": "false",
"True": "true"
}
},
{
"DisplayName": "Offworld Developers only Admin",
"Category": "Server Config",
"Description": "Only Offworld Industries developers are admins",
"Keywords": "Admin",
"FieldName": "AllowDevProfiling",
"InputType": "checkbox",
"IsFlagArgument": false,
"ParamFieldName": "AllowDevProfiling",
"DefaultValue": "true",
"EnumValues": {
"False": "false",
"True": "true"
}
},
{
"DisplayName": "Allow QA",
"Category": "Server Config",
"Description": "Allow QA",
"Keywords": "QA",
"FieldName": "AllowQA",
"InputType": "checkbox",
"IsFlagArgument": false,
"ParamFieldName": "AllowQA",
"DefaultValue": "true",
"EnumValues": {
"False": "false",
"True": "true"
}
},
{
"DisplayName": "Vehicle Claiming Disabled",
"Category": "Server Config",
"Description": "Disable Vehicle Claiming",
"Keywords": "Vehicle",
"FieldName": "VehicleClaimingDisabled",
"InputType": "checkbox",
"IsFlagArgument": false,
"ParamFieldName": "VehicleClaimingDisabled",
"DefaultValue": "false",
"EnumValues": {
"False": "false",
"True": "true"
}
}
]

View File

@ -0,0 +1,13 @@
[
{
"ConfigFile": "./SquadGame/ServerConfig/Server.cfg",
"AutoMap": true,
"ConfigType": "kvp",
"ConfigFormat": "{0}=\"{1}\""
},
{
"ConfigFile": "./SquadGame/ServerConfig/VoteConfig.cfg",
"AutoMap": true,
"ConfigType": "kvp"
}
]