From 9a5e51e0c9f258665fa6d01bc7cd3998d2c6c840 Mon Sep 17 00:00:00 2001 From: IceOfWraith <96364530+IceOfWraith@users.noreply.github.com> Date: Mon, 7 Feb 2022 19:31:56 -0600 Subject: [PATCH] Additions made by Greelan Notes by Greelan: Some further development of the template that you can merge if appropriate to build out your PR. Having worked with it a bit more I've concluded that it ain't a particularly AMP-friendly server. Couple of specific comments: I've added AdminPassword as a command line argument, but I am not sure that is accepted. Most instructions say to put it in the ServerSettings.ini. Problem is that the default ServerSettings.ini that is created when the server is first started does not include that field. So I tried the solution of having a copy of that ini, with the AdminPassword field added, being downloaded from GitHub and copied across as update stages. But the server overwrites that on first start. And given I don't want the update stages overwriting the existing ServerSettings.ini, because it might include a lot of user configuration, I can't see a resolution for this (ie getting an AdminPassword entry into the standard ServerSettings.ini that is not overwritten by the server and that does not cause AMP to overwrite other settings). The Server Password manifest entry assumes that it will work with the ServerPassword field that exists by default in ServerSettings.ini. But I've also read that ServerPassword only works in Engine.ini. However, Engine.ini doesn't include that entry by default - which creates the same issue as for AdminPassword. --- conan-exiles.kvp | 101 +++++++++++++------- conan-exilesconfig.json | 180 ++++++++++++++++++++++++++++++------ conan-exilesmetaconfig.json | 8 ++ 3 files changed, 229 insertions(+), 60 deletions(-) create mode 100644 conan-exilesmetaconfig.json diff --git a/conan-exiles.kvp b/conan-exiles.kvp index 530e49d..cbf487a 100644 --- a/conan-exiles.kvp +++ b/conan-exiles.kvp @@ -1,41 +1,76 @@ +Meta.DisplayName=Conan Exiles +Meta.Description=Conan Exiles Dedicated Server +Meta.OS=Windows, Linux +Meta.Arch=x86_64 +Meta.Author=IceOfWraith, Greelan, eNcrypt +Meta.URL=https://store.steampowered.com/app/440900/Conan_Exiles/ +Meta.DisplayImageSource=steam:440900 +Meta.EndpointURIFormat=steam://connect/{ip}:{GenericModule.App.ApplicationPort3} +Meta.ConfigManifest=conan-exilesconfig.json +Meta.MetaConfigManifest=conan-exilesmetaconfig.json +Meta.ConfigRoot=conan-exiles.kvp +Meta.MinAMPVersion=2.3.2.0 +Meta.SpecificDockerImage= +Meta.ContainerPolicy=Supported +Meta.Prerequsites=[] +Meta.ConfigReleaseState=NotSpecified +App.DisplayName=Conan Exiles +App.RootDir=./conan-exiles/ +App.BaseDirectory=./conan-exiles/443030/ +App.ExecutableWin=443030\ConanSandbox\Binaries\Win64\ConanSandboxServer-Win64-Test.exe +App.ExecutableLinux=1580130/proton +App.WorkingDir=443030/ConanSandbox/Binaries/Win64 +App.LinuxCommandLineArgs=run ./ConanSandboxServer-Win64-Test.exe +App.WindowsCommandLineArgs= +App.CommandLineArgs={{$PlatformArgs}} -log -ServerName="{{ServerName}}" -RconEnabled=1 -RconPassword="{{$RemoteAdminPassword}}" -AdminPassword="{{AdminPassword}}" {{$FormattedArgs}} +App.AppSettings={} +App.EnvironmentVariables={"LD_LIBRARY_PATH":"./linux64:%LD_LIBRARY_PATH%","SteamAppId":"440900","STEAM_COMPAT_DATA_PATH":"{{$FullRootDir}}1580130","STEAM_COMPAT_CLIENT_INSTALL_PATH":"{{$FullRootDir}}1580130","ENABLE_VKBASALT":"1"} +App.CommandLineParameterFormat=-{0}={1} +App.CommandLineParameterDelimiter= +App.ExitMethod=String +App.ExitTimeout=30 +App.ExitString=exit +App.ExitFile=app_exit.lck +App.HasWriteableConsole=True +App.HasReadableConsole=True +App.SupportsLiveSettingsChanges=False +App.LiveSettingChangeCommandFormat=set {0} "{1}" +App.ApplicationIPBinding=0.0.0.0 App.ApplicationPort1=7777 App.ApplicationPort2=7778 App.ApplicationPort3=27015 App.RemoteAdminPort=25575 -App.ApplicationReadyMode=Immediate -App.BaseDirectory=./conan-exiles/443030/ -App.LinuxCommandLineArgs=run ./443030/ConanSandbox/Binaries/Win64/ConanSandboxServer-Win64-Test.exe -App.CommandLineArgs={{$PlatformArgs}} -log -Port={{$ApplicationPort1}} -QueryPort={{$ApplicationPort3}} -RconEnabled=1 -RconPort={{$RemoteAdminPort}} -RCONPassword="{{$RemoteAdminPassword}}" {{$FormattedArgs}} -App.CommandLineParameterDelimiter= -App.CommandLineParameterFormat=-{0}="{1}" -App.DisplayName=Conan Exiles -App.EnvironmentVariables={"STEAM_COMPAT_DATA_PATH":"{{$FullRootDir}}","STEAM_COMPAT_CLIENT_INSTALL_PATH":"{{$FullRootDir}}","PROTON_LOG":"1","SteamAppId":"440900"} -App.EnvironmentVariables={"LD_LIBRARY_PATH": "./linux64:%LD_LIBRARY_PATH%", "SteamAppId": "440900"} -App.ExecutableLinux=1580130/proton -App.ExecutableWin=443030\ConanSandbox\Binaries\Win64\ConanSandboxServer-Win64-Test.exe -App.ExitMethod=OS_CLOSE -App.ExitString=stop -App.HasReadableConsole=true -App.HasWritableConsole=true -App.RapidStartup=false -App.UseRandomAdminPassword=True -App.RemoteAdminPort=25575 +App.MaxUsers=40 +App.UseRandomAdminPassword=False +App.RemoteAdminPassword=Password123 App.AdminMethod=SourceRCON -App.RootDir=./conan-exiles/ -App.UpdateSource=Multi -App.UpdateSources=[{"UpdateStageName": "Proton Download", "UpdateSourcePlatform": "Linux", "UpdateSource": "SteamCMD", "UpdateSourceData": "1580130"}, {"UpdateStageName": "Conan Exiles Server Download", "UpdateSourcePlatform": "All", "UpdateSource": "SteamCMD", "ForceDownloadPlatform": "Windows", "UpdateSourceData": "443030"}] -App.WorkingDir=443030/ConanSandbox/ -Console.AppReadyRegex=^LogGameMode:Display: Match State Changed from WaitingToStart to InProgress$ +App.AdminLoginTransform=None +App.RCONConnectDelaySeconds=5 +App.RCONConnectRetrySeconds=5 +App.UpdateSources=[{"UpdateStageName":"SteamCMD and Conan Exiles Download","UpdateSourcePlatform":"All","UpdateSource":"SteamCMD","UpdateSourceData":"443030","ForceDownloadPlatform":"Windows"},{"UpdateStageName":"Proton Compatibility Layer","UpdateSourcePlatform":"Linux","UpdateSource":"SteamCMD","UpdateSourceData":"1580130"}] +App.Compatibility=None +App.SteamUpdateAnonymousLogin=True +App.SteamForceLoginPrompt=False +App.RapidStartup=False +App.SupportsUniversalSleep=False +App.UniversalSleepApplicationUDPPort=27015 +App.UniversalSleepSteamQueryPort=27016 +App.WakeupMode=Any +App.ApplicationReadyMode=RegexMatch +App.TemplateMatchRegex={{(\$?[\w]+)}} +Console.FilterMatchRegex= +Console.FilterMatchReplacement= Console.ThrowawayMessageRegex=^(WARNING|ERROR): Shader.+$ -Console.UserChatRegex=^(?.+?): (?.+)$ +Console.AppReadyRegex=^LogGameMode:Display: Match State Changed from WaitingToStart to InProgress$ Console.UserJoinRegex=^User (?.+?) \((?-?d+)\) connected from \[::ffff:(?.+?)\]$ Console.UserLeaveRegex=^User (?.+?) \((?-?d+)\) disconnected\. Reason: (.+?)$ -Meta.Author=IceOfWraith, Greelan, eNcrypt -Meta.ConfigManifest=conan-exilesconfig.json -Meta.ConfigRoot=conan-exiles.kvp -Meta.Description=Conan Exiles Dedicated Server -Meta.DisplayImageSource=steam:440900 -Meta.DisplayName=Conan Exiles -Meta.EndpointURIFormat=steam://connect/{ip}:{GenericModule.App.ApplicationPort3} -Meta.OS=3 -Meta.URL=https://store.steampowered.com/app/440900/Conan_Exiles/ \ No newline at end of file +Console.UserChatRegex=^(?.+?): (?.+)$ +Console.UpdateAvailableRegex=^\[\d\d:\d\d:\d\d\] \[INFO\] A new server update is available! v[\d\.]+.$ +Console.SuppressLogAtStart=False +Console.ActivateLogRegex= +Console.UserActions={} +Limits.SleepMode=True +Limits.SleepOnStart=False +Limits.SleepDelayMinutes=5 +Limits.DozeDelay=2 +Limits.AutoRetryCount=5 diff --git a/conan-exilesconfig.json b/conan-exilesconfig.json index c0a675f..ceb4a4a 100644 --- a/conan-exilesconfig.json +++ b/conan-exilesconfig.json @@ -1,28 +1,154 @@ [ - { - "DisplayName": "Server Name", - "Category": "Server Settings", - "Description": "The Name of the server shown in the server browser", - "Keywords": "name", - "FieldName": "ServerName", - "InputType": "text", - "IsFlagArgument": false, - "ParamFieldName": "ServerName", - "IncludeInCommandLine": true, - "DefaultValue": "Conan Exiles Server - Powered by AMP", - "EnumValues": {} - }, - { - "DisplayName": "Max Players", - "Category": "Server Settings", - "Description": "The maximum amount of players that can be on the server at once", - "Keywords": "players", - "FieldName": "$MaxUsers", - "InputType": "number", - "IsFlagArgument": false, - "ParamFieldName": "$MaxUsers", - "IncludeInCommandLine": true, - "DefaultValue": "100", - "EnumValues": {} - } -] \ No newline at end of file + { + "DisplayName":"Game Port", + "Category":"Server Settings", + "Description":"", + "Keywords":"", + "FieldName":"$ApplicationPort1", + "InputType":"number", + "IsFlagArgument":false, + "Hidden":true, + "ParamFieldName":"Port", + "IncludeInCommandLine":true, + "DefaultValue":"7777" + }, + { + "DisplayName":"Query Port", + "Category":"Server Settings", + "Description":"", + "Keywords":"", + "FieldName":"$ApplicationPort3", + "InputType":"number", + "IsFlagArgument":false, + "Hidden":true, + "ParamFieldName":"QueryPort", + "IncludeInCommandLine":true, + "DefaultValue":"27015" + }, + { + "DisplayName":"RCON Port", + "Category":"Server Settings", + "Description":"", + "Keywords":"", + "FieldName":"$RemoteAdminPort", + "InputType":"number", + "IsFlagArgument":false, + "Hidden":true, + "ParamFieldName":"RconPort", + "IncludeInCommandLine":true, + "DefaultValue":"25575" + }, + { + "DisplayName":"Server Name", + "Category":"Server Settings", + "Description":"Name of the server shown in the server browser", + "Keywords":"name", + "FieldName":"ServerName", + "InputType":"text", + "IsFlagArgument":false, + "ParamFieldName":"ServerName", + "IncludeInCommandLine":false, + "DefaultValue":"Conan Exiles Server - Powered by AMP" + }, + { + "DisplayName":"Player Limit", + "Category":"Server Settings", + "Description":"Maximum number of players that may connect to the server", + "Keywords":"maximum,players", + "FieldName":"$MaxUsers", + "InputType":"number", + "IsFlagArgument":false, + "ParamFieldName":"MaxPlayers", + "IncludeInCommandLine":true, + "DefaultValue":"40", + "Suffix":"players" + }, + { + "DisplayName":"Server Password", + "Category":"Server Settings", + "Description":"Password to connect to the server. Default is no password", + "Keywords":"password", + "FieldName":"ServerPassword", + "InputType":"password", + "IsFlagArgument":false, + "ParamFieldName":"ServerSettings.ServerPassword", + "IncludeInCommandLine":false, + "DefaultValue":"" + }, + { + "DisplayName":"Admin Password", + "Category":"Server Settings", + "Description":"In-game \"admin\" user password (not the server password). NOTE: You must set this to allow use of the in-game admin panel", + "Keywords":"admin,password", + "FieldName":"AdminPassword", + "InputType":"RandomPassword", + "IsFlagArgument":false, + "ParamFieldName":"AdminPassword", + "IncludeInCommandLine":false, + "DefaultValue":"" + }, + { + "DisplayName":"RCON Password", + "Category":"Server Settings", + "Description":"Password to connect to RCON. NOTE: You should change this after first installing the server", + "Keywords":"rcon,password", + "FieldName":"$RemoteAdminPassword", + "InputType":"RandomPassword", + "IsFlagArgument":false, + "ParamFieldName":"RconPassword", + "IncludeInCommandLine":false, + "DefaultValue":"Password123" + }, + { + "DisplayName":"Server Region", + "Category":"Server Settings", + "Description":"Sets the server region, which affects how the server is filtered in the server list", + "Keywords":"region", + "FieldName":"serverRegion", + "InputType":"enum", + "IsFlagArgument":false, + "ParamFieldName":"ServerSettings.serverRegion", + "IncludeInCommandLine":false, + "DefaultValue":"0", + "EnumValues":{ + "0":"Europe", + "1":"North America", + "2":"Asia", + "3":"Australia", + "4":"South America", + "5":"Japan" + } + }, + { + "DisplayName":"Enable BattlEye", + "Category":"Server Settings", + "Description":"If enabled, BattlEye cheat protection will apply to the server", + "Keywords":"battleye,cheats", + "FieldName":"IsBattlEyeEnabled", + "InputType":"checkbox", + "IsFlagArgument":false, + "ParamFieldName":"ServerSettings.IsBattlEyeEnabled", + "IncludeInCommandLine":false, + "DefaultValue":"False", + "EnumValues":{ + "True":"True", + "False":"False" + } + }, + { + "DisplayName":"Enable Valve Anti-cheat (Steam VAC)", + "Category":"Server Settings", + "Description":"", + "Keywords":"VAC,cheat", + "FieldName":"IsVACEnabled", + "InputType":"checkbox", + "IsFlagArgument":false, + "ParamFieldName":"ServerSettings.IsVACEnabled", + "IncludeInCommandLine":false, + "DefaultValue":"True", + "EnumValues":{ + "True":"True", + "False":"False" + } + } + ] \ No newline at end of file diff --git a/conan-exilesmetaconfig.json b/conan-exilesmetaconfig.json new file mode 100644 index 0000000..3c7f6f9 --- /dev/null +++ b/conan-exilesmetaconfig.json @@ -0,0 +1,8 @@ +[ + { + "ConfigFile": "ConanSandbox/Saved/Config/WindowsServer/ServerSettings.ini", + "AutoMap": true, + "ConfigType": "ini", + "ConfigFormatRegex": "^(?.+?)=(?.*?)$" + } +] \ No newline at end of file