diff --git a/insurgency.kvp b/insurgency.kvp new file mode 100644 index 000000000..07842f31f --- /dev/null +++ b/insurgency.kvp @@ -0,0 +1,102 @@ +Meta.DisplayName=Insurgency +Meta.Description=Insurgency Dedicated Server +Meta.OS=Windows, Linux +Meta.AarchSupport=NotSupported +Meta.Arch=x86_64 +Meta.Author=Greelan +Meta.URL=https://store.steampowered.com/app/222880/Insurgency/ +Meta.DisplayImageSource=steam:222880 +Meta.EndpointURIFormat=steam://connect/{0} +Meta.ConfigManifest=insurgencyconfig.json +Meta.MetaConfigManifest=insurgencymetaconfig.json +Meta.ConfigRoot=insurgency.kvp +Meta.MinAMPVersion=2.6.0.4 +Meta.SpecificDockerImage= +Meta.DockerRequired=False +Meta.DockerBaseReadOnly=False +Meta.ContainerPolicy=Supported +Meta.ContainerPolicyReason= +Meta.ExtraSetupStepsURI= +Meta.Prerequsites=[] +Meta.ExtraContainerPackages=[] +Meta.ConfigReleaseState=NotSpecified +Meta.NoCommercialUsage=False +Meta.AppConfigId=eba6a05b-2b75-4ac5-a222-21a7138027d5 +Meta.ConfigVersion=1.1 +Meta.ReleaseNotes= +Meta.BreakingReleaseNotes= +App.DisplayName=Insurgency +App.RootDir=./insurgency/ +App.BaseDirectory=./insurgency/237410/ +App.SteamWorkshopDownloadLocation= +App.ExecutableWin=237410\srcds.exe +App.ExecutableLinux=237410/srcds_linux +App.WorkingDir=237410 +App.LinuxCommandLineArgs= +App.WindowsCommandLineArgs= +App.CommandLineArgs={{$PlatformArgs}} -console -usercon -nobreakpad -port {{$ServerPort}} -ip {{$ApplicationIPBinding}} -maxplayers {{$MaxUsers}} {{insecure}}{{nohltv}}{{CustomParameters}} {{CustomConVars}} +tv_port {{$SourceTVPort}} +sv_logfile 1 {{$FormattedArgs}} +exec server.cfg +map {{map}} +log on +App.UseLinuxIOREDIR=False +App.AppSettings={} +App.EnvironmentVariables={"LD_LIBRARY_PATH":".:bin:%LD_LIBRARY_PATH%","SteamAppId":"222880"} +App.CommandLineParameterFormat=+{0} {1} +App.CommandLineParameterDelimiter= +App.ExitMethod=String +App.ExitTimeout=30 +App.ExitString=quit +App.ExitFile=lock +App.HasWriteableConsole=False +App.HasReadableConsole=False +App.UDPLogger=True +App.SupportsLiveSettingsChanges=False +App.LiveSettingChangeCommandFormat=set {0} "{1}" +App.ForceIPBinding=True +App.SupportsIPv6=False +App.ApplicationIPBinding=0.0.0.0 +App.Ports=[{"Protocol":"Both","Port":27015,"Ref":"ServerPort","Name":"Game and RCON Port","Description":"Port for game and RCON traffic"},{"Protocol":"UDP","Port":27020,"Ref":"SourceTVPort","Name":"SourceTV Port","Description":"Port for SourceTV traffic"}] +App.AdminPortRef=ServerPort +App.PrimaryApplicationPortRef=ServerPort +App.UniversalSleepApplicationUDPPortRef=ServerPort +App.UniversalSleepSteamQueryPortRef=0 +App.MaxUsers=32 +App.UseRandomAdminPassword=True +App.PersistRandomPassword=True +App.RemoteAdminPassword= +App.AdminMethod=SourceRCON +App.AdminLoginTransform=None +App.LoginTransformPrefix= +App.RCONConnectDelaySeconds=5 +App.RCONConnectRetrySeconds=5 +App.RCONHeartbeatMinutes=0 +App.RCONHeartbeatCommand=ping +App.TelnetLoginFormat={0} +App.UpdateSources=@IncludeJson[insurgencyupdates.json] +App.PreStartStages=@IncludeJson[insurgencystart.json] +App.ForceUpdate=False +App.ForceUpdateReason= +App.Compatibility=None +App.SteamUpdateAnonymousLogin=True +App.SteamForceLoginPrompt=False +App.RapidStartup=False +App.DumpFullChildProcessTree=False +App.MonitorChildProcessName= +App.SupportsUniversalSleep=False +App.WakeupMode=Any +App.ApplicationReadyMode=RCONConnected +Console.FilterMatchRegex= +Console.FilterMatchReplacement= +Console.ThrowawayMessageRegex=^(WARNING|ERROR): Shader.+$ +Console.AppReadyRegex=^Connection to Steam servers successful\.$ +Console.UserJoinRegex=^[\d\/]+ - [\d:]+: "(?.+?)<\d+><{{UserIDRegex}}><>" entered the game$ +Console.UserLeaveRegex=^[\d\/]+ - [\d:]+: "(?.+?)<\d+><{{UserIDRegex}}><.*>" disconnected \(reason ".*"\)$ +Console.UserChatRegex=^$ +Console.UpdateAvailableRegex=^\[\d\d:\d\d:\d\d\] \[INFO\] A new server update is available! v[\d\.]+.$ +Console.MetricsRegex= +Console.SuppressLogAtStart=False +Console.ActivateLogRegex= +Console.UserActions={} +Limits.SleepMode=True +Limits.SleepOnStart=False +Limits.SleepDelayMinutes=5 +Limits.DozeDelay=2 +Limits.AutoRetryCount=2 +Limits.SleepStartThresholdSeconds=25 diff --git a/insurgencyconfig.json b/insurgencyconfig.json new file mode 100644 index 000000000..884739315 --- /dev/null +++ b/insurgencyconfig.json @@ -0,0 +1,1003 @@ +[ + { + "DisplayName": "RCON Password", + "Category": "Insurgency:stadia_controller", + "Subcategory": "Server:dns:1", + "Description": "", + "Keywords": "", + "FieldName": "$RemoteAdminPassword", + "InputType": "text", + "Hidden": true, + "ParamFieldName": "rcon_password", + "EnumValues": {} + }, + { + "DisplayName": "Server Name", + "Category": "Insurgency:stadia_controller", + "Subcategory": "Server:dns:1", + "Description": "Sets the name of the server that appears in the server list", + "Keywords": "server,name,hostname", + "FieldName": "hostname", + "InputType": "text", + "ParamFieldName": "hostname", + "DefaultValue": "AMP Powered Insurgency Server", + "EnumValues": {} + }, + { + "DisplayName": "Server Search Key", + "Category": "Insurgency:stadia_controller", + "Subcategory": "Server:dns:1", + "Description": "Sets a search key for finding the server in the lobby", + "Keywords": "search,key,lobby,sv_search_key", + "FieldName": "sv_search_key", + "InputType": "text", + "ParamFieldName": "sv_search_key", + "DefaultValue": "", + "EnumValues": {} + }, + { + "DisplayName": "Server Tags", + "Category": "Insurgency:stadia_controller", + "Subcategory": "Server:dns:1", + "Description": "Comma-separated list of server tags that give additional information about the server in the server browser", + "Keywords": "tags,sv_tags", + "FieldName": "sv_tags", + "InputType": "text", + "ParamFieldName": "sv_tags", + "DefaultValue": "", + "Placeholder": "increased_maxplayers", + "EnumValues": {} + }, + { + "DisplayName": "Server Steam Group", + "Category": "Insurgency:stadia_controller", + "Subcategory": "Server:dns:1", + "Description": "Sets the ID of the steam group that the server belongs to. You can find your group's ID on the admin profile page in the steam community", + "Keywords": "steam,group,id,sv_steamgroup", + "FieldName": "sv_steamgroup", + "InputType": "text", + "ParamFieldName": "sv_steamgroup", + "DefaultValue": "", + "EnumValues": {} + }, + { + "DisplayName": "Enable MOTD", + "Category": "Insurgency:stadia_controller", + "Subcategory": "Server:dns:1", + "Description": "If set, the server message of the day (MOTD) will be shown to clients when they connect. Configure the MOTD in 'Insurgency/motd.txt'", + "Keywords": "motd,show,enable,motd_enabled", + "FieldName": "motd_enabled", + "InputType": "checkbox", + "ParamFieldName": "motd_enabled", + "DefaultValue": "1", + "EnumValues": { + "False": "0", + "True": "1" + } + }, + { + "DisplayName": "LAN Server", + "Category": "Insurgency:stadia_controller", + "Subcategory": "Server:dns:1", + "Description": "If enabled, the server will operate as a LAN server: no heartbeat, no authentication, and no non-class C addresses", + "Keywords": "lan,local,sv_lan", + "FieldName": "sv_lan", + "InputType": "checkbox", + "ParamFieldName": "sv_lan", + "DefaultValue": "0", + "EnumValues": { + "False": "0", + "True": "1" + } + }, + { + "DisplayName": "Game Server Login Token (GSLT)", + "Category": "Insurgency:stadia_controller", + "Subcategory": "Server:dns:1", + "Description": "Sets the [Steam Game Server Login Token](https://steamcommunity.com/dev/managegameservers) for the server, to allow it to be listed in the server browser. Use app ID 222880 when generating the token", + "Keywords": "steam,server,login,token,gslt,sv_setsteamaccount", + "FieldName": "sv_setsteamaccount", + "InputType": "password", + "ParamFieldName": "sv_setsteamaccount", + "IncludeInCommandLine": true, + "SkipIfEmpty": true, + "DefaultValue": "", + "Placeholder": "6544F7E034119F113526E96474F559AH", + "EnumValues": {} + }, + { + "DisplayName": "Server Password", + "Category": "Insurgency:stadia_controller", + "Subcategory": "Server:dns:1", + "Description": "Sets the password required to connect to the server. Default is no password", + "Keywords": "server,password,sv_password", + "FieldName": "sv_password", + "InputType": "password", + "ParamFieldName": "sv_password", + "DefaultValue": "", + "EnumValues": {} + }, + { + "DisplayName": "Initial Map", + "Category": "Insurgency:stadia_controller", + "Subcategory": "Server:dns:1", + "Description": "Sets the map to start the server with. If \"Custom\" is selected, Custom Initial Map must also be specified", + "Keywords": "map", + "FieldName": "map", + "InputType": "enum", + "ParamFieldName": "map", + "DefaultValue": "buhriz", + "EnumValues": { + "buhriz": "buhriz", + "buhriz_coop": "buhriz_coop", + "buhriz_night": "buhriz_night", + "contact": "contact", + "contact_coop": "contact_coop", + "contact_night": "contact_night", + "district": "district", + "district_coop": "district_coop", + "district_night": "district_night", + "drycanal": "drycanal", + "drycanal_coop": "drycanal_coop", + "drycanal_night": "drycanal_night", + "embassy": "embassy", + "embassy_coop": "embassy_coop", + "embassy_night": "embassy_night", + "heights": "heights", + "heights_coop": "heights_coop", + "heights_night": "heights_night", + "kandagal": "kandagal", + "kandagal_night": "kandagal_night", + "market": "market", + "market_coop": "market_coop", + "market_night": "market_night", + "ministry": "ministry", + "ministry_coop": "ministry_coop", + "ministry_night": "ministry_night", + "panj": "panj", + "panj_night": "panj_night", + "peak": "peak", + "peak_night": "peak_night", + "revolt": "revolt", + "revolt_coop": "revolt_coop", + "revolt_night": "revolt_night", + "siege": "siege", + "siege_coop": "siege_coop", + "sinjar": "sinjar", + "sinjar_coop": "sinjar_coop", + "sinjar_night": "sinjar_night", + "station": "station", + "station_night": "station_night", + "tell": "tell", + "tell_coop": "tell_coop", + "tell_night": "tell_night", + "training": "training", + "uprising": "uprising", + "uprising_night": "uprising_night", + "verticality": "verticality", + "verticality_coop": "verticality_coop", + "verticality_night": "verticality_night", + "{{CustomMap}}": "--Custom--" + } + }, + { + "DisplayName": "Custom Initial Map", + "Category": "Insurgency:stadia_controller", + "Subcategory": "Server:dns:1", + "Description": "Sets a custom map to use for the Initial Map, if \"Custom\" is selected", + "Keywords": "custom,map", + "FieldName": "CustomMap", + "InputType": "text", + "ParamFieldName": "CustomMap", + "DefaultValue": "", + "EnumValues": {} + }, + { + "DisplayName": "Allowed Game Modes", + "Category": "Insurgency:stadia_controller", + "Subcategory": "Server:dns:1", + "Description": "Sets a comma-separated list of game modes allowed on the server. Choose from: occupy, coop, battle, elimination, firefight", + "Keywords": "game,mode,types,gamemode,gametypes,sv_gametypes", + "FieldName": "sv_gametypes", + "InputType": "text", + "ParamFieldName": "sv_gametypes", + "DefaultValue": "occupy,coop,battle,elimination,firefight", + "Placeholder": "occupy,coop,battle,elimination,firefight", + "EnumValues": {} + }, + { + "DisplayName": "Initial Game Mode", + "Category": "Insurgency:stadia_controller", + "Subcategory": "Server:dns:1", + "Description": "Sets the game mode to start the server with. Should be one of the Allowed Game Modes", + "Keywords": "game,mode,gamemode,mp_gamemode", + "FieldName": "mp_gamemode", + "InputType": "enum", + "ParamFieldName": "mp_gamemode", + "DefaultValue": "battle", + "EnumValues": { + "battle": "Battle", + "coop": "Co-op", + "elimination": "Elimination", + "firefight": "Firefight", + "occupy": "Occupy" + } + }, + { + "DisplayName": "Server Region", + "Category": "Insurgency:stadia_controller", + "Subcategory": "Server:dns:1", + "Description": "Sets the server region shown in the server browser", + "Keywords": "server,region,sv_region", + "FieldName": "sv_region", + "InputType": "enum", + "ParamFieldName": "sv_region", + "DefaultValue": "-1", + "EnumValues": { + "-1": "No region", + "0": "East Coast US", + "1": "West Coast US", + "2": "South America", + "3": "Europe", + "4": "Asia", + "5": "Australia", + "6": "Middle East", + "7": "Africa", + "255": "World" + } + }, + { + "DisplayName": "Player Limit", + "Category": "Insurgency:stadia_controller", + "Subcategory": "Server:dns:1", + "Description": "Sets the maximum number of players allowed on the server at one time. For more than 49 players, a suitable SourceMod plugin is required", + "Keywords": "max,players,limit,maxplayers", + "FieldName": "$MaxUsers", + "InputType": "number", + "MinValue": "1", + "ParamFieldName": "maxplayers", + "DefaultValue": "32", + "Placeholder": "32", + "Suffix": "players", + "EnumValues": {} + }, + { + "DisplayName": "Bot Player Count Mode", + "Category": "Insurgency:stadia_controller", + "Subcategory": "Server:dns:1", + "Description": "Sets whether to count bots as players for the player count in AMP. This AMP instance must be restarted for changes to this setting to take effect", + "Keywords": "bot,count,players", + "FieldName": "UserIDRegex", + "InputType": "enum", + "ParamFieldName": "UserIDRegex", + "DefaultValue": "(BOT|(?(?!BOT).+?))", + "EnumValues": { + "(BOT|(?(?!BOT).+?))": "Count bots as players (default)", + "(?(?!BOT).+?)": "Don't count bots as players" + } + }, + { + "DisplayName": "Visible Player Limit", + "Category": "Insurgency:stadia_controller", + "Subcategory": "Server:dns:1", + "Description": "Sets the maximum players reported to prospective clients, regardless of the Player Limit. -1 = do not override", + "Keywords": "visible,max,players,sv_visiblemaxplayers", + "FieldName": "sv_visiblemaxplayers", + "InputType": "number", + "MinValue": "-1", + "ParamFieldName": "sv_visiblemaxplayers", + "DefaultValue": "-1", + "Placeholder": "-1", + "Suffix": "players", + "EnumValues": {} + }, + { + "DisplayName": "Allow Spectators", + "Category": "Insurgency:stadia_controller", + "Subcategory": "Server:dns:1", + "Description": "If set, spectator mode will be enabled", + "Keywords": "allow,spectators,mp_allowspectators", + "FieldName": "mp_allowspectators", + "InputType": "checkbox", + "ParamFieldName": "mp_allowspectators", + "DefaultValue": "1", + "EnumValues": { + "False": "0", + "True": "1" + } + }, + { + "DisplayName": "Pure Server Mode", + "Category": "Insurgency:stadia_controller", + "Subcategory": "Server:dns:1", + "Description": "Sets whether clients are only allowed to use certain files", + "Keywords": "pure,server,cheat,hack,integrity,sv_pure", + "FieldName": "sv_pure", + "InputType": "enum", + "ParamFieldName": "sv_pure", + "IncludeInCommandLine": true, + "DefaultValue": "0", + "EnumValues": { + "0": "Client files not restricted", + "1": "All client files except those listed in pure_server_whitelist.txt must match the server", + "2": "All client files must come from Steam" + } + }, + { + "DisplayName": "Kick Clients On Pure Server", + "Category": "Insurgency:stadia_controller", + "Subcategory": "Server:dns:1", + "Description": "If enabled, the server will kick clients with mismatching files. Otherwise, it will issue a warning to the clients", + "Keywords": "pure,server,cheat,hack,integrity,sv_pure_kick_clients", + "FieldName": "sv_pure_kick_clients", + "InputType": "checkbox", + "ParamFieldName": "sv_pure_kick_clients", + "DefaultValue": "0", + "EnumValues": { + "False": "0", + "True": "1" + } + }, + { + "DisplayName": "Require File Consistency", + "Category": "Insurgency:stadia_controller", + "Subcategory": "Server:dns:1", + "Description": "If set, the server will enforce file consistency for critical files", + "Keywords": "consistency,files,sv_consistency", + "FieldName": "sv_consistency", + "InputType": "checkbox", + "ParamFieldName": "sv_consistency", + "DefaultValue": "1", + "EnumValues": { + "False": "0", + "True": "1" + } + }, + { + "DisplayName": "Enable Cheats", + "Category": "Insurgency:stadia_controller", + "Subcategory": "Server:dns:1", + "Description": "If set, cheat convars will be allowed to be used on the server", + "Keywords": "allow,cheat,hack,integrity,sv_cheats", + "FieldName": "sv_cheats", + "InputType": "checkbox", + "ParamFieldName": "sv_cheats", + "DefaultValue": "0", + "EnumValues": { + "False": "0", + "True": "1" + } + }, + { + "DisplayName": "Disable Valve Anti-Cheat", + "Category": "Insurgency:stadia_controller", + "Subcategory": "Server:dns:1", + "Description": "If set, Valve Anti-Cheat (VAC) will be disabled", + "Keywords": "valve,anti,cheat,vac,insecure", + "FieldName": "insecure", + "InputType": "checkbox", + "ParamFieldName": "insecure", + "DefaultValue": "", + "EnumValues": { + "False": "", + "True": "-insecure " + } + }, + { + "DisplayName": "Enable IP Packet Filter", + "Category": "Insurgency:stadia_controller", + "Subcategory": "Server:dns:1", + "Description": "If set, enables packet filtering by IP mode. If disabled, everyone will treated as IP-banned, but their IP won't be added to the banlist", + "Keywords": "ip,ban,banning,sv_filterban", + "FieldName": "sv_filterban", + "InputType": "checkbox", + "ParamFieldName": "sv_filterban", + "DefaultValue": "1", + "EnumValues": { + "False": "0", + "True": "1" + } + }, + { + "DisplayName": "Allow Download From Server", + "Category": "Insurgency:stadia_controller", + "Subcategory": "Server:dns:1", + "Description": "If set, clients will be allowed to download content from the server (maps, sprays and related)", + "Keywords": "allow,download,content,maps,sv_allowdownload", + "FieldName": "sv_allowdownload", + "InputType": "checkbox", + "ParamFieldName": "sv_allowdownload", + "DefaultValue": "1", + "EnumValues": { + "False": "0", + "True": "1" + } + }, + { + "DisplayName": "Fast Download URL", + "Category": "Insurgency:stadia_controller", + "Subcategory": "Server:dns:1", + "Description": "Sets the URL for clients to download custom content from, instead of sourcing the content from the server. This allows for faster downloads", + "Keywords": "fastdl,download,url,sv_downloadurl", + "FieldName": "sv_downloadurl", + "InputType": "text", + "ParamFieldName": "sv_downloadurl", + "DefaultValue": "", + "Placeholder": "http://example.com", + "EnumValues": {} + }, + { + "DisplayName": "Allow Upload To Server", + "Category": "Insurgency:stadia_controller", + "Subcategory": "Server:dns:1", + "Description": "If set, clients will be allowed to upload customisation files to the server", + "Keywords": "allow,upload,customisation,files,sv_allowupload", + "FieldName": "sv_allowupload", + "InputType": "checkbox", + "ParamFieldName": "sv_allowupload", + "DefaultValue": "1", + "EnumValues": { + "False": "0", + "True": "1" + } + }, + { + "DisplayName": "Maximum File Size", + "Category": "Insurgency:stadia_controller", + "Subcategory": "Server:dns:1", + "Description": "Sets the maximum allowed file size for uploading to the server", + "Keywords": "maximum,upload,file,size,net_maxfilesize", + "FieldName": "net_maxfilesize", + "InputType": "number", + "MinValue": "0", + "MaxValue": "64", + "ParamFieldName": "net_maxfilesize", + "DefaultValue": "16", + "Placeholder": "16", + "Suffix": "MB", + "EnumValues": {} + }, + { + "DisplayName": "Minimum Client Rate", + "Category": "Insurgency:stadia_controller", + "Subcategory": "Server:dns:1", + "Description": "Sets the minimum allowable bandwidth rate a client may have set when connected to the server. 0 = no minimum", + "Keywords": "minimum,bandwidth,rate,sv_minrate", + "FieldName": "sv_minrate", + "InputType": "number", + "MinValue": "0", + "MaxValue": "786432", + "ParamFieldName": "sv_minrate", + "DefaultValue": "16000", + "Placeholder": "16000", + "Suffix": "bytes/second", + "EnumValues": {} + }, + { + "DisplayName": "Maximum Client Rate", + "Category": "Insurgency:stadia_controller", + "Subcategory": "Server:dns:1", + "Description": "Sets the maximum allowable bandwidth rate a client may have set when connected to the server. 0 = no limit", + "Keywords": "maximum,bandwidth,rate,sv_maxrate", + "FieldName": "sv_maxrate", + "InputType": "number", + "MinValue": "0", + "MaxValue": "786432", + "ParamFieldName": "sv_maxrate", + "DefaultValue": "0", + "Placeholder": "0", + "Suffix": "bytes/second", + "EnumValues": {} + }, + { + "DisplayName": "Minimum Server Update Rate", + "Category": "Insurgency:stadia_controller", + "Subcategory": "Server:dns:1", + "Description": "Sets the minimum number of updates per second of the positions of the server's models (players, guns, etc) that server sends to clients", + "Keywords": "minimum,update,rate,sv_minupdaterate", + "FieldName": "sv_minupdaterate", + "InputType": "number", + "MinValue": "0", + "ParamFieldName": "sv_minupdaterate", + "DefaultValue": "64", + "Placeholder": "64", + "EnumValues": {} + }, + { + "DisplayName": "Maximum Server Update Rate", + "Category": "Insurgency:stadia_controller", + "Subcategory": "Server:dns:1", + "Description": "Sets the maximum number of updates per second of the positions of the server's models (players, guns, etc) that server sends to clients", + "Keywords": "maximum,update,rate,sv_maxupdaterate", + "FieldName": "sv_maxupdaterate", + "InputType": "number", + "MinValue": "0", + "ParamFieldName": "sv_maxupdaterate", + "DefaultValue": "64", + "Placeholder": "64", + "EnumValues": {} + }, + { + "DisplayName": "Decal Frequency", + "Category": "Insurgency:stadia_controller", + "Subcategory": "Server:dns:1", + "Description": "Sets the time between decal sprays", + "Keywords": "decalfrequency", + "FieldName": "decalfrequency", + "InputType": "number", + "MinValue": "0", + "ParamFieldName": "decalfrequency", + "DefaultValue": "10", + "Placeholder": "10", + "Suffix": "seconds", + "EnumValues": {} + }, + { + "DisplayName": "Force Preload", + "Category": "Insurgency:stadia_controller", + "Subcategory": "Server:dns:1", + "Description": "If set, server side preloading will be forced", + "Keywords": "force,preload,sv_forcepreload", + "FieldName": "sv_forcepreload", + "InputType": "checkbox", + "ParamFieldName": "sv_forcepreload", + "DefaultValue": "0", + "EnumValues": { + "False": "0", + "True": "1" + } + }, + { + "DisplayName": "Ping Boost", + "Category": "Insurgency:stadia_controller", + "Subcategory": "Server:dns:1", + "Description": "Selects between optimised network code stack. Setting at 2 usually reduces latency toward 1ms without loss of activity input packets", + "Keywords": "ping,boost,latency,network,pingboost", + "FieldName": "pingboost", + "InputType": "enum", + "ParamFieldName": "pingboost", + "DefaultValue": "", + "EnumValues": { + "": "None", + "-pingboost 1 ": "1", + "-pingboost 2 ": "2", + "-pingboost 3 ": "3" + } + }, + { + "DisplayName": "Enable CPU Stats Collection", + "Category": "Insurgency:stadia_controller", + "Subcategory": "Server:dns:1", + "Description": "If set, CPU stats will be collected", + "Keywords": "cpu,stats,sv_stats", + "FieldName": "sv_stats", + "InputType": "checkbox", + "ParamFieldName": "sv_stats", + "DefaultValue": "1", + "EnumValues": { + "False": "0", + "True": "1" + } + }, + { + "DisplayName": "Server/RCON IPv4 IP Binding", + "Category": "Insurgency:stadia_controller", + "Subcategory": "Server:dns:1", + "Description": "If required, you can change the IPv4 IP binding of the server and RCON by changing the 'Server IP Address' setting under Security and Privacy. NOTE: AMP requires the server to be bound to a specific IP, rather than 0.0.0.0, for the server to log to AMP's console. The IP must also be reachable by AMP", + "Keywords": "ip,binding", + "FieldName": "ip", + "InputType": "hidden", + "ParamFieldName": "ip", + "EnumValues": {} + }, + { + "DisplayName": "Additional Command Line Parameters", + "Category": "Insurgency:stadia_controller", + "Subcategory": "Server:dns:1", + "Description": "Specifies additional command line parameters (anything that begins with a -) that are not otherwise set by AMP. Use with care", + "Keywords": "custom,server,arguments,parameters", + "FieldName": "CustomParameters", + "InputType": "text", + "ParamFieldName": "CustomParameters", + "DefaultValue": "", + "EnumValues": {} + }, + { + "DisplayName": "Additional Console Variables", + "Category": "Insurgency:stadia_controller", + "Subcategory": "Server:dns:1", + "Description": "Specifies additional [console variables](https://jballou.com/insurgency/cvarlist.php) (anything that begins with a +) that are not otherwise set by AMP. Use with care. Preferably, specify the equivalent under \"Additional Server Settings\"", + "Keywords": "custom,server,arguments,variables,cvars,convars", + "FieldName": "CustomConVars", + "InputType": "text", + "ParamFieldName": "CustomConVars", + "DefaultValue": "", + "Placeholder": "+sv_gravity \"500\"", + "EnumValues": {} + }, + { + "DisplayName": "Additional Server Settings", + "Category": "Insurgency:stadia_controller", + "Subcategory": "Server:dns:1", + "Description": "Specifies additional [settings](https://jballou.com/insurgency/cvarlist.php) to include in 'server.cfg' that are not otherwise set by AMP. Example: sv_maxcmdrate 66. One setting per line", + "Keywords": "additional,settings,custom", + "FieldName": "UserSettings", + "InputType": "Textarea", + "IsFlagArgument": false, + "ParamFieldName": "UserSettings", + "DefaultValue": "", + "EnumValues": {} + }, + { + "DisplayName": "Enable Friendly Fire", + "Category": "Insurgency:stadia_controller", + "Subcategory": "Gameplay:joystick:2", + "Description": "If set, friendly fire will be enabled (teammates can cause damage to other teammates)", + "Keywords": "friendly,fire,mp_friendlyfire", + "FieldName": "mp_friendlyfire", + "InputType": "checkbox", + "ParamFieldName": "mp_friendlyfire", + "DefaultValue": "1", + "EnumValues": { + "False": "0", + "True": "1" + } + }, + { + "DisplayName": "Enable Flashlight", + "Category": "Insurgency:stadia_controller", + "Subcategory": "Gameplay:joystick:2", + "Description": "If sets, allows the use of the flashlight by pressing the F button", + "Keywords": "flashlight,mp_flashlight", + "FieldName": "mp_flashlight", + "InputType": "checkbox", + "ParamFieldName": "mp_flashlight", + "DefaultValue": "0", + "EnumValues": { + "False": "0", + "True": "1" + } + }, + { + "DisplayName": "Enable Footsteps", + "Category": "Insurgency:stadia_controller", + "Subcategory": "Gameplay:joystick:2", + "Description": "If set, footstep sounds will be enabled", + "Keywords": "footstep,sounds,mp_footsteps", + "FieldName": "mp_footsteps", + "InputType": "checkbox", + "ParamFieldName": "mp_footsteps", + "DefaultValue": "1", + "EnumValues": { + "False": "0", + "True": "1" + } + }, + { + "DisplayName": "Enable Auto Crosshair", + "Category": "Insurgency:stadia_controller", + "Subcategory": "Gameplay:joystick:2", + "Description": "If set, the auto crosshair will be enabled", + "Keywords": "auto,crosshair,mp_autocrosshair", + "FieldName": "mp_autocrosshair", + "InputType": "checkbox", + "ParamFieldName": "mp_autocrosshair", + "DefaultValue": "1", + "EnumValues": { + "False": "0", + "True": "1" + } + }, + { + "DisplayName": "Allow Players To Pause Server", + "Category": "Insurgency:stadia_controller", + "Subcategory": "Gameplay:joystick:2", + "Description": "If set, players will be able to pause the server. Not recommended", + "Keywords": "pause,pausable,sv_pausable", + "FieldName": "sv_pausable", + "InputType": "checkbox", + "ParamFieldName": "sv_pausable", + "DefaultValue": "0", + "EnumValues": { + "False": "0", + "True": "1" + } + }, + { + "DisplayName": "Allow Wait Command", + "Category": "Insurgency:stadia_controller", + "Subcategory": "Gameplay:joystick:2", + "Description": "If enabled, the wait command will be allowed on clients connected to the server. Recommended to keep disabled to prevent server crash exploits", + "Keywords": "wait,command,sv_allow_wait_command", + "FieldName": "sv_allow_wait_command", + "InputType": "checkbox", + "ParamFieldName": "sv_allow_wait_command", + "DefaultValue": "1", + "EnumValues": { + "False": "0", + "True": "1" + } + }, + { + "DisplayName": "Enable Voice Communication", + "Category": "Insurgency:stadia_controller", + "Subcategory": "Gameplay:joystick:2", + "Description": "If set, voice communication will be enabled on the server", + "Keywords": "voice,communication,sv_voiceenable", + "FieldName": "sv_voiceenable", + "InputType": "checkbox", + "ParamFieldName": "sv_voiceenable", + "DefaultValue": "1", + "EnumValues": { + "False": "0", + "True": "1" + } + }, + { + "DisplayName": "Allow All Talk", + "Category": "Insurgency:stadia_controller", + "Subcategory": "Gameplay:joystick:2", + "Description": "If enabled, players can communicate with all other players, with no team restrictions", + "Keywords": "all,talk,sv_alltalk", + "FieldName": "sv_alltalk", + "InputType": "checkbox", + "ParamFieldName": "sv_alltalk", + "DefaultValue": "0", + "EnumValues": { + "False": "0", + "True": "1" + } + }, + { + "DisplayName": "Enable Fade To Black", + "Category": "Insurgency:stadia_controller", + "Subcategory": "Gameplay:joystick:2", + "Description": "If enabled, a player's screen fades to black for the remainder of the round after death (HUD and chat still works)", + "Keywords": "fade,black,spectator,death,mp_fadetoblack", + "FieldName": "mp_fadetoblack", + "InputType": "checkbox", + "ParamFieldName": "mp_fadetoblack", + "DefaultValue": "0", + "EnumValues": { + "False": "0", + "True": "1" + } + }, + { + "DisplayName": "Automatic Team Balancing", + "Category": "Insurgency:stadia_controller", + "Subcategory": "Gameplay:joystick:2", + "Description": "Sets whether to automatically balance teams based on the Teams Unbalance Limit", + "Keywords": "team,automatic,balance,balancing,mp_autoteambalance", + "FieldName": "mp_autoteambalance", + "InputType": "enum", + "ParamFieldName": "mp_autoteambalance", + "DefaultValue": "1", + "EnumValues": { + "0": "Off", + "1": "Forcibly switch (default)", + "2": "Ask for volunteers" + } + }, + { + "DisplayName": "Teams Unbalance Limit", + "Category": "Insurgency:stadia_controller", + "Subcategory": "Gameplay:joystick:2", + "Description": "Teams will be considered unbalanced for the purpose of Automatic Team Balancing when one team has this many more players than the other team. 0 = check disabled", + "Keywords": "team,automatic,balance,balancing,limit,mp_teams_unbalance_limit", + "FieldName": "mp_teams_unbalance_limit", + "InputType": "number", + "MinValue": "0", + "ParamFieldName": "mp_teams_unbalance_limit", + "DefaultValue": "1", + "Placeholder": "1", + "EnumValues": {} + }, + { + "DisplayName": "Map Rotation Time Limit", + "Category": "Insurgency:stadia_controller", + "Subcategory": "Gameplay:joystick:2", + "Description": "Sets the game time per map. 0 = disabled", + "Keywords": "time,limit,rotation,mp_timelimit", + "FieldName": "mp_timelimit", + "InputType": "number", + "MinValue": "0", + "ParamFieldName": "mp_timelimit", + "DefaultValue": "0", + "Placeholder": "0", + "Suffix": "minutes", + "EnumValues": {} + }, + { + "DisplayName": "Map Rotation Round Limit", + "Category": "Insurgency:stadia_controller", + "Subcategory": "Gameplay:joystick:2", + "Description": "Sets the maximum number of rounds to play before the map rotates. 0 = disabled", + "Keywords": "round,limit,rotation,mp_maxrounds", + "FieldName": "mp_maxrounds", + "InputType": "number", + "MinValue": "0", + "ParamFieldName": "mp_maxrounds", + "DefaultValue": "10", + "Placeholder": "10", + "Suffix": "rounds", + "EnumValues": {} + }, + { + "DisplayName": "Map Rotation Win Limit", + "Category": "Insurgency:stadia_controller", + "Subcategory": "Gameplay:joystick:2", + "Description": "Sets the maximum score one team can reach before the map rotates. 0 = disabled", + "Keywords": "win,limit,rotation,mp_winlimit", + "FieldName": "mp_winlimit", + "InputType": "number", + "MinValue": "0", + "ParamFieldName": "mp_winlimit", + "DefaultValue": "0", + "Placeholder": "0", + "EnumValues": {} + }, + { + "DisplayName": "Restrict Spectator Mode", + "Category": "Insurgency:stadia_controller", + "Subcategory": "Gameplay:joystick:2", + "Description": "If enabled, the spectator mode for dead players will be restricted", + "Keywords": "spectator,camera,first,person,mp_forcecamera", + "FieldName": "mp_forcecamera", + "InputType": "checkbox", + "ParamFieldName": "mp_forcecamera", + "DefaultValue": "1", + "EnumValues": { + "False": "0", + "True": "1" + } + }, + { + "DisplayName": "Alternate Ticks", + "Category": "Insurgency:stadia_controller", + "Subcategory": "Gameplay:joystick:2", + "Description": "If set, the server only simulates entities on even numbered ticks", + "Keywords": "alternate,ticks,sv_alternateticks", + "FieldName": "sv_alternateticks", + "InputType": "checkbox", + "ParamFieldName": "sv_alternateticks", + "DefaultValue": "0", + "EnumValues": { + "False": "0", + "True": "1" + } + }, + { + "DisplayName": "Disable SourceTV", + "Category": "Insurgency:stadia_controller", + "Subcategory": "SourceTV:tv:3", + "Description": "If set, SourceTV will be disabled on the server", + "Keywords": "sourcetv,source,nohltv", + "FieldName": "nohltv", + "InputType": "checkbox", + "ParamFieldName": "nohltv", + "DefaultValue": "-nohltv ", + "EnumValues": { + "False": "", + "True": "-nohltv " + } + }, + { + "DisplayName": "Enable Automatic Demo Recording", + "Category": "Insurgency:stadia_controller", + "Subcategory": "SourceTV:tv:3", + "Description": "If set, all games will be recorded as SourceTV demos", + "Keywords": "sourcetv,tv,tv_autorecord", + "FieldName": "tv_autorecord", + "InputType": "checkbox", + "ParamFieldName": "tv_autorecord", + "DefaultValue": "0", + "EnumValues": { + "False": "0", + "True": "1" + } + }, + { + "DisplayName": "SourceTV Viewer Limit", + "Category": "Insurgency:stadia_controller", + "Subcategory": "SourceTV:tv:3", + "Description": "Sets the maximum number of clients allowed to connect to the server's SourceTV. 0 = no SourceTV viewers are allowed, the game will only be recorded locally", + "Keywords": "max,spectators,clients,viewers,sourcetv,tv,tv_maxclients", + "FieldName": "tv_maxclients", + "InputType": "number", + "MinValue": "0", + "MaxValue": "255", + "ParamFieldName": "tv_maxclients", + "DefaultValue": "128", + "Placeholder": "128", + "Suffix": "viewers", + "EnumValues": {} + }, + { + "DisplayName": "Maximum SourceTV Bandwidth", + "Category": "Insurgency:stadia_controller", + "Subcategory": "SourceTV:tv:3", + "Description": "Sets the maximum SourceTV spectator bandwidth rate allowed. 0 = unlimited", + "Keywords": "maximum,bandwidth,rate,sourcetv,tv,tv_maxrate", + "FieldName": "tv_maxrate", + "InputType": "number", + "MinValue": "0", + "ParamFieldName": "tv_maxrate", + "DefaultValue": "8000", + "Placeholder": "8000", + "EnumValues": {} + }, + { + "DisplayName": "Metamod and SourceMod Management", + "Category": "Updates", + "Subcategory": "Metamod and SourceMod:build:3", + "Description": "Sets how to manage Metamod and SourceMod on the server. Branch and Build Versions must be set accordingly for installation. Update the server after changing this setting (unless \"Do nothing\" is selected)", + "Keywords": "install,metamod,sourcemod", + "FieldName": "InstallMod", + "InputType": "enum", + "ParamFieldName": "InstallMod", + "DefaultValue": "none", + "EnumValues": { + "none": "Do nothing (default)", + "false": "Deactivate mods", + "true": "Install and activate mods" + } + }, + { + "DisplayName": "Metamod Branch", + "Category": "Updates", + "Subcategory": "Metamod and SourceMod:build:3", + "Description": "Specifies the [Metamod](https://www.metamodsource.net/downloads.php) branch to install", + "Keywords": "metamod,branch", + "FieldName": "MetamodBranch", + "InputType": "enum", + "ParamFieldName": "MetamodBranch", + "DefaultValue": "1.11", + "EnumValues": { + "1.11": "Stable (1.11) (default)", + "1.12": "Development (1.12)" + } + }, + { + "DisplayName": "Metamod Build Version", + "Category": "Updates", + "Subcategory": "Metamod and SourceMod:build:3", + "Description": "Specifies the [Metamod build version](https://www.metamodsource.net/downloads.php) to install", + "Keywords": "metamod,build,version", + "FieldName": "MetamodBuild", + "InputType": "number", + "ParamFieldName": "MetamodBuild", + "DefaultValue": "1156", + "Placeholder": "1156", + "EnumValues": {} + }, + { + "DisplayName": "SourceMod Branch", + "Category": "Updates", + "Subcategory": "Metamod and SourceMod:build:3", + "Description": "Specifies the [SourceMod](https://www.sourcemod.net/downloads.php) branch to install", + "Keywords": "sourcemod,branch", + "FieldName": "SourceModBranch", + "InputType": "enum", + "ParamFieldName": "SourceModBranch", + "DefaultValue": "1.12", + "EnumValues": { + "1.11": "Old stable (1.11)", + "1.12": "Stable (1.12) (default)", + "1.13": "Development (1.13)" + } + }, + { + "DisplayName": "SourceMod Build Version", + "Category": "Updates", + "Subcategory": "Metamod and SourceMod:build:3", + "Description": "Specifies the [SourceMod build version](https://www.sourcemod.net/downloads.php) to install", + "Keywords": "sourcemod,build,version", + "FieldName": "SourcemodBuild", + "InputType": "number", + "ParamFieldName": "SourcemodBuild", + "DefaultValue": "7169", + "Placeholder": "7169", + "EnumValues": {} + } +] diff --git a/insurgencymetaconfig.json b/insurgencymetaconfig.json new file mode 100644 index 000000000..55e205c95 --- /dev/null +++ b/insurgencymetaconfig.json @@ -0,0 +1,8 @@ +[ + { + "ConfigFile": "insurgency/cfg/server.cfg", + "AutoMap": true, + "ConfigType": "template", + "ConfigFileTemplate": "insurgency/AMP_server.cfg" + } +] \ No newline at end of file diff --git a/insurgencyserver.cfg b/insurgencyserver.cfg new file mode 100644 index 000000000..a445b0472 --- /dev/null +++ b/insurgencyserver.cfg @@ -0,0 +1,55 @@ +// This file is controlled by AMP +// Configure any additional required settings via the AMP UI + +{{UserSettings}} +hostname "{{hostname}}" +sv_search_key "{{sv_search_key}}" +sv_tags "{{sv_tags}}" +sv_steamgroup {{sv_steamgroup}} +motd_enabled {{motd_enabled}} +sv_lan {{sv_lan}} +sv_password "{{sv_password}}" +rcon_password "{{rcon_password}}" +sv_gametypes {{sv_gametypes}} +mp_gamemode {{mp_gamemode}} +sv_region {{sv_region}} +sv_visiblemaxplayers {{sv_visiblemaxplayers}} +mp_allowspectators {{mp_allowspectators}} +sv_pure_kick_clients {{sv_pure_kick_clients}} +sv_consistency {{sv_consistency}} +sv_cheats {{sv_cheats}} +sv_filterban {{sv_filterban}} +sv_allowdownload {{sv_allowdownload}} +sv_downloadurl "{{sv_downloadurl}}" +sv_allowupload {{sv_allowupload}} +net_maxfilesize {{net_maxfilesize}} +sv_minrate {{sv_minrate}} +sv_maxrate {{sv_maxrate}} +sv_minupdaterate {{sv_minupdaterate}} +sv_maxupdaterate {{sv_maxupdaterate}} +decalfrequency {{decalfrequency}} +sv_forcepreload {{sv_forcepreload}} +sv_stats {{sv_stats}} +mp_friendlyfire {{mp_friendlyfire}} +mp_flashlight {{mp_flashlight}} +mp_footsteps {{mp_footsteps}} +mp_autocrosshair {{mp_autocrosshair}} +sv_pausable {{sv_pausable}} +sv_allow_wait_command {{sv_allow_wait_command}} +sv_voiceenable {{sv_voiceenable}} +sv_alltalk {{sv_alltalk}} +mp_fadetoblack {{mp_fadetoblack}} +mp_autoteambalance {{mp_autoteambalance}} +mp_teams_unbalance_limit {{mp_teams_unbalance_limit}} +mp_timelimit {{mp_timelimit}} +mp_maxrounds {{mp_maxrounds}} +mp_winlimit {{mp_winlimit}} +mp_forcecamera {{mp_forcecamera}} +sv_alternateticks {{sv_alternateticks}} +tv_autorecord {{tv_autorecord}} +tv_maxclients {{tv_maxclients}} +tv_maxrate {{tv_maxrate}} +exec banned_ip.cfg +exec banned_user.cfg +writeip +writeid \ No newline at end of file diff --git a/insurgencystart.json b/insurgencystart.json new file mode 100644 index 000000000..20a3748d6 --- /dev/null +++ b/insurgencystart.json @@ -0,0 +1,30 @@ +[ + { + "UpdateStageName": "Activate Metamod and SourceMod", + "UpdateSourcePlatform": "All", + "UpdateSource": "CreateFile", + "UpdateSourceData": "\"Plugin\"\n{\n\t\"file\"\t\"../insurgency/addons/metamod/bin/server\"\n}", + "UpdateSourceArgs": "{{$FullBaseDir}}insurgency/addons/metamod.vdf", + "OverwriteExistingFiles": true, + "UpdateSourceConditionSetting": "InstallMod", + "UpdateSourceConditionValue": "true" + }, + { + "UpdateStageName": "Disable Metamod and SourceMod", + "UpdateSourcePlatform": "Windows", + "UpdateSource": "Executable", + "UpdateSourceData": "cmd.exe", + "UpdateSourceArgs": "/C cd insurgency\\237410\\insurgency\\addons > NUL 2>&1 && del /Q /F metamod.vdf > NUL 2>&1 & exit /b 0", + "UpdateSourceConditionSetting": "InstallMod", + "UpdateSourceConditionValue": "false" + }, + { + "UpdateStageName": "Disable Metamod and SourceMod", + "UpdateSourcePlatform": "Linux", + "UpdateSource": "Executable", + "UpdateSourceData": "/bin/bash", + "UpdateSourceArgs": "-c \"cd insurgency/237410/insurgency/addons >/dev/null 2>&1 && rm -rf metamod.vdf >/dev/null 2>&1; exit 0\"", + "UpdateSourceConditionSetting": "InstallMod", + "UpdateSourceConditionValue": "false" + } +] \ No newline at end of file diff --git a/insurgencyupdates.json b/insurgencyupdates.json new file mode 100644 index 000000000..7ac260b25 --- /dev/null +++ b/insurgencyupdates.json @@ -0,0 +1,122 @@ +[ + { + "UpdateStageName": "SteamCMD Server Download", + "UpdateSourcePlatform": "All", + "UpdateSource": "SteamCMD", + "UpdateSourceData": "237410", + "UpdateSourceArgs": "222880" + }, + { + "UpdateStageName": "Server.cfg Template File Download", + "UpdateSourcePlatform": "All", + "UpdateSource": "FetchURL", + "UpdateSourceData": "https://raw.githubusercontent.com/CubeCoders/AMPTemplates/main/insurgencyserver.cfg", + "UpdateSourceArgs": "AMP_server.cfg", + "UpdateSourceTarget": "{{$FullRootDir}}", + "OverwriteExistingFiles": true + }, + { + "UpdateStageName": "Metamod Download", + "UpdateSourcePlatform": "Windows", + "UpdateSource": "FetchURL", + "UpdateSourceData": "https://mms.alliedmods.net/mmsdrop/{{MetamodBranch}}/mmsource-{{MetamodBranch}}.0-git{{MetamodBuild}}-windows.zip", + "UpdateSourceTarget": "{{$FullBaseDir}}insurgency", + "UnzipUpdateSource": true, + "OverwriteExistingFiles": true, + "DeleteAfterExtract": true, + "UpdateSourceConditionSetting": "InstallMod", + "UpdateSourceConditionValue": "true" + }, + { + "UpdateStageName": "Metamod Download", + "UpdateSourcePlatform": "Linux", + "UpdateSource": "FetchURL", + "UpdateSourceData": "https://mms.alliedmods.net/mmsdrop/{{MetamodBranch}}/mmsource-{{MetamodBranch}}.0-git{{MetamodBuild}}-linux.tar.gz", + "UpdateSourceTarget": "{{$FullBaseDir}}insurgency", + "UnzipUpdateSource": true, + "OverwriteExistingFiles": true, + "DeleteAfterExtract": true, + "UpdateSourceConditionSetting": "InstallMod", + "UpdateSourceConditionValue": "true" + }, + { + "UpdateStageName": "SourceMod Download Directory Creation", + "UpdateSourcePlatform": "All", + "UpdateSource": "CreateDirectory", + "UpdateSourceArgs": "{{$FullBaseDir}}sm", + "UpdateSourceConditionSetting": "InstallMod", + "UpdateSourceConditionValue": "true" + }, + { + "UpdateStageName": "SourceMod Download", + "UpdateSourcePlatform": "Windows", + "UpdateSource": "FetchURL", + "UpdateSourceData": "https://sm.alliedmods.net/smdrop/{{SourceModBranch}}/sourcemod-{{SourceModBranch}}.0-git{{SourcemodBuild}}-windows.zip", + "UpdateSourceTarget": "{{$FullBaseDir}}sm", + "UnzipUpdateSource": true, + "OverwriteExistingFiles": true, + "DeleteAfterExtract": true, + "UpdateSourceConditionSetting": "InstallMod", + "UpdateSourceConditionValue": "true" + }, + { + "UpdateStageName": "SourceMod Download", + "UpdateSourcePlatform": "Linux", + "UpdateSource": "FetchURL", + "UpdateSourceData": "https://sm.alliedmods.net/smdrop/{{SourceModBranch}}/sourcemod-{{SourceModBranch}}.0-git{{SourcemodBuild}}-linux.tar.gz", + "UpdateSourceTarget": "{{$FullBaseDir}}sm", + "UnzipUpdateSource": true, + "OverwriteExistingFiles": true, + "DeleteAfterExtract": true, + "UpdateSourceConditionSetting": "InstallMod", + "UpdateSourceConditionValue": "true" + }, + { + "UpdateStageName": "SourceMod Installation", + "UpdateSourcePlatform": "Windows", + "UpdateSource": "Executable", + "UpdateSourceData": "powershell.exe", + "UpdateSourceArgs": "-NoProfile -Command \"Set-Location -Path 'insurgency/237410'; if (Test-Path 'insurgency/cfg/sourcemod') { Remove-Item -Path 'sm/cfg/sourcemod' -Recurse -Force -ErrorAction SilentlyContinue | Out-Null }; if (Test-Path 'insurgency/addons/sourcemod/configs') { Remove-Item -Path 'sm/addons/sourcemod/configs' -Recurse -Force -ErrorAction SilentlyContinue | Out-Null }; if (Test-Path 'insurgency/addons/sourcemod/plugins') { Remove-Item -Path 'sm/addons/sourcemod/plugins' -Recurse -Force -ErrorAction SilentlyContinue | Out-Null }; Copy-Item -Path 'sm/*' -Destination 'insurgency' -Recurse -Force -ErrorAction SilentlyContinue | Out-Null; Remove-Item -Path 'sm' -Recurse -Force -ErrorAction SilentlyContinue | Out-Null\"", + "UpdateSourceConditionSetting": "InstallMod", + "UpdateSourceConditionValue": "true", + "SkipOnFailure": true + }, + { + "UpdateStageName": "SourceMod Installation", + "UpdateSourcePlatform": "Linux", + "UpdateSource": "Executable", + "UpdateSourceData": "/bin/bash", + "UpdateSourceArgs": "-c \"cd insurgency/237410 && [ -d insurgency/cfg/sourcemod ] && rm -rf sm/cfg/sourcemod >/dev/null 2>&1; [ -d insurgency/addons/sourcemod/configs ] && rm -rf sm/addons/sourcemod/configs >/dev/null 2>&1; [ -d insurgency/addons/sourcemod/plugins ] && rm -rf sm/addons/sourcemod/plugins >/dev/null 2>&1; \\cp -rf sm/* insurgency/ >/dev/null 2>&1; rm -rf sm >/dev/null 2>&1\"", + "UpdateSourceConditionSetting": "InstallMod", + "UpdateSourceConditionValue": "true", + "SkipOnFailure": true + }, + { + "UpdateStageName": "Activate Metamod and SourceMod", + "UpdateSourcePlatform": "All", + "UpdateSource": "CreateFile", + "UpdateSourceData": "\"Plugin\"\n{\n\t\"file\"\t\"../insurgency/addons/metamod/bin/server\"\n}", + "UpdateSourceArgs": "{{$FullBaseDir}}insurgency/addons/metamod.vdf", + "OverwriteExistingFiles": true, + "UpdateSourceConditionSetting": "InstallMod", + "UpdateSourceConditionValue": "true" + }, + { + "UpdateStageName": "Disable Metamod and SourceMod", + "UpdateSourcePlatform": "Windows", + "UpdateSource": "Executable", + "UpdateSourceData": "cmd.exe", + "UpdateSourceArgs": "/C cd insurgency\\237410\\insurgency\\addons > NUL 2>&1 && del /Q /F metamod.vdf > NUL 2>&1 & exit /b 0", + "UpdateSourceConditionSetting": "InstallMod", + "UpdateSourceConditionValue": "false" + }, + { + "UpdateStageName": "Disable Metamod and SourceMod", + "UpdateSourcePlatform": "Linux", + "UpdateSource": "Executable", + "UpdateSourceData": "/bin/bash", + "UpdateSourceArgs": "-c \"cd insurgency/237410/insurgency/addons >/dev/null 2>&1 && rm -rf metamod.vdf >/dev/null 2>&1; exit 0\"", + "UpdateSourceConditionSetting": "InstallMod", + "UpdateSourceConditionValue": "false" + } +] \ No newline at end of file