From dd336cff459578b92fd62eebaac8afd53c2efcf5 Mon Sep 17 00:00:00 2001 From: Shinynecrid Date: Wed, 2 Feb 2022 17:58:34 -0600 Subject: [PATCH] Complete Overhaul of the Configuration File Completely Re-Do the configuration file. Added Mod functionality --- InsurgencySS_Game.ini | 106 +++++++++++++++++++++++++ insurgencysandstorm.kvp | 5 +- insurgencysandstormconfig.json | 121 ++++++++++++++++++----------- insurgencysandstormmetaconfig.json | 27 +++++++ 4 files changed, 210 insertions(+), 49 deletions(-) create mode 100644 InsurgencySS_Game.ini create mode 100644 insurgencysandstormmetaconfig.json diff --git a/InsurgencySS_Game.ini b/InsurgencySS_Game.ini new file mode 100644 index 0000000..8c2b8c2 --- /dev/null +++ b/InsurgencySS_Game.ini @@ -0,0 +1,106 @@ +[/Script/Insurgency.INSGameMode] +bKillFeed={{bKillFeed}} +bKillFeedSpectator={{bKillFeedSpectator}} +bKillerInfo={{bKillerInfo}} +bKillerInfoRevealDistance={{bKillerInfoRevealDistance}} +TeamKillLimit={{TeamKillLimit}} +TeamKillGrace={{TeamKillGrace}} +TeamKillReduceTime={{TeamKillReduceTime}} +bDeadSay={{bDeadSay}} +bDeadSayTeam={{bDeadSayTeam}} +bVoiceAllowDeadChat={{bVoiceAllowDeadChat}} +bVoiceEnemyHearsLocal={{bVoiceEnemyHearsLocal}} +ObjectiveCaptureTime={{ObjectiveCaptureTime}} +ObjectiveResetTime={{ObjectiveResetTime}} +ObjectiveSpeedup={{ObjectiveSpeedup}} +ObjectiveMaxSpeedupPlayers={{ObjectiveMaxSpeedupPlayers}} + +[/Script/Insurgency.INSMultiplayerMode] +bKillFeedGameStartingIntermissionTime={{bKillFeedGameStartingIntermissionTime}} +WinTime={{WinTime}} +PostRoundTime={{PostRoundTime}} +PostGameTime={{PostGameTime}} +bAutoAssignTeams={{bAutoAssignTeams}} +bAllowFriendlyFire={{bAllowFriendlyFire}} +FriendlyFireModifier={{FriendlyFireModifier}} +FriendlyFireReflect={{FriendlyFireReflect}} +bAutoBalanceTeams={{bAutoBalanceTeams}} +AutoBalanceDelay={{AutoBalanceDelay}} +bMapVoting={{bMapVoting}} +bUseMapCycle={{bUseMapCycle}} +bVoiceIntermissionAllowAll={{bVoiceIntermissionAllowAll}} +IdleLimit={{IdleLimit}} +IdleLimitLowReinforcements={{IdleLimitLowReinforcements}} +IdleCheckFrequency={{IdleCheckFrequency}} +MinimumPlayers={{MinimumPlayers}} +RoundLimit={{RoundLimit}} +WinLimit={{WinLimit}} +GameTimeLimit={{GameTimeLimit}} +PreRoundLimit={{PreRoundLimit}} +RoundTime={{RoundTime}} +OverTime={{OverTime}} +TeamSwitchTime={{TeamSwitchTime}} +SwitchTeamsEveryRound={{SwitchTeamsEveryRound}} +bAllowPlayerTeamSelect={{bAllowPlayerTeamSelect}} +bBots={{bBots}} +BotQuots={{BotQuots}} +InitialSupply={{InitialSupply}} +MaximumSupply={{MaximumSupply}} +bSupplyGainEnabled={{bSupplyGainEnabled}} +bAwardSupplyInstantly={{bAwardSupplyInstantly}} +SupplyGainFrequency={{SupplyGainFrequency}} + +[/Script/Insurgency.INSPushGameMode] +RoundTimeExtension={{RoundTimeExtension}} +AttackerWavesPerObjective={{AttackerWavesPerObjective}} +AttackerWaveDPR={{AttackerWaveDPR}} +AttackerWaveTimer={{AttackerWaveTimer}} +DefenderWavesPerObjective={{DefenderWavesPerObjective}} +DefenderWaveDPR={{DefenderWaveDPR}} +DefenderWaveTimer={{DefenderWaveTimer}} +LastStandSetupDelay={{LastStandSetupDelay}} +AdvanceAttackerSpawnsDelay={{AdvanceAttackerSpawnsDelay}} + +[/Script/Insurgency.INSFrontlineGameMode] +StartingWaves={{StartingWaves}} +CapturingBonusWave={{CapturingBonusWave}} +RegressSpawnsTimer={{RegressSpawnsTimer}} + +[/Script/Insurgency.INSSkirmishGameMode] +DefaultReinforcementWaves={{DefaultReinforcementWaves}} +CaptureBonusWaves={{CaptureBonusWaves}} + +[/Script/Insurgency.INSCoopMode] +AIDifficulty={{AIDifficulty}} +bUseVehicleInsertion={{bUseVehicleInsertion}} +FriendlyBotQuota={{FriendlyBotQuota}} +MinimumEnemies={{MinimumEnemies}} +MaximumEnemies={{MaximumEnemies}} + +[/Script/Insurgency.INSCheckpointGameMode] +DefendTimer={{DefendTimer}} +DefendTimerFinal={{DefendTimerFinal}} +RetreatTimer={{RetreatTimer}} +RespawnDPR={{RespawnDPR}} +RespawnDelay={{RespawnDelay}} +PostCaptureRushTimer={{PostCaptureRushTimer}} +CounterAttackRespawnDPR={{CounterAttackRespawnDPR}} +CounterAttackRespawnDelay={{CounterAttackRespawnDelay}} +ObjectiveTotalEnemyRespawnMultiplierMin={{ObjectiveTotalEnemyRespawnMultiplierMin}} +ObjectiveTotalEnemyRespawnMultiplierMax={{ObjectiveTotalEnemyRespawnMultiplierMax}} +FinalCacheBotQuotaMultiplier={{FinalCacheBotQuotaMultiplier}} + +[/Script/Insurgency.TeamInfo] +bVotingEnabled={{bVotingEnabled}} +TeamVoteIssues={{TeamVoteIssues}} + +[/Script/Insurgency.VoteIssueKick] +bCanTargetEnemies={{bCanTargetEnemies}} +bRequiresMinimumToStart={{bRequiresMinimumToStart}} +DefaultVoteBanDuration={{DefaultVoteBanDuration}} +IdleVoteBanDuration={{IdleVoteBanDuration}} +MinimumPlayerRatio={{MinimumPlayerRatio}} +MinimumPlayersRequired={{MinimumPlayersRequired}} +MinimumYesNoDifference={{MinimumYesNoDifference}} +VotePassRatio={{VotePassRatio}} +VoteTimeout={{VoteTimeout}} \ No newline at end of file diff --git a/insurgencysandstorm.kvp b/insurgencysandstorm.kvp index 3cccc7d..c69c45a 100644 --- a/insurgencysandstorm.kvp +++ b/insurgencysandstorm.kvp @@ -1,7 +1,7 @@ App.AdminMethod=SourceRCON App.ApplicationPort1=27102 App.ApplicationPort2=27131 -App.ApplicationReadyMode=RCONConnected +App.ApplicationReadyMode=RegexMatch App.BaseDirectory=./insurgencysandstorm/581330/ App.CommandLineArgs={{Map}}?Scenario={{Scenario}}?MaxPlayers={{$MaxUsers}}{{password_enabled}}{{Password}} -Port={{$ApplicationPort1}} -QueryPort={{$ApplicationPort2}} -Rcon -RconPassword={{$RemoteAdminPassword}} -RconListenPort={{$RemoteAdminPort}} -log -GameStats {{$FormattedArgs}} App.CommandLineParameterDelimiter= @@ -23,13 +23,14 @@ App.UpdateSource=Multi App.UpdateSources=[{"UpdateStageName": "SteamCMD Download","UpdateSourcePlatform": "All", "UpdateSource": "SteamCMD", "UpdateSourceData": "581330"}] App.WorkingDir=581330 App.UseRandomAdminPassword=True -Console.AppReadyRegex=^\[[\d\.]+-[\d\.]+:\d+\]\[[ \d]+\]LogGameState: Match State Changed from WaitingToStart to InProgress$ +Console.AppReadyRegex=^\[\d+.\d+.\d+-\d+.\d+.\d+\:\d+\]\[.*\]LogSession\: Display\: OnCreateSessionComplete.*Result: \(1\)$ Console.ThrowawayMessageRegex=^(WARNING|ERROR): Shader.+$ Console.UserChatRegex= Console.UserJoinRegex= Console.UserLeaveRegex= Meta.Author=Shinynecrid,IceOfWraith Meta.ConfigManifest=insurgencysandstormconfig.json +Meta.MetaConfigManifest=insurgencysandstormmetaconfig.json Meta.ConfigRoot=insurgencysandstorm.kvp Meta.Description=Insurgency Sandstorm Dedicated Server Meta.DisplayImageSource=steam:581320 diff --git a/insurgencysandstormconfig.json b/insurgencysandstormconfig.json index f1f3b61..005b564 100644 --- a/insurgencysandstormconfig.json +++ b/insurgencysandstormconfig.json @@ -1,8 +1,8 @@ [ { "DisplayName": "Map", - "Category": "Server Config", - "Description": "Set the maps starting server", + "Category": "Startup Config", + "Description": "Set the servers starting map", "Keywords": "Map", "FieldName": "Map", "InputType": "text", @@ -15,7 +15,7 @@ }, { "DisplayName": "Scenario", - "Category": "Server Config", + "Category": "Startup Config", "Description": "Set the server scenario", "Keywords": "Scenario", "FieldName": "Scenario", @@ -29,7 +29,7 @@ }, { "DisplayName": "Hostname", - "Category": "Server Config", + "Category": "Startup Config", "Description": "Set the servers hostname", "Keywords": "Hostname", "FieldName": "Hostname", @@ -42,21 +42,21 @@ }, { "DisplayName": "Token", - "Category": "Server Config", - "Description": "Set the steam GSLTToken", + "Category": "Startup Config", + "Description": "Set the steam GSLTToken APPID 581320 [Get A GSLToken ID](https://steamcommunity.com/dev/managegameservers/)", "Keywords": "Token", "FieldName": "GSLTToken", - "InputType": "text", + "InputType": "password", "IsFlagArgument": false, "ParamFieldName": "GSLTToken", "IncludeInCommandLine": true, - "DefaultValue": "1234567890", + "DefaultValue": "", "EnumValues": {}, "SkipIfEmpty": true }, { "DisplayName": "Max Players", - "Category": "Server Config", + "Category": "Startup Config", "Description": "Set server maximum amount of players", "Keywords": "Max Users", "FieldName": "$MaxUsers", @@ -69,21 +69,21 @@ }, { "DisplayName": "Game Stats Token", - "Category": "Server Config", - "Description": "Set the game stats token for XP Gain", + "Category": "Startup Config", + "Description": "Set the game stats token for XP Gain [Get A GameStats Token ID](https://gamestats.sandstorm.game/)", "Keywords": "Stats", "FieldName": "GameStatsToken", - "InputType": "text", + "InputType": "password", "IsFlagArgument": false, "ParamFieldName": "GameStatsToken", "IncludeInCommandLine": true, - "DefaultValue": "1234567890", + "DefaultValue": "", "EnumValues": {}, "SkipIfEmpty": true }, { "DisplayName": "Password", - "Category": "Server Config", + "Category": "Startup Config", "Description": "Sets a password for the server", "Keywords": "Password", "FieldName": "Password", @@ -97,7 +97,7 @@ }, { "DisplayName": "Password Enabled", - "Category": "Server Config", + "Category": "Startup Config", "Description": "Enables the server password", "Keywords": "Password", "FieldName": "password_enabled", @@ -113,7 +113,7 @@ }, { "DisplayName": "Mutator", - "Category": "Server Config", + "Category": "Startup Config", "Description": "Set a server mutator", "Keywords": "Mutator", "FieldName": "mutators", @@ -125,23 +125,9 @@ "EnumValues": {}, "SkipIfEmpty": true }, - { - "DisplayName": "Map Cycle", - "Category": "Server Config", - "Description": "Tell the server which map cycle text file to use", - "Keywords": "Map", - "FieldName": "MapCycle", - "InputType": "text", - "IsFlagArgument": false, - "ParamFieldName": "MapCycle", - "IncludeInCommandLine": true, - "DefaultValue": "", - "EnumValues": {}, - "SkipIfEmpty": true - }, { "DisplayName": "Rule Set", - "Category": "Server Config", + "Category": "Startup Config", "Description": "Set the rules for the server", "Keywords": "Rules", "FieldName": "ruleset", @@ -153,32 +139,73 @@ "EnumValues": {}, "SkipIfEmpty": true }, + { + "DisplayName": "Mods Enabled", + "Category": "Startup Config", + "Description": "Enables the server to use a Modlist", + "Keywords": "Mods", + "FieldName": "Mods_enabled", + "InputType": "checkbox", + "IsFlagArgument": false, + "ParamFieldName": "Mods_enabled", + "IncludeInCommandLine": false, + "DefaultValue": "", + "EnumValues": { + "False": "", + "True": "-Mods -ModList=Mods" + } + }, { "DisplayName": "MOTD", - "Category": "Server Config", - "Description": "Set the server MOTD file", + "Category": "Startup Config", + "Description": "Set the server MOTD", "Keywords": "MOTD", - "FieldName": "motd", + "FieldName": "Motd", "InputType": "text", "IsFlagArgument": false, - "ParamFieldName": "motd", - "IncludeInCommandLine": true, + "ParamFieldName": "Motd", + "IncludeInCommandLine": false, "DefaultValue": "", "EnumValues": {}, "SkipIfEmpty": true }, { - "DisplayName": "Admin List", - "Category": "Server Config", - "Description": "set Admin List File for the server", - "Keywords": "Admin", - "FieldName": "AdminList", - "InputType": "text", + "DisplayName": "Admin Players", + "Description": "A list of Steam64 IDs for players that are in-game admins. [Find your Steam64 ID](https://steamidfinder.com/)", + "FieldName": "AdminPlayers", + "Category": "Startup Config", + "InputType": "list", + "Special": "listfile:./insurgencysandstorm/581330/Insurgency/Config/Server/Admins.txt" + }, + { + "DisplayName": "Map Cycle", + "Description": "A List of map scenarios for the server to use", + "FieldName": "MapCycle", + "Category": "Startup Config", + "InputType": "list", + "Special": "listfile:./insurgencysandstorm/581330/Insurgency/Config/Server/MapCycle.txt" + }, + { + "DisplayName": "Mods", + "Description": "Define a list of Mods for the server to use.", + "FieldName": "Mods", + "Category": "Startup Config", + "InputType": "list", + "Special": "listfile:./insurgencysandstorm/581330/Insurgency/Config/Server/Mods.txt" + }, + { + "DisplayName": "Kill Feed Enabled", + "Category": "Game Mode", + "Description": "Is the kill feed enabled?", + "Keywords": "Kill Feed", + "FieldName": "bKillFeed", + "InputType": "checkbox", "IsFlagArgument": false, - "ParamFieldName": "AdminList", - "IncludeInCommandLine": true, - "DefaultValue": "", - "EnumValues": {}, - "SkipIfEmpty": true + "ParamFieldName": "bKillFeed", + "DefaultValue": "False", + "EnumValues": { + "False": "False", + "True": "True" + } } ] \ No newline at end of file diff --git a/insurgencysandstormmetaconfig.json b/insurgencysandstormmetaconfig.json new file mode 100644 index 0000000..1b59eb5 --- /dev/null +++ b/insurgencysandstormmetaconfig.json @@ -0,0 +1,27 @@ +[ + { + "ConfigFile": "Insurgency/Saved/Config/WindowsServer/Game.ini", + "AutoMap": true, + "ConfigType": "template", + "ConfigFileTemplate": "InsurgencySS_Game.ini" + }, + { + "ConfigFile": "Insurgency/Saved/Config/LinuxServer/Game.ini", + "AutoMap": true, + "ConfigType": "template", + "ConfigFileTemplate": "InsurgencySS_Game.ini" + }, + { + "ConfigFile": "Insurgency/Config/Server/Motd.txt", + "ConfigType": "kvp", + "ConfigFormat": "{0}{1}", + "Subsections": [ + { + "Heading": "$root", + "SettingMappings": { + "": "Motd" + } + } + ] + } +] \ No newline at end of file