From 8bb6c5992318a34dd5ed3b61103b445c4abd3035 Mon Sep 17 00:00:00 2001 From: IceOfWraith <96364530+IceOfWraith@users.noreply.github.com> Date: Sat, 29 Jan 2022 13:12:18 -0600 Subject: [PATCH 01/22] Add Conan Exiles (draft) This brings back the work that was started on https://github.com/CubeCoders/AMPTemplates/pull/3 previously. It has been migrated to use the new generic settings. It currently only works on Windows, but has a baseline started for Proton. Settings have not been added to the GUI yet. --- conan-exiles.kvp | 41 +++++++++++++++++++++++++++++++++++++++++ conan-exilesconfig.json | 28 ++++++++++++++++++++++++++++ 2 files changed, 69 insertions(+) create mode 100644 conan-exiles.kvp create mode 100644 conan-exilesconfig.json diff --git a/conan-exiles.kvp b/conan-exiles.kvp new file mode 100644 index 0000000..530e49d --- /dev/null +++ b/conan-exiles.kvp @@ -0,0 +1,41 @@ +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.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$ +Console.ThrowawayMessageRegex=^(WARNING|ERROR): Shader.+$ +Console.UserChatRegex=^(?.+?): (?.+)$ +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 diff --git a/conan-exilesconfig.json b/conan-exilesconfig.json new file mode 100644 index 0000000..c0a675f --- /dev/null +++ b/conan-exilesconfig.json @@ -0,0 +1,28 @@ +[ + { + "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 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 02/22] 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 From fa0c719a1ed77d5cb85eec4728f44e3813620b8d Mon Sep 17 00:00:00 2001 From: James Manker Date: Sat, 12 Feb 2022 02:38:27 -0600 Subject: [PATCH 03/22] Add config template @Greelan added update stages and adminpassword settings. --- conan-exiles.kvp | 4 +- conan-exilesconfig.json | 5 +- conan-exilesconfigsettings.ini | 203 +++++++++++++++++++++++++++++++++ 3 files changed, 208 insertions(+), 4 deletions(-) create mode 100644 conan-exilesconfigsettings.ini diff --git a/conan-exiles.kvp b/conan-exiles.kvp index cbf487a..11aeb15 100644 --- a/conan-exiles.kvp +++ b/conan-exiles.kvp @@ -22,7 +22,7 @@ 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.CommandLineArgs={{$PlatformArgs}} -log -ServerName="{{ServerName}}" -RconEnabled=1 -RconPassword="{{$RemoteAdminPassword}}" {{$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} @@ -47,7 +47,7 @@ App.AdminMethod=SourceRCON 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.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"},{"UpdateStageName":"ServerSettings File Download","UpdateSourcePlatform":"All","UpdateSource":"FetchURL","UpdateSourceData":"https://raw.githubusercontent.com/IceOfWraith/AMPTemplates/conan/conan-exilesconfigsettings.ini","UpdateSourceTarget":"../","OverwriteExistingFiles":true},{"UpdateStageName":"Config Directory Creation","UpdateSourcePlatform":"All","UpdateSource":"CreateDirectory","UpdateSourceArgs":"/conan-exiles/443030/ConanSandbox/Saved/Config/WindowsServer","OverwriteExistingFiles":false},{"UpdateStageName":"ServerSettings File Copy","UpdateSourcePlatform":"All","UpdateSource":"CopyFilePath","UpdateSourceData":"./conan-exiles/443030/ConanSandbox/Saved/Config/WindowsServer/ServerSettings.ini","UpdateSourceArgs":"./conan-exilesconfigsettings.ini","OverwriteExistingFiles":false}] App.Compatibility=None App.SteamUpdateAnonymousLogin=True App.SteamForceLoginPrompt=False diff --git a/conan-exilesconfig.json b/conan-exilesconfig.json index ceb4a4a..2ba0346 100644 --- a/conan-exilesconfig.json +++ b/conan-exilesconfig.json @@ -78,14 +78,15 @@ { "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", + "Description":"In-game \"admin\" user password (not the server password). NOTE: You must set this to allow use of the in-game admin panel. Change this after installing the server!", "Keywords":"admin,password", "FieldName":"AdminPassword", "InputType":"RandomPassword", "IsFlagArgument":false, "ParamFieldName":"AdminPassword", "IncludeInCommandLine":false, - "DefaultValue":"" + "DefaultValue":"Password123", + "Required":true }, { "DisplayName":"RCON Password", diff --git a/conan-exilesconfigsettings.ini b/conan-exilesconfigsettings.ini new file mode 100644 index 0000000..514971a --- /dev/null +++ b/conan-exilesconfigsettings.ini @@ -0,0 +1,203 @@ +[ServerSettings] +NPCMindReadingMode=0 +MaxNudity=0 +ServerCommunity=0 +ConfigVersion=10 +BlueprintConfigVersion=24 +PurgeNPCBuildingDamageMultiplier=(5.000000,5.000000,10.000000,15.000000,20.000000,25.000000) +BuildingPVPWhitelist=("80901","80111","80112","80915","80912") +PlayerKnockbackMultiplier=1.000000 +NPCKnockbackMultiplier=1.000000 +StructureDamageMultiplier=1.000000 +StructureHealthMultiplier=1.000000 +NPCRespawnMultiplier=1.000000 +NPCHealthMultiplier=1.000000 +PlayerDamageMultiplier=1.000000 +PlayerDamageTakenMultiplier=1.000000 +MinionDamageMultiplier=1.000000 +MinionDamageTakenMultiplier=1.000000 +NPCDamageMultiplier=1.000000 +NPCDamageTakenMultiplier=1.000000 +PlayerEncumbranceMultiplier=1.000000 +PlayerEncumbrancePenaltyMultiplier=1.000000 +PlayerMovementSpeedScale=1.000000 +PlayerStaminaCostSprintMultiplier=1.000000 +PlayerSprintSpeedScale=1.000000 +PlayerStaminaCostMultiplier=1.000000 +PlayerHealthRegenSpeedScale=1.000000 +PlayerXPRateMultiplier=1.000000 +PlayerXPKillMultiplier=1.000000 +PlayerXPHarvestMultiplier=1.000000 +PlayerXPCraftMultiplier=1.000000 +PlayerXPTimeMultiplier=1.000000 +DogsOfTheDesertSpawnWithDogs=False +CrossDesertOnce=True +ThrallExclusionRadius=500.000000 +MaxAggroRange=9000.000000 +FriendlyFireDamageMultiplier=0.250000 +CampsIgnoreLandclaim=True +AvatarDomeDurationMultiplier=1.000000 +AvatarDomeDamageMultiplier=1.000000 +NPCMaxSpawnCapMultiplier=1.000000 +serverRegion=0 +PVPEnabled=False +RestrictPVPTime=False +RestrictPVPBuildingDamageTime=False +PVPTimeMondayStart=0 +PVPTimeTuesdayStart=0 +PVPTimeWednesdayStart=0 +PVPTimeThursdayStart=0 +PVPTimeFridayStart=0 +PVPTimeSaturdayStart=0 +PVPTimeSundayStart=0 +PVPTimeMondayEnd=0 +PVPTimeTuesdayEnd=0 +PVPTimeWednesdayEnd=0 +PVPTimeThursdayEnd=0 +PVPTimeFridayEnd=0 +PVPTimeSaturdayEnd=0 +PVPTimeSundayEnd=0 +PVPEnabledMonday=False +PVPEnabledTuesday=False +PVPEnabledWednesday=False +PVPEnabledThursday=False +PVPEnabledFriday=False +PVPEnabledSaturday=False +PVPEnabledSunday=False +PVPBuildingDamageTimeMondayStart=0 +PVPBuildingDamageTimeTuesdayStart=0 +PVPBuildingDamageTimeWednesdayStart=0 +PVPBuildingDamageTimeThursdayStart=0 +PVPBuildingDamageTimeFridayStart=0 +PVPBuildingDamageTimeSaturdayStart=0 +PVPBuildingDamageTimeSundayStart=0 +PVPBuildingDamageTimeMondayEnd=0 +PVPBuildingDamageTimeTuesdayEnd=0 +PVPBuildingDamageTimeWednesdayEnd=0 +PVPBuildingDamageTimeThursdayEnd=0 +PVPBuildingDamageTimeFridayEnd=0 +PVPBuildingDamageTimeSaturdayEnd=0 +PVPBuildingDamageTimeSundayEnd=0 +PVPBuildingDamageEnabledMonday=False +PVPBuildingDamageEnabledTuesday=False +PVPBuildingDamageEnabledWednesday=False +PVPBuildingDamageEnabledThursday=False +PVPBuildingDamageEnabledFriday=False +PVPBuildingDamageEnabledSaturday=False +PVPBuildingDamageEnabledSunday=False +DisableBuildingDuringTimeRestrictedPVP=False +VocalVisibilityDurationInMinutes=5 +CombatModeModifier=0 +ContainersIgnoreOwnership=True +LandClaimRadiusMultiplier=1.000000 +DisableLandclaimNotifications=True +BuildingPreloadRadius=80.000000 +CanDamagePlayerOwnedStructures=False +DynamicBuildingDamage=False +DynamicBuildingDamagePeriod=1800 +ServerPassword= +ServerMessageOfTheDay= +KickAFKPercentage=80 +KickAFKTime=2700 +OfflinePlayersUnconsciousBodiesHours=168 +CorpsesPerPlayer=10 +PlayerCorpseLifeTime=1800.000000 +NPCCorpseLifeTime=600.000000 +ItemConvertionMultiplier=1.000000 +ThrallConversionMultiplier=1.000000 +FuelBurnTimeMultiplier=1.000000 +CraftingCostMultiplier=1.000000 +StaminaRegenerationTime=3.750000 +StaminaExhaustionTime=3.750000 +StaminaStaticRegenRateMultiplier=1.000000 +StaminaMovingRegenRateMultiplier=1.000000 +PlayerStaminaRegenSpeedScale=1.000000 +StaminaOnConsumeRegenPause=1.500000 +StaminaOnExhaustionRegenPause=2.750000 +ThrallScoutingTimeMinutes=10.000000 +ThrallMinDistanceAwayFromHome=5000.000000 +ThrallTeleportingCooldown=10.000000 +MinionPopulationBaseValue=50 +MinionPopulationPerPlayer=5 +MinionOverpopulationCleanup=60 +MinionOverpopulationAllowed=10 +UseMinionPopulationLimit=False +EnableFollowerRescueOnLandClaimOnly=True +EnableFollowerRescueInBuildExclusionZone=False +FollowerRescueCooldown=3600 +DamageCooldownBeforeRescue=600 +ThrallCorruptionRemovalMultiplier=1.000000 +PlayerCorruptionGainMultiplier=1.000000 +AnimalPenCraftingTimeMultiplier=1.000000 +FeedBoxRangeMultiplier=1.000000 +BuildingDamageMultiplier=1.000000 +PathFollowingSendsAngularVelocity=False +UnconsciousTimeSeconds=1800.000000 +ConciousnessDamageMultiplier=1.000000 +ThrallDamageToPlayersMultiplier=1.000000 +MaxBuildingDecayTime=1296000.000000 +MaxDecayTimeToAutoDemolish=604800.000000 +ThrallDecayTime=1296000.000000 +DisableThrallDecay=False +BuildingDecayTimePerScore=5400.000000 +BuildingDecayTimeMultiplier=1.000000 +DecayCleanupTimeMultiplier=2.000000 +DecayBonusTimeRate=600.000000 +DecayShowBuildingScore=False +EnableAutoFacingOnAttack=True +EnableTargetLock=True +CachedLandClaimRadiusMultiplier=1.000000 +ValidatePhysNavWalkWithRaycast=True +LocalNavMeshVisualizationFrequency=-1.000000 +LocalLandClaimVisualizationFrequency=-1.000000 +LocalLandClaimVisualizationRadius=3000 +LocalLandClaimVisualizationChannel=0 +UseLocalQuadraticAngularVelocityPrediction=False +LQAVPUseTime=0.150000 +LQAVPFadeTime=0.100000 +LQAVPMethod=2 +NetworkSimulatedSmoothRotationTimeWithLQAVP=0.100000 +EnableClanMarkers=True +ValidatePlayerStats=False +AllowedTimeUndermesh=-1.000000 +AllowedDistanceUndermeshSquared=490000.000000 +CapCharacterLayoutScalarParams=False +EventLogCauserPrivacy=1 +serverVoiceChat=1 +AvatarsDisabled=False +RestrictAvatarSummoningTime=False +AvatarSummoningTimeWeekdayStart=0 +AvatarSummoningTimeWeekdayEnd=0 +AvatarSummoningTimeWeekendStart=0 +AvatarSummoningTimeWeekendEnd=0 +AvatarLifetime=60.000000 +AvatarSummonTime=60.000000 +MaxDeathMapMarkers=3 +IsBattlEyeEnabled=False +IsVACEnabled=True +CanImportDirectlyFromSameServer=False +ServerTransferServersWhitelist= +MaxAllowedPing=0 +AllowFamilySharedAccount=True +RegionAllowAfrica=True +RegionAllowAsia=True +RegionAllowCentralEurope=True +RegionAllowEasternEurope=True +RegionAllowWesternEurope=True +RegionAllowNorthAmerica=True +RegionAllowOceania=True +RegionAllowSouthAmerica=True +RegionBlockList= +ServerModList= +InitialPurgeDelay=15.000000 +BuildingPickupEnabled=True +PoiProtectionEnabled=False +EventSystemEnabled=True +ServerMergeOutgoingTime=0 +ServerMergeDestination= +DisableChatFormatting=False +EnableLoginQueue=True +DisconnectionGraceTime=180 +bCanBeDamaged=True +AdminPassword=Password123 + From 86a19dd796a862573851a1cc717c419007fc2101 Mon Sep 17 00:00:00 2001 From: James Manker Date: Sat, 12 Feb 2022 02:55:27 -0600 Subject: [PATCH 04/22] . . --- conan-exiles.kvp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/conan-exiles.kvp b/conan-exiles.kvp index 11aeb15..e3c8b87 100644 --- a/conan-exiles.kvp +++ b/conan-exiles.kvp @@ -47,7 +47,7 @@ App.AdminMethod=SourceRCON 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"},{"UpdateStageName":"ServerSettings File Download","UpdateSourcePlatform":"All","UpdateSource":"FetchURL","UpdateSourceData":"https://raw.githubusercontent.com/IceOfWraith/AMPTemplates/conan/conan-exilesconfigsettings.ini","UpdateSourceTarget":"../","OverwriteExistingFiles":true},{"UpdateStageName":"Config Directory Creation","UpdateSourcePlatform":"All","UpdateSource":"CreateDirectory","UpdateSourceArgs":"/conan-exiles/443030/ConanSandbox/Saved/Config/WindowsServer","OverwriteExistingFiles":false},{"UpdateStageName":"ServerSettings File Copy","UpdateSourcePlatform":"All","UpdateSource":"CopyFilePath","UpdateSourceData":"./conan-exiles/443030/ConanSandbox/Saved/Config/WindowsServer/ServerSettings.ini","UpdateSourceArgs":"./conan-exilesconfigsettings.ini","OverwriteExistingFiles":false}] +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"},{"UpdateStageName":"ServerSettings File Download","UpdateSourcePlatform":"All","UpdateSource":"FetchURL","UpdateSourceData":"https://raw.githubusercontent.com/IceOfWraith/AMPTemplates/conan/conan-exilesconfigsettings.ini","UpdateSourceTarget":"../","OverwriteExistingFiles":true},{"UpdateStageName":"Config Directory Creation","UpdateSourcePlatform":"All","UpdateSource":"CreateDirectory","UpdateSourceArgs":"./conan-exiles/443030/ConanSandbox/Saved/Config/WindowsServer","OverwriteExistingFiles":false},{"UpdateStageName":"ServerSettings File Copy","UpdateSourcePlatform":"All","UpdateSource":"CopyFilePath","UpdateSourceData":"./conan-exiles/443030/ConanSandbox/Saved/Config/WindowsServer/ServerSettings.ini","UpdateSourceArgs":"./conan-exilesconfigsettings.ini","OverwriteExistingFiles":false}] App.Compatibility=None App.SteamUpdateAnonymousLogin=True App.SteamForceLoginPrompt=False From af7275b250950286488f4db1a7390acf84184e6d Mon Sep 17 00:00:00 2001 From: James Manker Date: Sat, 12 Feb 2022 03:05:24 -0600 Subject: [PATCH 05/22] Fix for configmanifest.json Fix for configmanifest.json --- conan-exilesconfig.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/conan-exilesconfig.json b/conan-exilesconfig.json index 2ba0346..06c471c 100644 --- a/conan-exilesconfig.json +++ b/conan-exilesconfig.json @@ -83,7 +83,7 @@ "FieldName":"AdminPassword", "InputType":"RandomPassword", "IsFlagArgument":false, - "ParamFieldName":"AdminPassword", + "ParamFieldName":"ServerSettings.AdminPassword", "IncludeInCommandLine":false, "DefaultValue":"Password123", "Required":true From bc8b9c0b45a774914fff245fecabdb6189ec0e18 Mon Sep 17 00:00:00 2001 From: James Manker Date: Sat, 12 Feb 2022 04:01:03 -0600 Subject: [PATCH 06/22] Added Proton Requires xvfb to run. --- conan-exiles.kvp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/conan-exiles.kvp b/conan-exiles.kvp index e3c8b87..9544e0f 100644 --- a/conan-exiles.kvp +++ b/conan-exiles.kvp @@ -18,13 +18,13 @@ 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.ExecutableLinux=/usr/bin/xvfb-run App.WorkingDir=443030/ConanSandbox/Binaries/Win64 -App.LinuxCommandLineArgs=run ./ConanSandboxServer-Win64-Test.exe +App.LinuxCommandLineArgs=-a "{{$FullRootDir}}1580130/proton" run "./ConanSandboxServer-Win64-Test.exe" App.WindowsCommandLineArgs= App.CommandLineArgs={{$PlatformArgs}} -log -ServerName="{{ServerName}}" -RconEnabled=1 -RconPassword="{{$RemoteAdminPassword}}" {{$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.EnvironmentVariables={"LD_LIBRARY_PATH":"./linux64:%LD_LIBRARY_PATH%","SteamAppId":"440900","STEAM_COMPAT_DATA_PATH":"{{$FullRootDir}}1580130","STEAM_COMPAT_CLIENT_INSTALL_PATH":"{{$FullRootDir}}1580130"} App.CommandLineParameterFormat=-{0}={1} App.CommandLineParameterDelimiter= App.ExitMethod=String @@ -47,7 +47,7 @@ App.AdminMethod=SourceRCON 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"},{"UpdateStageName":"ServerSettings File Download","UpdateSourcePlatform":"All","UpdateSource":"FetchURL","UpdateSourceData":"https://raw.githubusercontent.com/IceOfWraith/AMPTemplates/conan/conan-exilesconfigsettings.ini","UpdateSourceTarget":"../","OverwriteExistingFiles":true},{"UpdateStageName":"Config Directory Creation","UpdateSourcePlatform":"All","UpdateSource":"CreateDirectory","UpdateSourceArgs":"./conan-exiles/443030/ConanSandbox/Saved/Config/WindowsServer","OverwriteExistingFiles":false},{"UpdateStageName":"ServerSettings File Copy","UpdateSourcePlatform":"All","UpdateSource":"CopyFilePath","UpdateSourceData":"./conan-exiles/443030/ConanSandbox/Saved/Config/WindowsServer/ServerSettings.ini","UpdateSourceArgs":"./conan-exilesconfigsettings.ini","OverwriteExistingFiles":false}] +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"},{"UpdateStageName":"ServerSettings File Download","UpdateSourcePlatform":"All","UpdateSource":"FetchURL","UpdateSourceData":"https://github.com/CubeCoders/AMPTemplates/raw/main/conan-exilesconfigsettings.ini","UpdateSourceTarget":"../","OverwriteExistingFiles":true},{"UpdateStageName":"Config Directory Creation","UpdateSourcePlatform":"All","UpdateSource":"CreateDirectory","UpdateSourceArgs":"./conan-exiles/443030/ConanSandbox/Saved/Config/WindowsServer","OverwriteExistingFiles":false},{"UpdateStageName":"ServerSettings File Copy","UpdateSourcePlatform":"All","UpdateSource":"CopyFilePath","UpdateSourceData":"./conan-exiles/443030/ConanSandbox/Saved/Config/WindowsServer/ServerSettings.ini","UpdateSourceArgs":"./conan-exilesconfigsettings.ini","OverwriteExistingFiles":false}] App.Compatibility=None App.SteamUpdateAnonymousLogin=True App.SteamForceLoginPrompt=False From 366ae594213ec860918a7b1b6c3919d630ce90e8 Mon Sep 17 00:00:00 2001 From: James Manker Date: Sun, 3 Apr 2022 22:19:28 -0500 Subject: [PATCH 07/22] Added Map and Various Adjustments Updated the command line args due to formatting issues with the game, added Server Password to the command line since it goes in the Engine.ini and is not a line included by default. Disabled RCON for now due to the bug with AMP disconnecting after some time. The server works fine with regular console but will not accept input. --- conan-exiles.kvp | 34 ++++++++-------- conan-exilesconfig.json | 80 +++++++++++++++++-------------------- conan-exilesmetaconfig.json | 2 +- 3 files changed, 55 insertions(+), 61 deletions(-) diff --git a/conan-exiles.kvp b/conan-exiles.kvp index 9544e0f..8ed276f 100644 --- a/conan-exiles.kvp +++ b/conan-exiles.kvp @@ -2,15 +2,16 @@ Meta.DisplayName=Conan Exiles Meta.Description=Conan Exiles Dedicated Server Meta.OS=Windows, Linux Meta.Arch=x86_64 -Meta.Author=IceOfWraith, Greelan, eNcrypt +Meta.Author=Greelan, IceOfWraith, 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.MinAMPVersion=2.3.2.8 Meta.SpecificDockerImage= +Meta.DockerRequired=False Meta.ContainerPolicy=Supported Meta.Prerequsites=[] Meta.ConfigReleaseState=NotSpecified @@ -20,14 +21,14 @@ App.BaseDirectory=./conan-exiles/443030/ App.ExecutableWin=443030\ConanSandbox\Binaries\Win64\ConanSandboxServer-Win64-Test.exe App.ExecutableLinux=/usr/bin/xvfb-run App.WorkingDir=443030/ConanSandbox/Binaries/Win64 -App.LinuxCommandLineArgs=-a "{{$FullRootDir}}1580130/proton" run "./ConanSandboxServer-Win64-Test.exe" +App.LinuxCommandLineArgs=-a "{{$FullRootDir}}1493710/proton" run "./ConanSandboxServer-Win64-Test.exe" App.WindowsCommandLineArgs= -App.CommandLineArgs={{$PlatformArgs}} -log -ServerName="{{ServerName}}" -RconEnabled=1 -RconPassword="{{$RemoteAdminPassword}}" {{$FormattedArgs}} +App.CommandLineArgs={{$PlatformArgs}} {{Map}}{{CustomMap}} -log -Port={{$ApplicationPort1}} RconPort={{$RemoteAdminPort}} -RconEnabled=1 -RconPassword="{{$RemoteAdminPassword}}" -MaxPlayers={{$MaxUsers}} {{$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"} -App.CommandLineParameterFormat=-{0}={1} +App.EnvironmentVariables={"LD_LIBRARY_PATH":"./linux64:%LD_LIBRARY_PATH%","SteamAppId":"440900","STEAM_COMPAT_DATA_PATH":"{{$FullRootDir}}1493710","STEAM_COMPAT_CLIENT_INSTALL_PATH":"{{$FullRootDir}}1493710"} +App.CommandLineParameterFormat=-{0}="{1}" App.CommandLineParameterDelimiter= -App.ExitMethod=String +App.ExitMethod=OS_CLOSE App.ExitTimeout=30 App.ExitString=exit App.ExitFile=app_exit.lck @@ -43,18 +44,19 @@ App.RemoteAdminPort=25575 App.MaxUsers=40 App.UseRandomAdminPassword=False App.RemoteAdminPassword=Password123 -App.AdminMethod=SourceRCON +App.AdminMethod=STDIO 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"},{"UpdateStageName":"ServerSettings File Download","UpdateSourcePlatform":"All","UpdateSource":"FetchURL","UpdateSourceData":"https://github.com/CubeCoders/AMPTemplates/raw/main/conan-exilesconfigsettings.ini","UpdateSourceTarget":"../","OverwriteExistingFiles":true},{"UpdateStageName":"Config Directory Creation","UpdateSourcePlatform":"All","UpdateSource":"CreateDirectory","UpdateSourceArgs":"./conan-exiles/443030/ConanSandbox/Saved/Config/WindowsServer","OverwriteExistingFiles":false},{"UpdateStageName":"ServerSettings File Copy","UpdateSourcePlatform":"All","UpdateSource":"CopyFilePath","UpdateSourceData":"./conan-exiles/443030/ConanSandbox/Saved/Config/WindowsServer/ServerSettings.ini","UpdateSourceArgs":"./conan-exilesconfigsettings.ini","OverwriteExistingFiles":false}] +App.TelnetLoginFormat={0} +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":"1493710"},{"UpdateStageName":"ServerSettings File Download","UpdateSourcePlatform":"All","UpdateSource":"FetchURL","UpdateSourceData":"https://github.com/CubeCoders/AMPTemplates/raw/main/conan-exilesconfigsettings.ini","UpdateSourceTarget":"../","OverwriteExistingFiles":true},{"UpdateStageName":"Config Directory Creation","UpdateSourcePlatform":"All","UpdateSource":"CreateDirectory","UpdateSourceArgs":"./conan-exiles/443030/ConanSandbox/Saved/Config/WindowsServer","OverwriteExistingFiles":false},{"UpdateStageName":"ServerSettings File Copy","UpdateSourcePlatform":"All","UpdateSource":"CopyFilePath","UpdateSourceData":"./conan-exiles/443030/ConanSandbox/Saved/Config/WindowsServer/ServerSettings.ini","UpdateSourceArgs":"./conan-exilesconfigsettings.ini","OverwriteExistingFiles":false}] App.Compatibility=None App.SteamUpdateAnonymousLogin=True App.SteamForceLoginPrompt=False App.RapidStartup=False -App.SupportsUniversalSleep=False -App.UniversalSleepApplicationUDPPort=27015 -App.UniversalSleepSteamQueryPort=27016 +App.SupportsUniversalSleep=True +App.UniversalSleepApplicationUDPPort=1 +App.UniversalSleepSteamQueryPort=3 App.WakeupMode=Any App.ApplicationReadyMode=RegexMatch App.TemplateMatchRegex={{(\$?[\w]+)}} @@ -62,14 +64,14 @@ Console.FilterMatchRegex= Console.FilterMatchReplacement= Console.ThrowawayMessageRegex=^(WARNING|ERROR): Shader.+$ Console.AppReadyRegex=^LogGameMode:Display: Match State Changed from WaitingToStart to InProgress$ -Console.UserJoinRegex=^User (?.+?) \((?-?d+)\) connected from \[::ffff:(?.+?)\]$ -Console.UserLeaveRegex=^User (?.+?) \((?-?d+)\) disconnected\. Reason: (.+?)$ -Console.UserChatRegex=^(?.+?): (?.+)$ +Console.UserJoinRegex= +Console.UserLeaveRegex= +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.SleepMode=False Limits.SleepOnStart=False Limits.SleepDelayMinutes=5 Limits.DozeDelay=2 diff --git a/conan-exilesconfig.json b/conan-exilesconfig.json index 06c471c..ea6a429 100644 --- a/conan-exilesconfig.json +++ b/conan-exilesconfig.json @@ -1,43 +1,4 @@ [ - { - "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", @@ -47,9 +8,39 @@ "InputType":"text", "IsFlagArgument":false, "ParamFieldName":"ServerName", - "IncludeInCommandLine":false, + "IncludeInCommandLine":true, "DefaultValue":"Conan Exiles Server - Powered by AMP" }, + { + "DisplayName":"Map", + "Category":"Server Settings", + "Description":"Sets the map to load on startup", + "Keywords":"map", + "FieldName":"Map", + "InputType":"enum", + "IsFlagArgument":false, + "ParamFieldName":"Map", + "IncludeInCommandLine":false, + "DefaultValue":"/Game/Maps/ConanSandbox/ConanSandbox", + "EnumValues":{ + "":"Custom", + "/Game/Maps/ConanSandbox/ConanSandbox":"Exiled Lands", + "/Game/DLC_EXT/DLC_Siptah/Maps/DLC_Isle_of_Siptah":"Isle of Siptah" + } + }, + { + "DisplayName":"Custom Map", + "Category":"Server Settings", + "Description":"If using a custom map, enter it here. Choose Custom from the Map option.", + "Keywords":"custom,map", + "FieldName":"CustomMap", + "InputType":"text", + "IsFlagArgument":false, + "ParamFieldName":"CustomMap", + "IncludeInCommandLine":false, + "DefaultValue":"", + "Placeholder":"/Game/Mods/Savage_Wilds/Savage_Wilds" + }, { "DisplayName":"Player Limit", "Category":"Server Settings", @@ -59,7 +50,7 @@ "InputType":"number", "IsFlagArgument":false, "ParamFieldName":"MaxPlayers", - "IncludeInCommandLine":true, + "IncludeInCommandLine":false, "DefaultValue":"40", "Suffix":"players" }, @@ -71,9 +62,10 @@ "FieldName":"ServerPassword", "InputType":"password", "IsFlagArgument":false, - "ParamFieldName":"ServerSettings.ServerPassword", - "IncludeInCommandLine":false, - "DefaultValue":"" + "ParamFieldName":"ServerPassword", + "IncludeInCommandLine":true, + "DefaultValue":"", + "SkipIfEmpty": true }, { "DisplayName":"Admin Password", diff --git a/conan-exilesmetaconfig.json b/conan-exilesmetaconfig.json index 3c7f6f9..b671c20 100644 --- a/conan-exilesmetaconfig.json +++ b/conan-exilesmetaconfig.json @@ -5,4 +5,4 @@ "ConfigType": "ini", "ConfigFormatRegex": "^(?.+?)=(?.*?)$" } -] \ No newline at end of file +] \ No newline at end of file From c8df970a0f8781649de233f7aafe231cabd234be Mon Sep 17 00:00:00 2001 From: James Manker Date: Fri, 29 Apr 2022 11:35:08 -0500 Subject: [PATCH 08/22] Fixed QueryPort and EnumValues blanks I somehow removed the QueryPort through all the changes with the command line args. It's back now. Also added default blank values for EnumValues to avoid any possible issues. --- conan-exiles.kvp | 2 +- conan-exilesconfig.json | 18 ++++++++++++------ 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/conan-exiles.kvp b/conan-exiles.kvp index 8ed276f..3c6014b 100644 --- a/conan-exiles.kvp +++ b/conan-exiles.kvp @@ -23,7 +23,7 @@ App.ExecutableLinux=/usr/bin/xvfb-run App.WorkingDir=443030/ConanSandbox/Binaries/Win64 App.LinuxCommandLineArgs=-a "{{$FullRootDir}}1493710/proton" run "./ConanSandboxServer-Win64-Test.exe" App.WindowsCommandLineArgs= -App.CommandLineArgs={{$PlatformArgs}} {{Map}}{{CustomMap}} -log -Port={{$ApplicationPort1}} RconPort={{$RemoteAdminPort}} -RconEnabled=1 -RconPassword="{{$RemoteAdminPassword}}" -MaxPlayers={{$MaxUsers}} {{$FormattedArgs}} +App.CommandLineArgs={{$PlatformArgs}} {{Map}}{{CustomMap}} -log -Port={{$ApplicationPort1}} -QueryPort={{$ApplicationPort3}} -RconPort={{$RemoteAdminPort}} -RconEnabled=1 -RconPassword="{{$RemoteAdminPassword}}" -MaxPlayers={{$MaxUsers}} {{$FormattedArgs}} App.AppSettings={} App.EnvironmentVariables={"LD_LIBRARY_PATH":"./linux64:%LD_LIBRARY_PATH%","SteamAppId":"440900","STEAM_COMPAT_DATA_PATH":"{{$FullRootDir}}1493710","STEAM_COMPAT_CLIENT_INSTALL_PATH":"{{$FullRootDir}}1493710"} App.CommandLineParameterFormat=-{0}="{1}" diff --git a/conan-exilesconfig.json b/conan-exilesconfig.json index ea6a429..9f83350 100644 --- a/conan-exilesconfig.json +++ b/conan-exilesconfig.json @@ -9,7 +9,8 @@ "IsFlagArgument":false, "ParamFieldName":"ServerName", "IncludeInCommandLine":true, - "DefaultValue":"Conan Exiles Server - Powered by AMP" + "DefaultValue":"Conan Exiles Server - Powered by AMP", + "EnumValues":{} }, { "DisplayName":"Map", @@ -39,7 +40,8 @@ "ParamFieldName":"CustomMap", "IncludeInCommandLine":false, "DefaultValue":"", - "Placeholder":"/Game/Mods/Savage_Wilds/Savage_Wilds" + "Placeholder":"/Game/Mods/Savage_Wilds/Savage_Wilds", + "EnumValues":{} }, { "DisplayName":"Player Limit", @@ -52,7 +54,8 @@ "ParamFieldName":"MaxPlayers", "IncludeInCommandLine":false, "DefaultValue":"40", - "Suffix":"players" + "Suffix":"players", + "EnumValues":{} }, { "DisplayName":"Server Password", @@ -65,7 +68,8 @@ "ParamFieldName":"ServerPassword", "IncludeInCommandLine":true, "DefaultValue":"", - "SkipIfEmpty": true + "SkipIfEmpty": true, + "EnumValues":{} }, { "DisplayName":"Admin Password", @@ -78,7 +82,8 @@ "ParamFieldName":"ServerSettings.AdminPassword", "IncludeInCommandLine":false, "DefaultValue":"Password123", - "Required":true + "Required":true, + "EnumValues":{} }, { "DisplayName":"RCON Password", @@ -90,7 +95,8 @@ "IsFlagArgument":false, "ParamFieldName":"RconPassword", "IncludeInCommandLine":false, - "DefaultValue":"Password123" + "DefaultValue":"Password123", + "EnumValues":{} }, { "DisplayName":"Server Region", From 9cad79c948e5179e4a96bb74d8b51181d3a6d0c3 Mon Sep 17 00:00:00 2001 From: James Manker Date: Fri, 29 Apr 2022 11:38:57 -0500 Subject: [PATCH 09/22] As requested by Greelan Putting my name first. --- conan-exiles.kvp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/conan-exiles.kvp b/conan-exiles.kvp index 3c6014b..6de5668 100644 --- a/conan-exiles.kvp +++ b/conan-exiles.kvp @@ -2,7 +2,7 @@ Meta.DisplayName=Conan Exiles Meta.Description=Conan Exiles Dedicated Server Meta.OS=Windows, Linux Meta.Arch=x86_64 -Meta.Author=Greelan, IceOfWraith, eNcrypt +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} From b417df11b6d206d287280062ad54af9e53e8b57c Mon Sep 17 00:00:00 2001 From: James Manker Date: Sat, 7 May 2022 17:13:41 -0500 Subject: [PATCH 10/22] Update Conan Config Corrected multiple suggested fixed with the config. --- conan-exiles.kvp | 9 +++-- conan-exilesconfig.json | 73 +++++++++++++++++++++++++++++++------ conan-exilesmetaconfig.json | 10 +++++ 3 files changed, 77 insertions(+), 15 deletions(-) diff --git a/conan-exiles.kvp b/conan-exiles.kvp index 6de5668..86b5b11 100644 --- a/conan-exiles.kvp +++ b/conan-exiles.kvp @@ -42,9 +42,9 @@ App.ApplicationPort2=7778 App.ApplicationPort3=27015 App.RemoteAdminPort=25575 App.MaxUsers=40 -App.UseRandomAdminPassword=False -App.RemoteAdminPassword=Password123 -App.AdminMethod=STDIO +App.UseRandomAdminPassword=True +App.RemoteAdminPassword=eb556e2744554cb8a161246ef8a82b8e +App.AdminMethod=SourceRCON App.AdminLoginTransform=None App.RCONConnectDelaySeconds=5 App.RCONConnectRetrySeconds=5 @@ -71,8 +71,9 @@ Console.UpdateAvailableRegex=^\[\d\d:\d\d:\d\d\] \[INFO\] A new server update is Console.SuppressLogAtStart=False Console.ActivateLogRegex= Console.UserActions={} -Limits.SleepMode=False +Limits.SleepMode=True Limits.SleepOnStart=False Limits.SleepDelayMinutes=5 Limits.DozeDelay=2 Limits.AutoRetryCount=5 +Limits.SleepStartThresholdSeconds=60 \ No newline at end of file diff --git a/conan-exilesconfig.json b/conan-exilesconfig.json index 9f83350..7f399ad 100644 --- a/conan-exilesconfig.json +++ b/conan-exilesconfig.json @@ -1,8 +1,59 @@ [ { + "DisplayName":"Game Port", + "Category":"Server Settings", + "Description":"", + "Keywords":"", + "FieldName":"$ApplicationPort1", + "InputType":"number", + "IsFlagArgument":false, + "Hidden":true, + "ParamFieldName":"URL.Port", + "IncludeInCommandLine":false, + "DefaultValue":"7777" + }, + { + "DisplayName":"Download Port Offset", + "Category":"Server Settings", + "Description":"Mod download port matches the Game Port.", + "Keywords":"", + "FieldName":"DownloadPortOffset", + "InputType":"number", + "IsFlagArgument":false, + "Hidden":true, + "ParamFieldName":"/Script/ConanSandbox.SystemSettings.ModFileDownload.DownloadPortOffset", + "IncludeInCommandLine":false, + "DefaultValue":"0" + }, + { + "DisplayName":"Query Port", + "Category":"Server Settings", + "Description":"", + "Keywords":"", + "FieldName":"$ApplicationPort3", + "InputType":"number", + "IsFlagArgument":false, + "Hidden":true, + "ParamFieldName":"OnlineSubsystemNull.GameServerQueryPort", + "IncludeInCommandLine":false, + "DefaultValue":"27015" + }, + { + "DisplayName":"RCON Port", + "Category":"Server Settings", + "Description":"", + "Keywords":"", + "FieldName":"$RemoteAdminPort", + "InputType":"number", + "IsFlagArgument":false, + "Hidden":true, + "ParamFieldName":"RconPlugin.RconPort", + "IncludeInCommandLine":false, + "DefaultValue":"25575" + },{ "DisplayName":"Server Name", "Category":"Server Settings", - "Description":"Name of the server shown in the server browser", + "Description":"Name of the server shown in the server browser.", "Keywords":"name", "FieldName":"ServerName", "InputType":"text", @@ -15,7 +66,7 @@ { "DisplayName":"Map", "Category":"Server Settings", - "Description":"Sets the map to load on startup", + "Description":"Sets the map to load on startup.", "Keywords":"map", "FieldName":"Map", "InputType":"enum", @@ -46,7 +97,7 @@ { "DisplayName":"Player Limit", "Category":"Server Settings", - "Description":"Maximum number of players that may connect to the server", + "Description":"Maximum number of players that may connect to the server.", "Keywords":"maximum,players", "FieldName":"$MaxUsers", "InputType":"number", @@ -60,7 +111,7 @@ { "DisplayName":"Server Password", "Category":"Server Settings", - "Description":"Password to connect to the server. Default is no password", + "Description":"Password to connect to the server. Default is no password.", "Keywords":"password", "FieldName":"ServerPassword", "InputType":"password", @@ -82,26 +133,26 @@ "ParamFieldName":"ServerSettings.AdminPassword", "IncludeInCommandLine":false, "DefaultValue":"Password123", - "Required":true, + "Required": true, "EnumValues":{} }, { "DisplayName":"RCON Password", "Category":"Server Settings", - "Description":"Password to connect to RCON. NOTE: You should change this after first installing the server", + "Description":"Password to connect to RCON.", "Keywords":"rcon,password", "FieldName":"$RemoteAdminPassword", "InputType":"RandomPassword", "IsFlagArgument":false, "ParamFieldName":"RconPassword", "IncludeInCommandLine":false, - "DefaultValue":"Password123", - "EnumValues":{} + "EnumValues":{}, + "Hidden": true }, { "DisplayName":"Server Region", "Category":"Server Settings", - "Description":"Sets the server region, which affects how the server is filtered in the server list", + "Description":"Sets the server region, which affects how the server is filtered in the server list.", "Keywords":"region", "FieldName":"serverRegion", "InputType":"enum", @@ -121,7 +172,7 @@ { "DisplayName":"Enable BattlEye", "Category":"Server Settings", - "Description":"If enabled, BattlEye cheat protection will apply to the server", + "Description":"If enabled, BattlEye cheat protection will apply to the server.", "Keywords":"battleye,cheats", "FieldName":"IsBattlEyeEnabled", "InputType":"checkbox", @@ -135,7 +186,7 @@ } }, { - "DisplayName":"Enable Valve Anti-cheat (Steam VAC)", + "DisplayName":"Enable Valve Anti-cheat (Steam VAC).", "Category":"Server Settings", "Description":"", "Keywords":"VAC,cheat", diff --git a/conan-exilesmetaconfig.json b/conan-exilesmetaconfig.json index b671c20..09893f1 100644 --- a/conan-exilesmetaconfig.json +++ b/conan-exilesmetaconfig.json @@ -4,5 +4,15 @@ "AutoMap": true, "ConfigType": "ini", "ConfigFormatRegex": "^(?.+?)=(?.*?)$" + },{ + "ConfigFile": "ConanSandbox/Saved/Config/WindowsServer/Game.ini", + "AutoMap": true, + "ConfigType": "ini", + "ConfigFormatRegex": "^(?.+?)=(?.*?)$" + },{ + "ConfigFile": "ConanSandbox/Saved/Config/WindowsServer/Engine.ini", + "AutoMap": true, + "ConfigType": "ini", + "ConfigFormatRegex": "^(?.+?)=(?.*?)$" } ] \ No newline at end of file From 1f60660332a9b0bb03bac6f9f23aa7fbce4142c8 Mon Sep 17 00:00:00 2001 From: James Manker Date: Sat, 7 May 2022 17:26:45 -0500 Subject: [PATCH 11/22] Update Conan Config Further changes requested. --- conan-exiles.kvp | 2 +- conan-exilesconfig.json | 13 ------------- 2 files changed, 1 insertion(+), 14 deletions(-) diff --git a/conan-exiles.kvp b/conan-exiles.kvp index 86b5b11..cf7ef1e 100644 --- a/conan-exiles.kvp +++ b/conan-exiles.kvp @@ -43,7 +43,7 @@ App.ApplicationPort3=27015 App.RemoteAdminPort=25575 App.MaxUsers=40 App.UseRandomAdminPassword=True -App.RemoteAdminPassword=eb556e2744554cb8a161246ef8a82b8e +App.RemoteAdminPassword= App.AdminMethod=SourceRCON App.AdminLoginTransform=None App.RCONConnectDelaySeconds=5 diff --git a/conan-exilesconfig.json b/conan-exilesconfig.json index 7f399ad..f76eed8 100644 --- a/conan-exilesconfig.json +++ b/conan-exilesconfig.json @@ -136,19 +136,6 @@ "Required": true, "EnumValues":{} }, - { - "DisplayName":"RCON Password", - "Category":"Server Settings", - "Description":"Password to connect to RCON.", - "Keywords":"rcon,password", - "FieldName":"$RemoteAdminPassword", - "InputType":"RandomPassword", - "IsFlagArgument":false, - "ParamFieldName":"RconPassword", - "IncludeInCommandLine":false, - "EnumValues":{}, - "Hidden": true - }, { "DisplayName":"Server Region", "Category":"Server Settings", From ad5348bd561bfe1ff921751b5c2664e18fba64e3 Mon Sep 17 00:00:00 2001 From: James Manker Date: Sat, 7 May 2022 17:30:16 -0500 Subject: [PATCH 12/22] Update Conan Config Manifest Correct the RCON password setting. --- conan-exilesconfig.json | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/conan-exilesconfig.json b/conan-exilesconfig.json index f76eed8..f0fbf69 100644 --- a/conan-exilesconfig.json +++ b/conan-exilesconfig.json @@ -136,6 +136,19 @@ "Required": true, "EnumValues":{} }, + { + "DisplayName":"RCON Password", + "Category":"Server Settings", + "Description":"Password to connect to RCON.", + "Keywords":"rcon,password", + "FieldName":"$RemoteAdminPassword", + "InputType":"password", + "IsFlagArgument":false, + "ParamFieldName":"RconPlugin.RconPassword", + "IncludeInCommandLine":false, + "EnumValues":{}, + "Hidden": true + }, { "DisplayName":"Server Region", "Category":"Server Settings", From d102dc3acd83a4ff9387d89c90c869d5666f0729 Mon Sep 17 00:00:00 2001 From: PhonicUK Date: Mon, 23 May 2022 17:33:04 +0100 Subject: [PATCH 13/22] Update v-risingconfig.json Add suffixes and placeholders. --- v-risingconfig.json | 530 ++++++++++++++++++++++---------------------- 1 file changed, 268 insertions(+), 262 deletions(-) diff --git a/v-risingconfig.json b/v-risingconfig.json index 7a4d6bf..61d21ea 100644 --- a/v-risingconfig.json +++ b/v-risingconfig.json @@ -1,264 +1,270 @@ [ - { - "DisplayName":"Server Name", - "Category":"Host Settings", - "Description":"Whatever you want to name your server as", - "Keywords":"Server, name", - "FieldName":"Name", - "InputType":"text", - "IsFlagArgument":false, - "ParamFieldName":"Name", - "IncludeInCommandLine":false, - "DefaultValue": "AMP V Rising Server", - "EnumValues":{} - }, - { - "DisplayName":"Description", - "Category":"Host Settings", - "Description":"Short description of server purpose, rules, message of the day", - "Keywords":"Server, description", - "FieldName":"Description", - "InputType":"text", - "IsFlagArgument":false, - "ParamFieldName":"Description", - "IncludeInCommandLine":false, - "DefaultValue": "AMP V Rising Server", - "EnumValues":{} - }, - { - "DisplayName":"Port", - "Category":"Host Settings", - "Description":"UDP port for game traffic", - "Keywords":"game,port", - "FieldName":"$ApplicationPort1", - "InputType":"number", - "IsFlagArgument":false, - "ParamFieldName":"Port", - "IncludeInCommandLine":false, - "DefaultValue":"", - "EnumValues":{}, - "Hidden": true - }, - { - "DisplayName":"Query Port", - "Category":"Host Settings", - "Description":"UDP port for Steam server list features", - "Keywords":"query,port", - "FieldName":"$ApplicationPort2", - "InputType":"number", - "IsFlagArgument":false, - "ParamFieldName":"QueryPort", - "IncludeInCommandLine":false, - "DefaultValue":"", - "EnumValues":{}, - "Hidden": true - }, - { - "DisplayName":"Max Connected Users", - "Category":"Host Settings", - "Description":"Max number of concurrent players on server", - "Keywords":"max, users", - "FieldName":"$MaxUsers", - "InputType":"number", - "DefaultValue": "40", - "IsFlagArgument":false, - "ParamFieldName":"MaxConnectedUsers", - "IncludeInCommandLine":false - }, - { - "DisplayName":"Max Connected Admins", - "Category":"Host Settings", - "Description":"Max number of admins to allow connect even when server is full", - "Keywords":"max, admins", - "FieldName":"MaxConnectedAdmins", - "InputType":"number", - "IsFlagArgument":false, - "ParamFieldName":"MaxConnectedAdmins", - "DefaultValue":"4", - "IncludeInCommandLine":false - }, - { - "DisplayName":"Clan Size", - "Category":"Game Settings", - "Description":"Maximum amount of players per Clan", - "Keywords":"clan, Size", - "FieldName":"ClanSize", - "InputType":"number", - "IsFlagArgument":false, - "ParamFieldName":"ClanSize", - "DefaultValue":"4", - "IncludeInCommandLine":false - }, - { - "DisplayName":"Server FPS", - "Category":"Host Settings", - "Description":"Maximum Server FPS when idle", - "Keywords":"server, fps", - "FieldName":"ServerFps", - "InputType":"number", - "IsFlagArgument":false, - "ParamFieldName":"ServerFps", - "DefaultValue":"30", - "IncludeInCommandLine":false - }, - { - "DisplayName":"Save Name", - "Category":"Host Settings", - "Description":"Name of save file/directory", - "Keywords":"save, name", - "FieldName":"SaveName", - "InputType":"text", - "IsFlagArgument":false, - "ParamFieldName":"SaveName", - "DefaultValue":"world1", - "IncludeInCommandLine":false - }, - { - "DisplayName":"Password", - "Category":"Host Settings", - "Description":"Set a password or leave empty", - "Keywords":"server, password", - "FieldName":"Password", - "DefaultValue": "", - "InputType":"password", - "IsFlagArgument":false, - "ParamFieldName":"Password", - "IncludeInCommandLine":false - }, - { - "DisplayName":"VAC Secure", - "Category":"Host Settings", - "Description":"Choose if you want your server to use VAC or not.", - "Keywords":"server, secure", - "FieldName":"Secure", - "InputType":"checkbox", - "IsFlagArgument":false, - "ParamFieldName":"Secure", - "IncludeInCommandLine":false, - "DefaultValue":"true", - "EnumValues":{ - "True": "true", - "False": "false" - } - }, - { - "DisplayName":"List on Master Server", - "Category":"Host Settings", - "Description":"Set to true to list on server list, else set to false", - "Keywords":"master,server", - "FieldName":"ListOnMasterServer", - "InputType":"checkbox", - "IsFlagArgument":false, - "ParamFieldName":"ListOnMasterServer", - "IncludeInCommandLine":false, - "DefaultValue":"true", - "EnumValues":{ - "True": "true", - "False": "false" - } - }, - { - "DisplayName":"Auto Save Count", - "Category":"Host Settings", - "Description":"Number of autosaves to keep", - "Keywords":"autosave, interval", - "FieldName":"AutoSaveCount", - "InputType":"number", - "IsFlagArgument":false, - "ParamFieldName":"AutoSaveCount", - "IncludeInCommandLine":false, - "DefaultValue":"25", - "EnumValues":{} - }, - { - "DisplayName":"Auto Save Interval", - "Category":"Host Settings", - "Description":"Interval in seconds between each auto save", - "Keywords":"AutoSave, interval", - "FieldName":"AutoSaveInterval", - "InputType":"number", - "IsFlagArgument":false, - "ParamFieldName":"AutoSaveInterval", - "IncludeInCommandLine":false, - "DefaultValue":"120", - "EnumValues":{} - }, - { - "DisplayName":"Game Mode Type", - "Category":"Game Settings", - "Description":"Set Game Mode Type as PVE or PVP.", - "Keywords":"Game, Mode, Type", - "FieldName":"GameModeType", - "InputType":"enum", - "IsFlagArgument":false, - "ParamFieldName":"GameModeType", - "IncludeInCommandLine":false, - "DefaultValue":"PvP", - "EnumValues":{ - "PvE": "PvE", - "PvP": "PvP" - } - }, - { - "DisplayName":"Game Settings Ruleset", - "Category":"Host Settings", - "Description":"Change Game Mode Ruleset. Must Match Game Mode Type", - "Keywords":"Game, Ruleset", - "FieldName":"GameSettingsPreset", - "InputType":"enum", - "IsFlagArgument":false, - "ParamFieldName":"GameSettingsPreset", - "IncludeInCommandLine":false, - "DefaultValue":"", - "EnumValues":{ - "DuoPvP": "Duo PvP", - "HardcorePvP": "Full Loot PvP Rules", - "Level30PvP": "PvP Dawn - Level 30", - "Level50PvP": "PvP Noon - Level 50", - "Level70PvP": "PvP Dusk - Level 50", - "SoloPvP": "Solo PvP", - "StandardPvP": "Standard PvP Rules", - "StandardPvP_Easy": "Standard PvP Easy", - "StandardPvP_Hard": "Standard PvP Hard", - "Level30PvE": "PvE Dawn - Level 30", - "Level50PvE": "PvE Noon - Level 50", - "Level70PvE": "PvE Dusk - Level 50", - "StandardPvE": "Standard PvE Rules", - "StandardPvE_Easy": "Standard PvE Easy", - "StandardPvE_Hard": "Standard PvE Hard", - "": "Custom" - } - }, - { - "DisplayName":"Admin Only Debug Events", - "Category":"Host Settings", - "Description":"Show debug events only to admins", - "Keywords":"admin, debug, events", - "FieldName":"AdminOnlyDebugEvents", - "InputType":"checkbox", - "IsFlagArgument":false, - "ParamFieldName":"AdminOnlyDebugEvents", - "IncludeInCommandLine":false, - "DefaultValue":"true", - "EnumValues":{ - "True": "true", - "False": "false" - } - }, - { - "DisplayName":"Disable Debug Events", - "Category":"Host Settings", - "Description":"Disable Debug Events from appearing at all", - "Keywords":"disable, debug, events", - "FieldName":"DisableDebugEvents", - "InputType":"checkbox", - "IsFlagArgument":false, - "ParamFieldName":"DisableDebugEvents", - "IncludeInCommandLine":false, - "DefaultValue": "false", - "EnumValues":{ - "True": "true", - "False": "false" - } + { + "DisplayName": "Server Name", + "Category": "Host Settings", + "Description": "Whatever you want to name your server as", + "Keywords": "Server, name", + "FieldName": "Name", + "InputType": "text", + "IsFlagArgument": false, + "ParamFieldName": "Name", + "IncludeInCommandLine": false, + "DefaultValue": "AMP V Rising Server", + "EnumValues": {} + }, + { + "DisplayName": "Description", + "Category": "Host Settings", + "Description": "Short description of server purpose, rules, message of the day", + "Keywords": "Server, description", + "FieldName": "Description", + "InputType": "text", + "IsFlagArgument": false, + "ParamFieldName": "Description", + "IncludeInCommandLine": false, + "DefaultValue": "AMP V Rising Server", + "Placeholder": "My V Rising Server" + }, + { + "DisplayName": "Port", + "Category": "Host Settings", + "Description": "UDP port for game traffic", + "Keywords": "game,port", + "FieldName": "$ApplicationPort1", + "InputType": "number", + "IsFlagArgument": false, + "ParamFieldName": "Port", + "IncludeInCommandLine": false, + "DefaultValue": "", + "EnumValues": {}, + "Hidden": true + }, + { + "DisplayName": "Query Port", + "Category": "Host Settings", + "Description": "UDP port for Steam server list features", + "Keywords": "query,port", + "FieldName": "$ApplicationPort2", + "InputType": "number", + "IsFlagArgument": false, + "ParamFieldName": "QueryPort", + "IncludeInCommandLine": false, + "DefaultValue": "", + "EnumValues": {}, + "Hidden": true + }, + { + "DisplayName": "Max Connected Users", + "Category": "Host Settings", + "Description": "Max number of concurrent players on server", + "Keywords": "max, users", + "FieldName": "$MaxUsers", + "InputType": "number", + "DefaultValue": "40", + "IsFlagArgument": false, + "ParamFieldName": "MaxConnectedUsers", + "IncludeInCommandLine": false, + "Suffix": "players" + }, + { + "DisplayName": "Max Connected Admins", + "Category": "Host Settings", + "Description": "Max number of admins to allow connect even when server is full", + "Keywords": "max, admins", + "FieldName": "MaxConnectedAdmins", + "InputType": "number", + "IsFlagArgument": false, + "ParamFieldName": "MaxConnectedAdmins", + "DefaultValue": "4", + "IncludeInCommandLine": false, + "Suffix": "players" + }, + { + "DisplayName": "Clan Size", + "Category": "Game Settings", + "Description": "Maximum amount of players per Clan", + "Keywords": "clan, Size", + "FieldName": "ClanSize", + "InputType": "number", + "IsFlagArgument": false, + "ParamFieldName": "ClanSize", + "DefaultValue": "4", + "IncludeInCommandLine": false, + "Suffix": "players" + }, + { + "DisplayName": "Server FPS", + "Category": "Host Settings", + "Description": "Maximum Server FPS when idle", + "Keywords": "server, fps", + "FieldName": "ServerFps", + "InputType": "number", + "IsFlagArgument": false, + "ParamFieldName": "ServerFps", + "DefaultValue": "30", + "IncludeInCommandLine": false, + "Suffix": "FPS" + }, + { + "DisplayName": "Save Name", + "Category": "Host Settings", + "Description": "Name of save file/directory", + "Keywords": "save, name", + "FieldName": "SaveName", + "InputType": "text", + "IsFlagArgument": false, + "ParamFieldName": "SaveName", + "DefaultValue": "world1", + "IncludeInCommandLine": false + }, + { + "DisplayName": "Password", + "Category": "Host Settings", + "Description": "Set a password or leave empty", + "Keywords": "server, password", + "FieldName": "Password", + "DefaultValue": "", + "InputType": "password", + "IsFlagArgument": false, + "ParamFieldName": "Password", + "IncludeInCommandLine": false + }, + { + "DisplayName": "VAC Secure", + "Category": "Host Settings", + "Description": "Choose if you want your server to use VAC or not.", + "Keywords": "server, secure", + "FieldName": "Secure", + "InputType": "checkbox", + "IsFlagArgument": false, + "ParamFieldName": "Secure", + "IncludeInCommandLine": false, + "DefaultValue": "true", + "EnumValues": { + "True": "true", + "False": "false" } -] + }, + { + "DisplayName": "List on Master Server", + "Category": "Host Settings", + "Description": "Set to true to list on server list, else set to false", + "Keywords": "master,server", + "FieldName": "ListOnMasterServer", + "InputType": "checkbox", + "IsFlagArgument": false, + "ParamFieldName": "ListOnMasterServer", + "IncludeInCommandLine": false, + "DefaultValue": "true", + "EnumValues": { + "True": "true", + "False": "false" + } + }, + { + "DisplayName": "Auto Save Count", + "Category": "Host Settings", + "Description": "Number of autosaves to keep", + "Keywords": "autosave, interval", + "FieldName": "AutoSaveCount", + "InputType": "number", + "IsFlagArgument": false, + "ParamFieldName": "AutoSaveCount", + "IncludeInCommandLine": false, + "DefaultValue": "25", + "EnumValues": {}, + "Suffix": "saves" + }, + { + "DisplayName": "Auto Save Interval", + "Category": "Host Settings", + "Description": "Interval in seconds between each auto save", + "Keywords": "AutoSave, interval", + "FieldName": "AutoSaveInterval", + "InputType": "number", + "IsFlagArgument": false, + "ParamFieldName": "AutoSaveInterval", + "IncludeInCommandLine": false, + "DefaultValue": "120", + "EnumValues": {}, + "Suffix": "seconds" + }, + { + "DisplayName": "Game Mode Type", + "Category": "Game Settings", + "Description": "Set Game Mode Type as PVE or PVP.", + "Keywords": "Game, Mode, Type", + "FieldName": "GameModeType", + "InputType": "enum", + "IsFlagArgument": false, + "ParamFieldName": "GameModeType", + "IncludeInCommandLine": false, + "DefaultValue": "PvP", + "EnumValues": { + "PvE": "PvE", + "PvP": "PvP" + } + }, + { + "DisplayName": "Game Settings Ruleset", + "Category": "Host Settings", + "Description": "Change Game Mode Ruleset. Must Match Game Mode Type", + "Keywords": "Game, Ruleset", + "FieldName": "GameSettingsPreset", + "InputType": "enum", + "IsFlagArgument": false, + "ParamFieldName": "GameSettingsPreset", + "IncludeInCommandLine": false, + "DefaultValue": "", + "EnumValues": { + "DuoPvP": "Duo PvP", + "HardcorePvP": "Full Loot PvP Rules", + "Level30PvP": "PvP Dawn - Level 30", + "Level50PvP": "PvP Noon - Level 50", + "Level70PvP": "PvP Dusk - Level 50", + "SoloPvP": "Solo PvP", + "StandardPvP": "Standard PvP Rules", + "StandardPvP_Easy": "Standard PvP Easy", + "StandardPvP_Hard": "Standard PvP Hard", + "Level30PvE": "PvE Dawn - Level 30", + "Level50PvE": "PvE Noon - Level 50", + "Level70PvE": "PvE Dusk - Level 50", + "StandardPvE": "Standard PvE Rules", + "StandardPvE_Easy": "Standard PvE Easy", + "StandardPvE_Hard": "Standard PvE Hard", + "": "Custom" + } + }, + { + "DisplayName": "Admin Only Debug Events", + "Category": "Host Settings", + "Description": "Show debug events only to admins", + "Keywords": "admin, debug, events", + "FieldName": "AdminOnlyDebugEvents", + "InputType": "checkbox", + "IsFlagArgument": false, + "ParamFieldName": "AdminOnlyDebugEvents", + "IncludeInCommandLine": false, + "DefaultValue": "true", + "EnumValues": { + "True": "true", + "False": "false" + } + }, + { + "DisplayName": "Disable Debug Events", + "Category": "Host Settings", + "Description": "Disable Debug Events from appearing at all", + "Keywords": "disable, debug, events", + "FieldName": "DisableDebugEvents", + "InputType": "checkbox", + "IsFlagArgument": false, + "ParamFieldName": "DisableDebugEvents", + "IncludeInCommandLine": false, + "DefaultValue": "false", + "EnumValues": { + "True": "true", + "False": "false" + } + } +] From 6df739379fec71e18a4f4e56357342b0c5cd4416 Mon Sep 17 00:00:00 2001 From: Tempus Thales Date: Wed, 25 May 2022 16:39:13 -0500 Subject: [PATCH 14/22] Update v-risingconfig.json Added controls for adding admin users to v-rising server, by entering their SteamID64. The same change adds people you want to ban from the server. --- v-risingconfig.json | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/v-risingconfig.json b/v-risingconfig.json index 7a4d6bf..97194b3 100644 --- a/v-risingconfig.json +++ b/v-risingconfig.json @@ -89,6 +89,22 @@ "DefaultValue":"4", "IncludeInCommandLine":false }, + { + "DisplayName": "Admin List", + "Description": "A list of Steam64 IDs for players that are in-game admins. [Find your Steam64 ID](https://steamid.io/lookup/)", + "FieldName": "AdminList", + "Category": "Game Settings", + "InputType": "list", + "Special": "listfile:./v-rising/1829350/VRisingServer_Data/StreamingAssets/Settings/adminlist.txt" + }, + { + "DisplayName": "Banned List", + "Description": "A list of Steam64 IDs for players that are banned [Find a Steam64 ID](https://steamid.io/lookup/)", + "FieldName": "BanList", + "Category": "Game Settings", + "InputType": "list", + "Special": "listfile:./v-rising/1829350/VRisingServer_Data/StreamingAssets/Settings/bannedlist.txt" + }, { "DisplayName":"Server FPS", "Category":"Host Settings", From ed34adccfe18c664e7b562cf96877071e9b9945d Mon Sep 17 00:00:00 2001 From: Greelan <53196309+Greelan@users.noreply.github.com> Date: Sat, 28 May 2022 09:01:02 +1000 Subject: [PATCH 15/22] Add Hurtworld (#114) * Initial commit * Initial commit * Final updates Remove structurecomplexitylimit and spawncooldown settings as they throw errors. No idea why Remove enablesharedenvironment (deprecated setting) Update for new ports system --- hurtworld.kvp | 59 ++++++ hurtworldconfig.json | 381 +++++++++++++++++++++++++++++++++++++++ hurtworldmetaconfig.json | 9 + 3 files changed, 449 insertions(+) create mode 100644 hurtworld.kvp create mode 100755 hurtworldconfig.json create mode 100644 hurtworldmetaconfig.json diff --git a/hurtworld.kvp b/hurtworld.kvp new file mode 100644 index 0000000..2cce111 --- /dev/null +++ b/hurtworld.kvp @@ -0,0 +1,59 @@ +Meta.DisplayName=Hurtworld +Meta.Description=Hurtworld Dedicated Server +Meta.OS=Windows, Linux +Meta.Author=Greelan +Meta.URL=http://hurtworld.com +Meta.DisplayImageSource=steam:405100 +Meta.EndpointURIFormat=steam://connect/{ip}:{GenericModule.App.Ports.$QueryPort} +Meta.ConfigManifest=hurtworldconfig.json +Meta.MetaConfigManifest=hurtworldmetaconfig.json +Meta.ConfigRoot=hurtworld.kvp +Meta.MinAMPVersion=2.3.3 +Meta.SpecificDockerImage= +Meta.Prerequsites=[] +App.DisplayName=Hurtworld +App.RootDir=./hurtworld/ +App.BaseDirectory=./hurtworld/405100/ +App.ExecutableWin=405100\Hurtworld.exe +App.ExecutableLinux=405100/Hurtworld.x86_64 +App.WorkingDir=405100 +App.LinuxCommandLineArgs= +App.WindowsCommandLineArgs= +App.CommandLineArgs={{$PlatformArgs}} -batchmode -nographics -exec "host {{$GamePort}} {{map}};queryport {{$QueryPort}};{{$FormattedArgs}}" -logfile "serverlog.txt" +App.AppSettings={} +App.EnvironmentVariables={"LD_LIBRARY_PATH":"{{$FullBaseDir}}linux64:%LD_LIBRARY_PATH%","SteamAppId":"393420"} +App.CommandLineParameterFormat={0} {1} +App.CommandLineParameterDelimiter=; +App.ExitMethod=OS_CLOSE +App.ExitTimeout=30 +App.ExitString=quit +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.Ports=[{"Protocol":"Both","Name":"Game Port","Description":"Port for game traffic","Port":12871,"Ref":"GamePort"},{"Protocol":"Both","Name":"Query Port","Description":"Port for server query traffic","Port":12881,"Ref":"QueryPort"}] +App.PrimaryApplicationPortRef=GamePort +App.MaxUsers=20 +App.UseRandomAdminPassword=False +App.RemoteAdminPassword=Password123 +App.AdminMethod=STDIO +App.UpdateSources=[{"UpdateStageName":"SteamCMD Download","UpdateSourcePlatform":"All","UpdateSource":"SteamCMD","UpdateSourceData":"405100"},{"UpdateStageName":"uMod Windows","UpdateSourcePlatform":"Windows","UpdateSource":"FetchURLFromJQ","UpdateSourceData":"https://api.github.com/repos/OxideMod/Oxide.Hurtworld/releases/latest","UpdateSourceArgs":"$.assets[1].browser_download_url","UpdateSourceTarget":"{{$FullBaseDir}}","UnzipUpdateSource":true,"OverwriteExistingFiles":true,"UpdateSourceConditionSetting":"uMod","UpdateSourceConditionValue":"true","DeleteAfterExtract":true},{"UpdateStageName":"uMod Linux","UpdateSourcePlatform":"Linux","UpdateSource":"FetchURLFromJQ","UpdateSourceData":"https://api.github.com/repos/OxideMod/Oxide.Hurtworld/releases/latest","UpdateSourceArgs":"$.assets[0].browser_download_url","UpdateSourceTarget":"{{$FullBaseDir}}","UnzipUpdateSource":true,"OverwriteExistingFiles":true,"UpdateSourceConditionSetting":"uMod","UpdateSourceConditionValue":"true","DeleteAfterExtract":true}] +App.Compatibility=None +App.SteamUpdateAnonymousLogin=True +App.SteamForceLoginPrompt=False +App.RapidStartup=False +App.ApplicationReadyMode=Immediate +App.TemplateMatchRegex={{(\$?[\w]+)}} +Console.FilterMatchRegex= +Console.FilterMatchReplacement= +Console.ThrowawayMessageRegex=^(WARNING|ERROR): Shader.+$ +Console.AppReadyRegex= +Console.UserJoinRegex= +Console.UserLeaveRegex= +Console.UserChatRegex= +Console.UpdateAvailableRegex= +Console.SuppressLogAtStart=False +Console.ActivateLogRegex= +Console.UserActions={} diff --git a/hurtworldconfig.json b/hurtworldconfig.json new file mode 100755 index 0000000..664e3f6 --- /dev/null +++ b/hurtworldconfig.json @@ -0,0 +1,381 @@ +[ + { + "DisplayName":"Game Port", + "Category":"Server Settings", + "Description":"", + "Keywords":"", + "FieldName":"$GamePort", + "InputType":"number", + "IsFlagArgument":false, + "Hidden":true, + "ParamFieldName":"host", + "IncludeInCommandLine":false, + "DefaultValue":"12871", + "EnumValues":{} + },{ + "DisplayName":"Query Port", + "Category":"Server Settings", + "Description":"", + "Keywords":"", + "FieldName":"$QueryPort", + "InputType":"number", + "IsFlagArgument":false, + "Hidden":true, + "ParamFieldName":"queryport", + "IncludeInCommandLine":false, + "DefaultValue":"12881", + "EnumValues":{} + },{ + "DisplayName":"Server Name", + "Category":"Server Settings", + "Description":"Server name as shown in the server browser", + "Keywords":"name", + "FieldName":"servername", + "InputType":"text", + "IsFlagArgument":false, + "ParamFieldName":"servername", + "IncludeInCommandLine":true, + "SkipIfEmpty":true, + "DefaultValue":"My Hurtworld Server", + "EnumValues":{} + },{ + "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, + "SkipIfEmpty":true, + "DefaultValue":"20", + "Suffix":"players", + "EnumValues":{} + },{ + "DisplayName":"Map", + "Category":"Server Settings", + "Description":"Sets the map to load on the server", + "Keywords":"map", + "FieldName":"map", + "InputType":"text", + "IsFlagArgument":false, + "ParamFieldName":"map", + "IncludeInCommandLine":false, + "DefaultValue":"nullius", + "Placeholder":"nullius", + "EnumValues":{} + },{ + "DisplayName":"Enable Creative Mode", + "Category":"Server Settings", + "Description":"If enabled, creative mode will apply (free build)", + "Keywords":"creative,mode", + "FieldName":"creativemode", + "InputType":"checkbox", + "IsFlagArgument":false, + "ParamFieldName":"creativemode", + "IncludeInCommandLine":true, + "DefaultValue":"0", + "EnumValues":{ + "False":"0", + "True":"1" + } + },{ + "DisplayName":"Add Admin", + "Category":"Server Settings", + "Description":"Steam64 ID of server admin. [Find Steam64 IDs](https://steamidfinder.com/)", + "Keywords":"admin", + "FieldName":"addadmin", + "InputType":"number", + "IsFlagArgument":false, + "ParamFieldName":"addadmin", + "IncludeInCommandLine":true, + "SkipIfEmpty":true, + "DefaultValue":"", + "Placeholder":"58673958674589375", + "EnumValues":{} + },{ + "DisplayName":"Install uMod", + "Category":"Server Settings", + "Description":"If enabled, auto-installs uMod when the server is updated", + "Keywords":"install,umod", + "FieldName":"uMod", + "InputType":"checkbox", + "IsFlagArgument":false, + "ParamFieldName":"uMod", + "IncludeInCommandLine":false, + "DefaultValue":"false", + "EnumValues":{ + "False":"false", + "True":"true" + } + },{ + "DisplayName":"Load Steam Workshop Mods", + "Category":"Server Settings", + "Description":"Space-separated list of Steam Workshop mod IDs to load on the server", + "Keywords":"mods", + "FieldName":"loadmod", + "InputType":"text", + "IsFlagArgument":false, + "ParamFieldName":"loadmod", + "IncludeInCommandLine":true, + "SkipIfEmpty":true, + "DefaultValue":"", + "Placeholder":"714026119 704019543", + "EnumValues":{} + },{ + "DisplayName":"Enable Autowipe", + "Category":"Server Settings", + "Description":"If enabled, server wipe will be enabled", + "Keywords":"autowipe,wipe", + "FieldName":"autowipe", + "InputType":"checkbox", + "IsFlagArgument":false, + "ParamFieldName":"autowipe", + "IncludeInCommandLine":true, + "DefaultValue":"1", + "EnumValues":{ + "False":"0", + "True":"1" + } + },{ + "DisplayName":"Wipe Interval", + "Category":"Server Settings", + "Description":"Sets the server wipe schedule, as shown in the server browser. A negative number will show no wipe. Needs wipe enabled to work", + "Keywords":"wipe,interval,schedule", + "FieldName":"wipeinterval", + "InputType":"number", + "IsFlagArgument":false, + "ParamFieldName":"wipeinterval", + "IncludeInCommandLine":true, + "SkipIfEmpty":true, + "DefaultValue":"1209600", + "Suffix":"seconds", + "Placeholder":"1209600", + "EnumValues":{} + },{ + "DisplayName":"Player Loot Mode", + "Category":"Server Settings", + "Description":"Sets the player loot mode. Note: Alternate loot modes are experimental and may not work properly", + "Keywords":"player,loot", + "FieldName":"playerlootmode", + "InputType":"enum", + "IsFlagArgument":false, + "ParamFieldName":"playerlootmode", + "IncludeInCommandLine":true, + "SkipIfEmpty":true, + "DefaultValue":"", + "EnumValues":{ + "":"Drop everything (default)", + "1":"Drop backpack contents only", + "2":"Drop backpack and one random item", + "3":"Drop backpack and two random items", + "4":"Drop backpack and three random items", + "5":"Drop nothing", + "6":"Destroy everything" + } + },{ + "DisplayName":"Enable Autosave", + "Category":"Server Settings", + "Description":"If enabled, server will be autosaved", + "Keywords":"autosave", + "FieldName":"autosaveenabled", + "InputType":"checkbox", + "IsFlagArgument":false, + "ParamFieldName":"autosaveenabled", + "IncludeInCommandLine":true, + "DefaultValue":"1", + "EnumValues":{ + "False":"0", + "True":"1" + } + },{ + "DisplayName":"Auto Backup Interval", + "Category":"Server Settings", + "Description":"Sets how often the autosave should be backed up. Specify -1 to disable backup", + "Keywords":"backup,interval", + "FieldName":"autobackupinterval", + "InputType":"number", + "IsFlagArgument":false, + "ParamFieldName":"autobackupinterval", + "IncludeInCommandLine":true, + "SkipIfEmpty":true, + "DefaultValue":"7200", + "Suffix":"seconds", + "Placeholder":"7200", + "EnumValues":{} + },{ + "DisplayName":"Enable Structure Decay", + "Category":"Server Settings", + "Description":"If enabled, structures will decay", + "Keywords":"structure,decay", + "FieldName":"structuredecayenabled", + "InputType":"checkbox", + "IsFlagArgument":false, + "ParamFieldName":"structuredecayenabled", + "IncludeInCommandLine":true, + "DefaultValue":"1", + "EnumValues":{ + "False":"0", + "True":"1" + } + },{ + "DisplayName":"Structure Decay Frequency", + "Category":"Server Settings", + "Description":"Sets how often a structure will be damaged by decay. Low values may have a performance impact", + "Keywords":"structure,decay,frequency", + "FieldName":"structuredecayfrequency", + "InputType":"number", + "IsFlagArgument":false, + "ParamFieldName":"structuredecayfrequency", + "IncludeInCommandLine":true, + "SkipIfEmpty":true, + "DefaultValue":"600", + "Placeholder":"600", + "EnumValues":{} + },{ + "DisplayName":"Structure Decay Damage", + "Category":"Server Settings", + "Description":"Sets how much damage occurs when a structure decays. Specify one value for a set damage amount, or specify two values for a range", + "Keywords":"structure,decay,damage", + "FieldName":"structuredecaydamage", + "InputType":"text", + "IsFlagArgument":false, + "ParamFieldName":"structuredecaydamage", + "IncludeInCommandLine":true, + "SkipIfEmpty":true, + "DefaultValue":"5 10", + "Placeholder":"5 10", + "EnumValues":{} + },{ + "DisplayName":"Structure Decay Start Time", + "Category":"Server Settings", + "Description":"Sets how long a structure must be both unclaimed and unmodified, before it begins to decay", + "Keywords":"structure,decay,modify,time", + "FieldName":"structuredecaymodifytime", + "InputType":"number", + "IsFlagArgument":false, + "ParamFieldName":"structuredecaymodifytime", + "IncludeInCommandLine":true, + "SkipIfEmpty":true, + "DefaultValue":"86400", + "Placeholder":"86400", + "EnumValues":{} + },{ + "DisplayName":"Display Connection/Disconnection Messages", + "Category":"Server Settings", + "Description":"If enabled, connection and disconnection messages will be displayed", + "Keywords":"connection,disconnection,message", + "FieldName":"chatconnectionmessagesenabled", + "InputType":"checkbox", + "IsFlagArgument":false, + "ParamFieldName":"chatconnectionmessagesenabled", + "IncludeInCommandLine":true, + "DefaultValue":"0", + "EnumValues":{ + "False":"0", + "True":"1" + } + },{ + "DisplayName":"Display Death Messages", + "Category":"Server Settings", + "Description":"If enabled, death messages will be displayed", + "Keywords":"death,message", + "FieldName":"chatdeathmessagesenabled", + "InputType":"checkbox", + "IsFlagArgument":false, + "ParamFieldName":"chatdeathmessagesenabled", + "IncludeInCommandLine":true, + "DefaultValue":"0", + "EnumValues":{ + "False":"0", + "True":"1" + } + },{ + "DisplayName":"Chat Spam Filter Threshold", + "Category":"Server Settings", + "Description":"Sets the chat spam filter threshold. Lower values mean players will be muted sooner", + "Keywords":"chat,spam,filter", + "FieldName":"chatspambudget", + "InputType":"number", + "IsFlagArgument":false, + "ParamFieldName":"chatspambudget", + "IncludeInCommandLine":true, + "SkipIfEmpty":true, + "DefaultValue":"200", + "Placeholder":"200", + "EnumValues":{} + },{ + "DisplayName":"Spawner Time", + "Category":"Server Settings", + "Description":"Sets how much time spawners can take", + "Keywords":"spawner,time", + "FieldName":"spawnercellupdatesperframe", + "InputType":"number", + "IsFlagArgument":false, + "ParamFieldName":"spawnercellupdatesperframe", + "IncludeInCommandLine":true, + "SkipIfEmpty":true, + "DefaultValue":"20", + "Placeholder":"20", + "EnumValues":{} + },{ + "DisplayName":"Stake Deauthorise Time", + "Category":"Server Settings", + "Description":"Sets the time a full ownership stake will take to deauthorise", + "Keywords":"stake,deauthorise", + "FieldName":"stakedeauthtime", + "InputType":"number", + "IsFlagArgument":false, + "ParamFieldName":"stakedeauthtime", + "IncludeInCommandLine":true, + "SkipIfEmpty":true, + "DefaultValue":"7200", + "Suffix":"seconds", + "Placeholder":"7200", + "EnumValues":{} + },{ + "DisplayName":"Target FPS", + "Category":"Server Settings", + "Description":"Sets the target FPS for the server. Specify -1 for unlimited (not recommended)", + "Keywords":"target,fps", + "FieldName":"targetfps", + "InputType":"number", + "IsFlagArgument":false, + "ParamFieldName":"targetfps", + "IncludeInCommandLine":true, + "SkipIfEmpty":true, + "DefaultValue":"100", + "Placeholder":"100", + "EnumValues":{} + },{ + "DisplayName":"Load Balancer Resources", + "Category":"Server Settings", + "Description":"Sets how many resources the Load Balancer can use per frame", + "Keywords":"load,balancer,resources", + "FieldName":"loadbalancerframebudget", + "InputType":"number", + "IsFlagArgument":false, + "ParamFieldName":"loadbalancerframebudget", + "IncludeInCommandLine":true, + "SkipIfEmpty":true, + "DefaultValue":"100", + "Placeholder":"100", + "EnumValues":{} + },{ + "DisplayName":"Enable Load Balancer Monitoring", + "Category":"Server Settings", + "Description":"If enabled, allows monitoring of the Load Balancer (view using \"dumploadbalancer\" command). Do not leave this enabled, as it has significant overhead", + "Keywords":"monitor,load,balancer", + "FieldName":"monitorloadbalancer", + "InputType":"checkbox", + "IsFlagArgument":false, + "ParamFieldName":"monitorloadbalancer", + "IncludeInCommandLine":true, + "DefaultValue":"0", + "EnumValues":{ + "False":"0", + "True":"1" + } + } +] diff --git a/hurtworldmetaconfig.json b/hurtworldmetaconfig.json new file mode 100644 index 0000000..af8bedd --- /dev/null +++ b/hurtworldmetaconfig.json @@ -0,0 +1,9 @@ +[ + { + "ConfigFile":"autoexec.cfg", + "AutoMap":true, + "ConfigType":"kvp", + "ConfigFormat":"{0} {1}", + "ConfigFormatRegex":"^(?.+?) (?.*?)$" + } +] \ No newline at end of file From 5fdaabfbbb1d8c6a3cadf98510ffc3da42a0fa51 Mon Sep 17 00:00:00 2001 From: Greelan <53196309+Greelan@users.noreply.github.com> Date: Sun, 29 May 2022 14:01:47 +1000 Subject: [PATCH 16/22] Add The Isle (EVRIMA) (#95) --- theisle-evrima.kvp | 75 ++++++++++++++++++ theisle-evrimaconfig.json | 140 ++++++++++++++++++++++++++++++++++ theisle-evrimagame.ini | 18 +++++ theisle-evrimametaconfig.json | 26 +++++++ 4 files changed, 259 insertions(+) create mode 100644 theisle-evrima.kvp create mode 100644 theisle-evrimaconfig.json create mode 100644 theisle-evrimagame.ini create mode 100644 theisle-evrimametaconfig.json diff --git a/theisle-evrima.kvp b/theisle-evrima.kvp new file mode 100644 index 0000000..07a8e0e --- /dev/null +++ b/theisle-evrima.kvp @@ -0,0 +1,75 @@ +Meta.DisplayName=The Isle (EVRIMA) +Meta.Description=The Isle (EVRIMA) Dedicated Server +Meta.OS=Windows, Linux +Meta.Arch=x86_64 +Meta.Author=Greelan +Meta.URL=https://survivetheisle.com/ +Meta.DisplayImageSource=steam:376210 +Meta.EndpointURIFormat=steam://connect/{ip}:{GenericModule.App.Ports.$QueryPort} +Meta.ConfigManifest=theisle-evrimaconfig.json +Meta.MetaConfigManifest=theisle-evrimametaconfig.json +Meta.ConfigRoot=theisle-evrima.kvp +Meta.MinAMPVersion=2.3.3.0 +Meta.SpecificDockerImage= +Meta.ContainerPolicy=Supported +Meta.Prerequsites=[] +Meta.ConfigReleaseState=NotSpecified +App.DisplayName=The Isle (EVRIMA) +App.RootDir=./theisle/ +App.BaseDirectory=./theisle/412680/ +App.ExecutableWin=412680/TheIsle/Binaries/Win64/TheIsleServer-Win64-Shipping.exe +App.ExecutableLinux=412680/TheIsle/Binaries/Linux/TheIsleServer-Linux-Shipping +App.WorkingDir=412680 +App.LinuxCommandLineArgs= +App.WindowsCommandLineArgs= +App.CommandLineArgs={{$PlatformArgs}} -Port={{$GamePort}} -QueryPort={{$QueryPort}} {{$FormattedArgs}} -log +App.AppSettings={} +App.EnvironmentVariables={"LD_LIBRARY_PATH":"{{$FullRootDir}}linux64:%LD_LIBRARY_PATH%","SteamAppId":"376210"} +App.CommandLineParameterFormat=-{0}={1} +App.CommandLineParameterDelimiter= +App.ExitMethod=OS_CLOSE +App.ExitTimeout=30 +App.ExitString=Shutdown +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.Ports=[{"Protocol":"Both","Name":"Game Port","Description":"Port for game traffic","Port":7777,"Ref":"GamePort"},{"Protocol":"Both","Name":"Query Port","Description":"Port for server query traffic","Port":7778,"Ref":"QueryPort"},{"Protocol":"TCP","Name":"RCON Port","Description":"Port for RCON traffic","Port":8888,"Ref":"RCONPort"}] +App.PrimaryApplicationPortRef=GamePort +App.AdminPortRef=RCONPort +App.UniversalSleepApplicationUDPPortRef=GamePort +App.UniversalSleepSteamQueryPortRef=QueryPort +App.MaxUsers=50 +App.UseRandomAdminPassword=False +App.RemoteAdminPassword= +App.AdminMethod=STDIO +App.AdminLoginTransform=None +App.RCONConnectDelaySeconds=5 +App.RCONConnectRetrySeconds=5 +App.UpdateSources=[{"UpdateStageName":"SteamCMD Download","UpdateSourcePlatform":"All","UpdateSource":"SteamCMD","UpdateSourceData":"412680","UpdateSourceVersion":"evrima"},{"UpdateStageName":"Game Config File Download","UpdateSourcePlatform":"All","UpdateSource":"FetchURL","UpdateSourceData":"https://raw.githubusercontent.com/CubeCoders/AMPTemplates/main/theisle-evrimagame.ini","UpdateSourceTarget":"../","OverwriteExistingFiles":true},{"UpdateStageName":"Config Directory Creation","UpdateSourcePlatform":"Windows","UpdateSource":"CreateDirectory","UpdateSourceArgs":"./theisle/412680/TheIsle/Saved/Config/WindowsServer"},{"UpdateStageName":"Config Directory Creation","UpdateSourcePlatform":"Linux","UpdateSource":"CreateDirectory","UpdateSourceArgs":"./theisle/412680/TheIsle/Saved/Config/LinuxServer"},{"UpdateStageName":"Game Config File Copy","UpdateSourcePlatform":"Windows","UpdateSource":"CopyFilePath","UpdateSourceData":"./theisle/412680/TheIsle/Saved/Config/WindowsServer/Game.ini","UpdateSourceArgs":"./theisle-evrimagame.ini","OverwriteExistingFiles":false},{"UpdateStageName":"Game Config File Copy","UpdateSourcePlatform":"Linux","UpdateSource":"CopyFilePath","UpdateSourceData":"./theisle/412680/TheIsle/Saved/Config/LinuxServer/Game.ini","UpdateSourceArgs":"./theisle-evrimagame.ini","OverwriteExistingFiles":false}] +App.Compatibility=None +App.SteamUpdateAnonymousLogin=True +App.SteamForceLoginPrompt=False +App.RapidStartup=False +App.SupportsUniversalSleep=False +App.WakeupMode=Any +App.ApplicationReadyMode=RegexMatch +App.TemplateMatchRegex={{(\$?[\w]+)}} +Console.FilterMatchRegex= +Console.FilterMatchReplacement= +Console.ThrowawayMessageRegex= +Console.AppReadyRegex=^(\[[\d.]*-[\d.]*:\d*\]\[[\d ]*\])?LogInit: Display: Engine is initialized\. Leaving FEngineLoop::Init\(\)$ +Console.UserJoinRegex= +Console.UserLeaveRegex= +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/theisle-evrimaconfig.json b/theisle-evrimaconfig.json new file mode 100644 index 0000000..cd3dbe2 --- /dev/null +++ b/theisle-evrimaconfig.json @@ -0,0 +1,140 @@ +[ + { + "DisplayName":"Server Port", + "Category":"Server Settings", + "Description":"", + "Keywords":"", + "FieldName":"$GamePort", + "InputType":"number", + "Hidden":true, + "IsFlagArgument":false, + "ParamFieldName":"URL.Port", + "IncludeInCommandLine":false, + "EnumValues":{} + }, + { + "DisplayName":"Query Port", + "Category":"Server Settings", + "Description":"", + "Keywords":"", + "FieldName":"$QueryPort", + "InputType":"number", + "Hidden":true, + "IsFlagArgument":false, + "ParamFieldName":"URL.PeerPort", + "IncludeInCommandLine":false, + "EnumValues":{} + }, + { + "DisplayName":"RCON Port", + "Category":"Server Settings", + "Description":"", + "Keywords":"", + "FieldName":"$RCONPort", + "InputType":"number", + "Hidden":true, + "IsFlagArgument":false, + "ParamFieldName":"/Script/Engine.Game.RconPort", + "IncludeInCommandLine":false, + "EnumValues":{} + }, + { + "DisplayName":"Server Name", + "Category":"Server Settings", + "Description":"The name of the server as it appears publicly", + "Keywords":"name", + "FieldName":"ServerName", + "InputType":"text", + "IsFlagArgument":false, + "ParamFieldName":"/Script/TheIsle.TIGameSession.ServerName", + "IncludeInCommandLine":false, + "DefaultValue":"The Isle Server - Powered by AMP", + "EnumValues":{} + }, + { + "DisplayName":"Set MultiHome IP", + "Category":"Server Settings", + "Description":"If needed, set a private or public IP to bind the server to, or 0.0.0.0 for all IPs", + "Keywords":"multihome,ip", + "FieldName":"MultiHome", + "InputType":"text", + "IsFlagArgument":false, + "SkipIfEmpty":true, + "ParamFieldName":"MultiHome", + "IncludeInCommandLine":true, + "DefaultValue":"", + "EnumValues":{} + }, + { + "DisplayName":"Player Limit", + "Category":"Server Settings", + "Description":"Maximum number of players that may connect to the server", + "Keywords":"players,limit", + "FieldName":"$MaxUsers", + "InputType":"number", + "IsFlagArgument":false, + "ParamFieldName":"/Script/TheIsle.TIGameSession.MaxPlayerCount", + "IncludeInCommandLine":false, + "DefaultValue":"50", + "Suffix":"players", + "EnumValues":{} + }, + { + "DisplayName":"Player Limit", + "Category":"Server Settings", + "Description":"", + "Keywords":"", + "FieldName":"$MaxUsers", + "InputType":"number", + "IsFlagArgument":false, + "Hidden":true, + "ParamFieldName":"/Script/Engine.GameSession.MaxPlayers", + "IncludeInCommandLine":false, + "EnumValues":{} + }, + { + "DisplayName":"Enable Global Chat", + "Category":"Server Settings", + "Description":"If enabled, all players will be able to use the global chat channel, not just admins", + "Keywords":"chat,global", + "FieldName":"bEnableGlobalChat", + "InputType":"checkbox", + "IsFlagArgument":false, + "ParamFieldName":"/Script/TheIsle.TIGameSession.bEnableGlobalChat", + "IncludeInCommandLine":false, + "DefaultValue":"true", + "EnumValues":{ + "False":"false", + "True":"true" + } + }, + { + "DisplayName":"Enable RCON", + "Category":"Server Settings", + "Description":"Enables the RCON server", + "Keywords":"rcon,enable", + "FieldName":"RconEnabled", + "InputType":"checkbox", + "IsFlagArgument":false, + "ParamFieldName":"/Script/Engine.Game.RconEnabled", + "IncludeInCommandLine":false, + "DefaultValue":"false", + "EnumValues":{ + "False":"false", + "True":"true" + } + }, + { + "DisplayName":"RCON Password", + "Category":"Server Settings", + "Description":"Password to connect to RCON. NOTE: You should generate a password after enabling RCON", + "Keywords":"rcon,password", + "FieldName":"RconPassword", + "InputType":"RandomPassword", + "IsFlagArgument":false, + "ParamFieldName":"/Script/Engine.Game.RconPassword", + "IncludeInCommandLine":false, + "DefaultValue":"", + "EnumValues":{} + } +] \ No newline at end of file diff --git a/theisle-evrimagame.ini b/theisle-evrimagame.ini new file mode 100644 index 0000000..392a2f2 --- /dev/null +++ b/theisle-evrimagame.ini @@ -0,0 +1,18 @@ +[/Script/TheIsle.TIGameStateBase] +;AdminsSteamIDs= + +[/Script/TheIsle.TIGameSession] +ServerName=The Isle Server - Powered by AMP +MaxPlayerCount=50 +bEnableGlobalChat=true +bGlobalIsSpeciesOnly=false +bLocalIsSpeciesOnly=true +LocalChatRange=20000.f + +[/Script/Engine.GameSession] +MaxPlayers=50 + +[/Script/Engine.Game] +RconEnabled=false +RconPort=8888 +RconPassword= diff --git a/theisle-evrimametaconfig.json b/theisle-evrimametaconfig.json new file mode 100644 index 0000000..0d66e0c --- /dev/null +++ b/theisle-evrimametaconfig.json @@ -0,0 +1,26 @@ +[ + { + "ConfigFile":"TheIsle/Saved/Config/WindowsServer/Game.ini", + "AutoMap":true, + "ConfigType":"ini", + "ConfigFormatRegex":"^(?.+?)=(?.*?)$" + }, + { + "ConfigFile":"TheIsle/Saved/Config/LinuxServer/Game.ini", + "AutoMap":true, + "ConfigType":"ini", + "ConfigFormatRegex":"^(?.+?)=(?.*?)$" + }, + { + "ConfigFile":"TheIsle/Saved/Config/WindowsServer/Engine.ini", + "AutoMap":true, + "ConfigType":"ini", + "ConfigFormatRegex":"^(?.+?)=(?.*?)$" + }, + { + "ConfigFile":"TheIsle/Saved/Config/LinuxServer/Engine.ini", + "AutoMap":true, + "ConfigType":"ini", + "ConfigFormatRegex":"^(?.+?)=(?.*?)$" + } +] \ No newline at end of file From 2397051f3be468ae846ab1917358c21b2abaec17 Mon Sep 17 00:00:00 2001 From: IceOfWraith <96364530+IceOfWraith@users.noreply.github.com> Date: Sun, 29 May 2022 10:07:44 -0500 Subject: [PATCH 17/22] Update Risk of Rain 2 (#133) This updates the following: 1. Runs on WINE 2. Docker capable! 3. Game mode option 4. Updates player join/leave regex using sessionid 5. New ports method --- risk-of-rain-2.kvp | 118 ++++++++++++++++++++++------------ risk-of-rain-2config.json | 17 +++++ risk-of-rain-2metaconfig.json | 4 +- 3 files changed, 96 insertions(+), 43 deletions(-) diff --git a/risk-of-rain-2.kvp b/risk-of-rain-2.kvp index ca155cd..9854020 100644 --- a/risk-of-rain-2.kvp +++ b/risk-of-rain-2.kvp @@ -1,45 +1,81 @@ -App.AdminMethod=STDIO -App.ApplicationPort1=27015 -App.ApplicationPort2=27016 -App.ApplicationPort3=27017 -App.RemoteAdminPort=0 -App.ApplicationReadyMode=RegexMatch -App.BaseDirectory=./risk-of-rain-2/1180760/ -App.CommandLineArgs={{$PlatformArgs}} -App.CommandLineParameterDelimiter= -App.CommandLineParameterFormat= -App.LinuxCommandLineArgs=-a "{{$FullRootDir}}1580130/proton" run "./Risk of Rain 2.exe" -App.WindowsCommandLineArgs= -App.DisplayName=Risk of Rain 2 -App.EnvironmentVariables={"LD_LIBRARY_PATH":"./linux64:%LD_LIBRARY_PATH%","SteamAppId":"{{$SteamAppID}}","STEAM_COMPAT_DATA_PATH":"{{$FullRootDir}}1580130","STEAM_COMPAT_CLIENT_INSTALL_PATH":"{{$FullRootDir}}1580130"} -App.ExecutableLinux=/usr/bin/xvfb-run -App.ExecutableWin=1180760\Risk of Rain 2.exe -App.ExitMethod=OS_CLOSE -App.ExitString=stop -App.HasReadableConsole=true -App.HasWritableConsole=false -App.RapidStartup=false -App.RootDir=./risk-of-rain-2/ -App.UpdateSource=Multi -App.UpdateSources=[{"UpdateStageName":"SteamCMD Download","UpdateSourcePlatform":"All","UpdateSource":"SteamCMD","UpdateSourceData":"1180760","ForceDownloadPlatform":"Windows"},{"UpdateStageName":"SteamCMD Download","UpdateSourcePlatform":"All","UpdateSource":"SteamCMD","UpdateSourceData":"1007","UpdateSourceTarget":"1180760","ForceDownloadPlatform":"Windows"},{"UpdateStageName":"Proton Compatibility Layer","UpdateSourcePlatform":"Linux","UpdateSource":"SteamCMD","UpdateSourceData":"1580130"}] -App.WorkingDir=1180760 -App.MaxUsers=4 -App.SupportsUniversalSleep=False -App.UniversalSleepApplicationUDPPort=1 -App.UniversalSleepSteamQueryPort=2 -App.WakeupMode=Any -Console.ThrowawayMessageRegex=^((WARNING|ERROR): Shader.+)|((Filename:.*))$ -Console.AppReadyRegex=^.*Press Enter to chat.*$ -Console.UserJoinRegex=^.*SteamworksServerManager.OnAuthChange.steamId=(?\d+),.*$ -Console.UserLeaveRegex=^.*Log: connection .* has been disconnected by timeout.* -Console.UserChatRegex=^.*\[\d\d:\d\d:\d\d\] \[CHAT\] <(?.+?)> (?.+)$ +Meta.DisplayName=Risk of Rain 2 +Meta.Description=Risk of Rain 2 Dedicated Server +Meta.OS=Windows, Linux +Meta.Arch=x86_64 Meta.Author=IceOfWraith +Meta.URL=https://store.steampowered.com/app/632360/Risk_of_Rain_2/ +Meta.DisplayImageSource=steam:632360 +Meta.EndpointURIFormat=steam://connect/{ip}:{GenericModule.App.Ports.$ApplicationPort2} Meta.ConfigManifest=risk-of-rain-2config.json Meta.MetaConfigManifest=risk-of-rain-2metaconfig.json Meta.ConfigRoot=risk-of-rain-2.kvp -Meta.Description=Risk of Rain 2 Dedicated Server -Meta.DisplayImageSource=steam:632360 -Meta.DisplayName=Risk of Rain 2 -Meta.EndpointURIFormat=steam://connect/{ip}/{GenericModule.App.ApplicationPort2} -Meta.OS=3 -Meta.URL=https://store.steampowered.com/app/632360/Risk_of_Rain_2/ +Meta.MinAMPVersion=2.3.3.0 +Meta.SpecificDockerImage=cubecoders/ampbase:wine +Meta.DockerRequired=False +Meta.ContainerPolicy=Supported +Meta.Prerequsites=[] +Meta.ConfigReleaseState=NotSpecified +App.DisplayName=Risk of Rain 2 +App.RootDir=./risk-of-rain-2/ +App.BaseDirectory=./risk-of-rain-2/1180760/ +App.ExecutableWin=1180760\Risk of Rain 2.exe +App.ExecutableLinux=/usr/bin/xvfb-run +App.WorkingDir=1180760 +App.LinuxCommandLineArgs=-a wine "./Risk of Rain 2.exe" +App.WindowsCommandLineArgs= +App.CommandLineArgs={{$PlatformArgs}} +App.UseLinuxIOREDIR=False +App.AppSettings={} +App.EnvironmentVariables={"LD_LIBRARY_PATH":"./linux64:%LD_LIBRARY_PATH%","SteamAppId":"{{$SteamAppID}}"} +App.CommandLineParameterFormat=+{0} {1} +App.CommandLineParameterDelimiter= +App.ExitMethod=OS_CLOSE +App.ExitTimeout=30 +App.ExitString=stop +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.Ports=[{"Protocol":2,"Port":27015,"Offset":0,"Range":1,"Ref":"ApplicationPort1","Name":"Application Port 1","Description":"","ChildPorts":null},{"Protocol":2,"Port":27016,"Offset":0,"Range":1,"Ref":"ApplicationPort2","Name":"Application Port 2","Description":"","ChildPorts":null},{"Protocol":2,"Port":27017,"Offset":0,"Range":1,"Ref":"ApplicationPort3","Name":"Application Port 3","Description":"","ChildPorts":null}] +App.AdminPortRef=RemoteAdminPort +App.PrimaryApplicationPortRef=ApplicationPort1 +App.UniversalSleepApplicationUDPPortRef=ApplicationPort1 +App.UniversalSleepSteamQueryPortRef=ApplicationPort2 +App.MaxUsers=4 +App.UseRandomAdminPassword=False +App.RemoteAdminPassword=Password123 +App.AdminMethod=STDIO +App.AdminLoginTransform=None +App.RCONConnectDelaySeconds=5 +App.RCONConnectRetrySeconds=5 +App.TelnetLoginFormat={0} +App.UpdateSources=[{"UpdateStageName":"SteamCMD Download","UpdateSourcePlatform":"All","UpdateSource":"SteamCMD","UpdateSourceData":"1180760","ForceDownloadPlatform":"Windows"},{"UpdateStageName":"SteamCMD Download","UpdateSourcePlatform":"All","UpdateSource":"SteamCMD","UpdateSourceData":"1007","UpdateSourceTarget":"1180760","ForceDownloadPlatform":"Windows"}] +App.Compatibility=None +App.SteamUpdateAnonymousLogin=True +App.SteamForceLoginPrompt=False +App.RapidStartup=False +App.SupportsUniversalSleep=False +App.WakeupMode=Any +App.ApplicationReadyMode=RegexMatch +App.TemplateMatchRegex={{(\$?[\w]+)}} +Console.FilterMatchRegex= +Console.FilterMatchReplacement= +Console.ThrowawayMessageRegex=^.*Couldn't create a Convex Mesh from source mesh.*$|^.*Shader .* fallback shader .* not found.*$|^.*\[RoR2\.Audio\.NetworkSoundEventCatalog\] Error during network sound registration.*does not exist.*$|^.*\(Filename:.*Line: \d+\).*$ +Console.AppReadyRegex=^.*Press Enter to chat.*$ +Console.UserJoinRegex=^.*NetworkManagerSystem\.AddPlayerInternal\(conn=hostId: \d+ connectionId: (?\d+) .*$ +Console.UserLeaveRegex=^.*Log: connection \{(?\d+)\} has been disconnected by timeout.*$ +Console.UserChatRegex=^\[\d\d:\d\d:\d\d\] \[CHAT\] <(?.+?)> (?.+)$ +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=5 +Limits.SleepStartThresholdSeconds=100 + diff --git a/risk-of-rain-2config.json b/risk-of-rain-2config.json index c947630..0c29ff6 100644 --- a/risk-of-rain-2config.json +++ b/risk-of-rain-2config.json @@ -53,5 +53,22 @@ "True": "1", "False": "0" } + }, + { + "DisplayName": "Game Mode", + "Category": "Server Settings", + "Description": "Select a game mode for the server", + "Keywords": "game mode", + "FieldName": "gamemode", + "InputType": "enum", + "IsFlagArgument": false, + "ParamFieldName": "gamemode", + "IncludeInCommandLine": false, + "DefaultValue": "ClassicRun", + "EnumValues": { + "EclipseRun": "Eclipse", + "ClassicRun": "Normal", + "InfiniteTowerRun": "Simulacrum" + } } ] \ No newline at end of file diff --git a/risk-of-rain-2metaconfig.json b/risk-of-rain-2metaconfig.json index 9f0888f..c3de4f8 100644 --- a/risk-of-rain-2metaconfig.json +++ b/risk-of-rain-2metaconfig.json @@ -14,10 +14,10 @@ "steam_server_query_port": "$ApplicationPort2", "steam_server_steam_port": "$ApplicationPort3", "sv_password": "sv_password", + "gamemode": "gamemode" } } ] } -] - +] \ No newline at end of file From 32f412de008edbbf6082ca2b6f8641acec62b669 Mon Sep 17 00:00:00 2001 From: Greelan <53196309+Greelan@users.noreply.github.com> Date: Mon, 30 May 2022 07:15:44 +1000 Subject: [PATCH 18/22] Add Xonotic Dedicated Server (#96) --- xonotic.kvp | 60 ++++++++++++ xonoticconfig.json | 215 ++++++++++++++++++++++++++++++++++++++++ xonoticmetaconfig.json | 9 ++ xonoticserver.cfg | 218 +++++++++++++++++++++++++++++++++++++++++ 4 files changed, 502 insertions(+) create mode 100644 xonotic.kvp create mode 100755 xonoticconfig.json create mode 100644 xonoticmetaconfig.json create mode 100644 xonoticserver.cfg diff --git a/xonotic.kvp b/xonotic.kvp new file mode 100644 index 0000000..c266f6d --- /dev/null +++ b/xonotic.kvp @@ -0,0 +1,60 @@ +Meta.DisplayName=Xonotic +Meta.Description=Xonotic Dedicated Server +Meta.OS=Windows, Linux +Meta.Author=Greelan +Meta.URL=https://xonotic.org +Meta.DisplayImageSource=url:https://gitlab.com/xonotic/xonotic/-/raw/master/misc/logos/xonotic_logo.png +Meta.EndpointURIFormat= +Meta.ConfigManifest=xonoticconfig.json +Meta.MetaConfigManifest=xonoticmetaconfig.json +Meta.ConfigRoot=xonotic.kvp +Meta.MinAMPVersion=2.3.3.0 +Meta.SpecificDockerImage= +Meta.Prerequsites=[] +App.DisplayName=Xonotic +App.RootDir=./xonotic/ +App.BaseDirectory=./xonotic/Xonotic/ +App.ExecutableWin=Xonotic\xonotic.exe +App.ExecutableLinux=Xonotic/xonotic-linux64-dedicated +App.WorkingDir=Xonotic +App.LinuxCommandLineArgs= +App.WindowsCommandLineArgs=-dedicated +App.CommandLineArgs={{$PlatformArgs}} +serverconfig server.cfg -userdir "{{$FullBaseDir}}ServerData" {{$FormattedArgs}} +App.AppSettings={} +App.EnvironmentVariables={} +App.CommandLineParameterFormat=-{0} {1} +App.CommandLineParameterDelimiter= +App.ExitMethod=OS_CLOSE +App.ExitTimeout=30 +App.ExitString=rcon quit +App.ExitFile=lock +App.HasWriteableConsole=True +App.HasReadableConsole=True +App.SupportsLiveSettingsChanges=False +App.LiveSettingChangeCommandFormat=set {0} "{1}" +App.ApplicationIPBinding= +App.Ports=[{"Protocol":"UDP","Name":"Server Port","Description":"Port for both game and RCON traffic","Port":26000,"Ref":"ServerPort"}] +App.AdminPortRef=ServerPort +App.PrimaryApplicationPortRef=ServerPort +App.MaxUsers=8 +App.UseRandomAdminPassword=True +App.RemoteAdminPassword= +App.AdminMethod=STDIO +App.UpdateSources=[{"UpdateStageName":"Server Download","UpdateSourcePlatform":"All","UpdateSource":"FetchURL","UpdateSourceData":"https://{{ServerReleaseStream}}-{{ServerVersion}}.zip","UpdateSourceTarget":"./","UnzipUpdateSource":true,"OverwriteExistingFiles":true,"DeleteAfterExtract":true},{"UpdateStageName":"Set Executable Flag","UpdateSourcePlatform":"Linux","UpdateSource":"SetExecutableFlag","UpdateSourceArgs":"./Xonotic/xonotic-linux64-dedicated"},{"UpdateStageName":"Config File Download","UpdateSourcePlatform":"All","UpdateSource":"FetchURL","UpdateSourceData":"https://raw.githubusercontent.com/Greelan/AMPTemplates/xonotic/xonoticserver.cfg","UpdateSourceTarget":"../","OverwriteExistingFiles":true},{"UpdateStageName":"Data Directory Creation","UpdateSourcePlatform":"All","UpdateSource":"CreateDirectory","UpdateSourceArgs":"./xonotic/Xonotic/ServerData/data"},{"UpdateStageName":"Config File Copy","UpdateSourcePlatform":"All","UpdateSource":"CopyFilePath","UpdateSourceData":"./xonotic/Xonotic/ServerData/data/server.cfg","UpdateSourceArgs":"./xonoticserver.cfg","OverwriteExistingFiles":false}] +App.Compatibility=None +App.SteamUpdateAnonymousLogin=True +App.SteamForceLoginPrompt=False +App.RapidStartup=False +App.ApplicationReadyMode=RegexMatch +App.TemplateMatchRegex={{(\$?[\w]+)}} +Console.FilterMatchRegex= +Console.FilterMatchReplacement= +Console.ThrowawayMessageRegex=^(WARNING|ERROR): Shader.+$ +Console.AppReadyRegex=^Server listening on address [\d.:]*$ +Console.UserJoinRegex=^(?.+?) connected$ +Console.UserLeaveRegex=^Client "(?.+?)" dropped$ +Console.UserChatRegex=^(\[[;\d]*m)?(?.+?)(\[m)?: (?.+?)$ +Console.UpdateAvailableRegex= +Console.SuppressLogAtStart=False +Console.ActivateLogRegex= +Console.UserActions={} diff --git a/xonoticconfig.json b/xonoticconfig.json new file mode 100755 index 0000000..8689bc9 --- /dev/null +++ b/xonoticconfig.json @@ -0,0 +1,215 @@ +[ + { + "DisplayName":"Port", + "Category":"Server Settings", + "Description":"", + "Keywords":"", + "FieldName":"$ServerPort", + "InputType":"number", + "Hidden":true, + "IsFlagArgument":false, + "ParamFieldName":"port", + "IncludeInCommandLine":false, + "EnumValues":{} + }, + { + "DisplayName":"Log File", + "Category":"Server Settings", + "Description":"", + "Keywords":"", + "FieldName":"log_file", + "InputType":"text", + "Hidden":true, + "IsFlagArgument":false, + "ParamFieldName":"log_file", + "IncludeInCommandLine":false, + "DefaultValue":"server.log", + "EnumValues":{} + }, + { + "DisplayName":"RCON Password", + "Category":"Server Settings", + "Description":"", + "Keywords":"", + "FieldName":"$RemoteAdminPassword", + "InputType":"text", + "Hidden":true, + "IsFlagArgument":false, + "ParamFieldName":"rcon_password", + "IncludeInCommandLine":false, + "EnumValues":{} + }, + { + "DisplayName":"Server Release Stream", + "Category":"Server Settings", + "Description":"Sets Stable or Autobuild (nightly) release stream. Needs \"Server Version\" set as well. NOTE: Update the server after changing this setting!", + "Keywords":"release,stable,autobuild", + "FieldName":"ServerReleaseStream", + "InputType":"enum", + "IsFlagArgument":false, + "ParamFieldName":"", + "IncludeInCommandLine":false, + "DefaultValue":"dl.xonotic.org/xonotic", + "EnumValues":{ + "dl.xonotic.org/xonotic":"Stable", + "beta.xonotic.org/autobuild/Xonotic":"Autobuild" + } + }, + { + "DisplayName":"Server Version", + "Category":"Server Settings", + "Description":"[Stable build version](https://xonotic.org/download/) or [Autobuild version](https://beta.xonotic.org/autobuild/) to install. Set \"Server Release Stream\" as appropriate. NOTE: Update the server after changing this setting!", + "Keywords":"server,version,build", + "FieldName":"ServerVersion", + "InputType":"text", + "IsFlagArgument":false, + "ParamFieldName":"", + "IncludeInCommandLine":false, + "DefaultValue":"0.8.2", + "Placeholder":"0.8.2 | 20220528 | latest", + "EnumValues":{} + }, + { + "DisplayName":"Server Name", + "Category":"Server Settings", + "Description":"Server name visible in the server list (\"$g_xonoticversion\" is replaced with the current version)", + "Keywords":"server,name,hostname", + "FieldName":"hostname", + "InputType":"text", + "IsFlagArgument":false, + "ParamFieldName":"hostname", + "IncludeInCommandLine":false, + "DefaultValue":"Xonotic $g_xonoticversion Server - Powered by AMP", + "EnumValues":{} + }, + { + "DisplayName":"Server Public Status", + "Category":"Server Settings", + "Description":"Sets the public status of the server and whether it is included in the master server list", + "Keywords":"public,list,private", + "FieldName":"sv_public", + "InputType":"enum", + "IsFlagArgument":false, + "ParamFieldName":"sv_public", + "IncludeInCommandLine":false, + "DefaultValue":"1", + "EnumValues":{ + "1":"Public and included in server list", + "0":"Public but not included in server list", + "-1":"Not public" + } + }, + { + "DisplayName":"Server Binding", + "Category":"Server Settings", + "Description":"Sets the binding of the server. Default is 0.0.0.0. Change to internal interface IP only if the server has issues", + "Keywords":"server,ip,binding", + "FieldName":"net_address", + "InputType":"text", + "IsFlagArgument":false, + "ParamFieldName":"net_address", + "IncludeInCommandLine":false, + "DefaultValue":"0.0.0.0", + "EnumValues":{} + }, + { + "DisplayName":"Welcome Message", + "Category":"Server Settings", + "Description":"Welcome message when players join the server", + "Keywords":"welcome,message,motd", + "FieldName":"sv_motd", + "InputType":"text", + "IsFlagArgument":false, + "ParamFieldName":"sv_motd", + "IncludeInCommandLine":false, + "DefaultValue":"Welcome to Xonotic Server", + "EnumValues":{} + }, + { + "DisplayName":"Player Limit", + "Category":"Server Settings", + "Description":"Maximum number of players that may connect to the server (including spectators)", + "Keywords":"players,limit", + "FieldName":"$MaxUsers", + "InputType":"number", + "IsFlagArgument":false, + "ParamFieldName":"maxplayers", + "IncludeInCommandLine":false, + "DefaultValue":"8", + "Suffix":"players", + "EnumValues":{} + }, + { + "DisplayName":"Game Start Delay", + "Category":"Server Settings", + "Description":"Sets the delay before the game starts to let players join the server first", + "Keywords":"start,delay", + "FieldName":"g_start_delay", + "InputType":"number", + "IsFlagArgument":false, + "ParamFieldName":"g_start_delay", + "IncludeInCommandLine":false, + "DefaultValue":"15", + "Suffix":"seconds", + "EnumValues":{} + }, + { + "DisplayName":"Maps", + "Category":"Server Settings", + "Description":"Space-separated list of maps for the server. Leave blank for all", + "Keywords":"maps", + "FieldName":"g_maplist", + "InputType":"text", + "IsFlagArgument":false, + "ParamFieldName":"g_maplist", + "IncludeInCommandLine":false, + "DefaultValue":"afterslime atelier boil catharsis courtfun dance drain erbium finalrage fuse geoplanetary glowplant implosion leave_em_behind nexballarena oilrig runningman runningmanctf silentsiege solarium space-elevator stormkeep techassault vorix warfare xoylent", + "EnumValues":{} + }, + { + "DisplayName":"Shuffle Map List", + "Category":"Server Settings", + "Description":"If enabled, a random map will be selected for each game. Otherwise the maps will be selected in sequence", + "Keywords":"shuffle,maps", + "FieldName":"g_maplist_shuffle", + "InputType":"checkbox", + "IsFlagArgument":false, + "ParamFieldName":"g_maplist_shuffle", + "IncludeInCommandLine":false, + "DefaultValue":"1", + "EnumValues":{ + "False":"0", + "True":"1" + } + }, + { + "DisplayName":"Minimum Maps Before Repeat", + "Category":"Server Settings", + "Description":"Number of maps that have to be played before a map can be repeated", + "Keywords":"maps,recent,count", + "FieldName":"g_maplist_mostrecent_count", + "InputType":"number", + "IsFlagArgument":false, + "ParamFieldName":"g_maplist_mostrecent_count", + "IncludeInCommandLine":false, + "DefaultValue":"3", + "Suffix":"maps", + "EnumValues":{} + }, + { + "DisplayName":"Hide IPs from Clients", + "Category":"Server Settings", + "Description":"If enabled, IP addresses are hidden from \"status\" replies shown to clients", + "Keywords":"hide,ip,client", + "FieldName":"sv_status_privacy", + "InputType":"checkbox", + "IsFlagArgument":false, + "ParamFieldName":"sv_status_privacy", + "IncludeInCommandLine":false, + "DefaultValue":"1", + "EnumValues":{ + "False":"0", + "True":"1" + } + } +] diff --git a/xonoticmetaconfig.json b/xonoticmetaconfig.json new file mode 100644 index 0000000..fc4550e --- /dev/null +++ b/xonoticmetaconfig.json @@ -0,0 +1,9 @@ +[ + { + "ConfigFile":"ServerData/data/server.cfg", + "AutoMap":true, + "ConfigType":"kvp", + "ConfigFormat":"{0} \"{1}\"", + "ConfigFormatRegex":"^(?.+?) \"(?.*?)\"$" + } +] diff --git a/xonoticserver.cfg b/xonoticserver.cfg new file mode 100644 index 0000000..803ea8b --- /dev/null +++ b/xonoticserver.cfg @@ -0,0 +1,218 @@ +// Two slashes start a comment until the end of the line. +// Surround settings with double quotes (e.g. cvar_name "some value") unless they're a single number or word. +// Cvar means console variable. +// Just "" means empty string. +// Semicolon separates commands (in console or in aliases). +// Search for settings and descriptions using the 'search' command in console +// or online: https://xonotic.org/tools/cacs/ + + +///////////////////////////////////////////////////////////////////// +// Settings controlled by AMP. + +sv_public "1" +sv_status_privacy "1" +hostname "Xonotic $g_xonoticversion Server - Powered by AMP" +sv_motd "Welcome to Xonotic Server" +maxplayers "8" +port "26000" +log_file "server.log" +g_start_delay "15" +g_maplist "afterslime atelier boil catharsis courtfun dance drain erbium finalrage fuse geoplanetary glowplant implosion leave_em_behind nexballarena oilrig runningman runningmanctf silentsiege solarium space-elevator stormkeep techassault vorix warfare xoylent" +g_maplist_shuffle "1" +g_maplist_mostrecent_count "3" +net_address "0.0.0.0" +rcon_password "Password123" + + + +///////////////////////////////////////////////////////////////////// +// Other basic settings +// Everything below has some sensible defaults so you don't really need to change anything. +// It's meant as examples for people who want to customize the server more. +// The values shown are either defaults or examples (for up to date defaults, see 'search' (or 'apropos') in console. + +//sv_termsofservice_url "https://yourdomain.tld/path/to/tos" // URL for the Terms of Service for playing on your server +// It is RECOMMENDED to supply such a document containing information about if and how you collect and process user data (bridging to IRC, player stats etc), +// contact information, rules and similar information. +// This document will be shown in the server join dialog. + +// LIMITS: how long a match will last before the next map starts (-1 means use the map default, 0 = unlimited, please note that the variables fraglimit/timelimit can NOT be globally used for this but only DURING a match is being played) +//timelimit_override -1 // global timelimit for all maps and gametypes +//fraglimit_override -1 // global frag/point limit for all maps and gametypes +//capturelimit_override -1 // capture limit for CTF +//g_domination_point_limit -1 // frag/point limit for DOM +//g_keyhunt_point_limit -1 // frag/point limit for KH +//g_lms_lives_override -1 // lives for LMS +//g_nexball_goallimit -1 // goals for NEXBALL + +//g_ctf_ignore_frags 0 // set to 1 to ignore kills except for FC kills + +// TEAMS for key hunt (change this to 2, 3, 4 to set a fixed keyhunt style) +//g_keyhunt_teams_override -1 // teams for KH + +// GAME MODE: what type of server do you want to host? +// possible values: dm (deathmatch), tdm (team deathmatch), ctf (capture the flag), ca (clan arena), ft (freeze tag), kh (keyhunt), as (assault), dom (domination), lms (last man standing), ka (keepaway), inv (invasion), ons (onslaught), rc (race), cts (complete the stage), nb (nexball) +//gametype dm // default gamemode + +// TIPS: uncomment this if you want help messages on your server - one per match 20 seconds after the map loads +//alias sv_hook_gamestart_all "defer 20 help_next" + + + +///////////////////////////////////////////////////////////////////// +// Some settings you MIGHT want to change. Again IF so remove the // +// from the line start and change them to your liking. + +//skill 8 // the bots skill level + +// if changing either of these two minplayers settigs, you should consider editing the `bots` alias so that the `bots` vote adds the right number of bots +//minplayers 0 // add bots if less then that number of players playing +//minplayers_per_team 0 // add bots to each team if less than that number of players playing +//alias bots "minplayers 4; minplayers_per_team 2" + +//g_maxplayers 0 // above this player count, only allow spectators +//bot_prefix [BOT] // prepend this to all botnames +//bot_suffix "" // append this to all botnames +//g_maplist_check_waypoints 0 // set this to 1 to skip maps without waypoints if there aren't enough players to play without bots + +//g_maplist_votable 6 // number of maps to vote between. set to 0 to disable the map voting screen (please enable g_maplist_shuffle above when this is enabled, or votes will be repetitive) +//g_maplist_votable_suggestions 2 // number of suggestions to accept using the suggestmap command +//g_maplist_votable_abstain 0 // when 1, people get a "don't care" selection in the vote screen +//g_maplist_votable_nodetail 1 // when 1, people can't see how many voted for what (to thwart abusive "influential" first votes) + +sv_vote_gametype 1 // set to 1 to enable voting for gametypes after every match +//sv_vote_gametype_options "dm kh dom tdm mycustom" // the gametypes to vote for, custom gametypes are supported (max 9 chars for the gametype identifier because sv_vote_gametype_hook_* can have max 31 chars) +//set sv_vote_gametype_mycustom_name "My Custom Mode" // Name displayed for the custom gametype "mycustom" (replace "mycustom" with the name you set in sv_vote_gametype_options) +//set sv_vote_gametype_mycustom_type "ft" // the basetype that the custom gametype is derived from +//set sv_vote_gametype_mycustom_description "This is my custom gametype" // the description for the custom gametype +// Custom icons for custom gametypes are supported and have to be located in a server pk3 as gfx/menu/default/gametype_mycustom + +//sv_vote_commands "restart fraglimit gotomap nextmap endmatch reducematchtime extendmatchtime allready kick cointoss movetoauto shuffleteams bots nobots" // players can vote for those commands or use them if they are masters. You can also add 'g_grappling_hook' for hook voting, and 'sv_fbskin_green sv_fbskin_red sv_fbskin_orange sv_fbskin_off' for fbskin voting. +//sv_vote_master_commands "movetored movetoblue movetoyellow movetopink" // add commands masters can use if logged in or elected. You may want to put 'kickban' here, so masters can keep out punks. It may be good to also put "sv_status_privacy 0" then... +//rcon_restricted_commands "restart fraglimit chmap gotomap endmatch reducematchtime extendmatchtime allready kick kickban \"sv_cmd bans\" \"sv_cmd unban\" status \"sv_cmd teamstatus\" movetoauto movetored movetoblue movetoyellow movetopink" // commands for the (stronger) rcon restricted +//rcon_restricted_password "" // put here the password for a "restricted" rcon user (see below) + +//sv_vote_call 1 // 0 will disable the normal voting +//sv_vote_master 1 // 0 will disable voting to become master, good if you prefer to use the master password instead +//sv_vote_master_password "" // when set, vlogin PWD will allow people to become master to run master commands directly using vdo +//sv_vote_majority_factor 0.5 // What percentage of the PLAYERS constitute a majority to win a vote? must be at least 0.5 +//sv_vote_majority_factor_of_voted 0 // What percentage of the VOTERS who already voted constitute a majority to win a vote? must be at least 0.5 +// note: to JUST support simple majorities, set these two factors equal + +//sv_maxidle 0 // idle time in seconds after which players will get kicked + +//sv_taunt 1 // 0 to disallow taunts +//sv_autotaunt 1 // 0 to disallow autotaunts + + + +///////////////////////////////////////////////////////////////////// +// Settings you MIGHT want to change for PRIVACY reasons. + +// This line sends the following data to our servers: +// - Date and time +// - Your server IP address +// - Your server ID hash, which is a fingerprint of the public key of your +// server and does not impact security of your private key (use "crypto_keys" +// on the console to show it) +// - Your server name ("hostname") +// - Current game type +// - Current map +// - Balance settings you have modified from defaults (only those that make +// your server "impure") +// - For each weapon pairing (A, B), separately for player-player, player-bot, +// bot-player, bot-bot pairings: +// - Number of hits of players/bots holding A against players/bots holding B +// - Number of frags of players/bots holding A against players/bots holding B +// - Total damage of players/bots holding A against players/bots holding B +// +// We use this data to: +// - Optimize the game balance for future releases +// - Identify problems in the bot AI and improving it +// - Find settings that make servers "impure" that should not, so we can +// whitelist them in future releases +// +// We will or might publish: +// - Global weapon pairing statistics for players vs players, or bots vs bots, +// or any vs any, on a selection of servers +// - Per-gametype and per-map weapon pairing statistics players vs players, or +// bots vs bots, or any vs any, on a selection of servers +// - Lists of commonly changed cvars, together with counts on how often they +// are modified +// +// No information about the players on the server is sent, so as a server admin +// you need no permission of your players for this. +// +// No information about your server will be published - all published data sets +// will include data from multiple servers. +// +sv_weaponstats_file "http://www.xonotic.org/weaponbalance/" + + + +///////////////////////////////////////////////////////////////////// +// Some more advanced settings. You probably are not interested in changing them at all. + +//sv_ready_restart 0 // 1 to allow players to restart the map when all of them press the ready button +//sv_ready_restart_after_countdown 0 // if set to 1 the players and map items are reset after the countdown ended, otherwise they're reset already at the beginning of the countdown +//sv_ready_restart_repeatable 0 "allows the players to restart the game as often as needed +//sv_autoscreenshot 0 // 1 will force a screenshot for all clients when the map ends. Useful for competitions or the ladder. + +//g_antilag 2 // 0 to disable the antilag feature, 1 and 2 use different methods + +//sv_maxrate 1000000 // limits client connections to this rate in bytes/seconds + +//sys_ticrate 0.0333333 // 0.0166667 for twice as many server frames per second; smoother gameplay but somewhat higher CPU use. +// see Docs/mapdownload.txt for more info +//sv_curl_defaulturl http://www.xonotic.org/contentdownload/getmap.php?file= //fallback download URL + +//sv_defaultcharacter 0 // 1 will force a specific model for all players +//sv_defaultplayermodel models/player/erebus.iqm // this model will be used +//sv_defaultplayerskin 0 // this skin number will be forced for all players +//sv_defaultplayercolors "" // you can even force player colors here (16*shirt+pants) +//g_fullbrightplayers 0 // 1 to make players fullbright +//g_fullbrightitems 0 // 1 to make items fullbright + +//g_balance_teams 1 // 0 will show players the team selection menu after joining instead of automaticly putting them on the smaller team +//g_balance_teams_prevent_imbalance 1 // 0 to prevent switchint to a bigger/begger team + +//g_ban_sync_uri "http://46.38.241.138/~xonotic/bans/" // sync bans using this ban list provider (disabled by default, uncomment this line to enable) +//g_ban_sync_trusted_servers "" // accept bans that were initially set on the server IPs listed here (if not set, your bans are just sent to the sync URIs, but no bans are retrieved from there) + +//g_spawnshieldtime 1 // time for which players are protected after spawn + + + +///////////////////////////////////////////////////////////////////// +// "Obvious" mutators that are allowed on a "pure" server +//g_instagib 0 // set to 1 for InstaGib +//g_weapon_stay 0 // set to 1, 2 or 3 for different weapon-stay modes (1 = traditional, 2 = no ammo but allow throwing, 3 = ghost weapon stay) +//g_powerups -1 // set to 0 to turn off strength/quad and shield/invincible, and set to 1 to turn them on even in game modes that normally have them turned off + + + +///////////////////////////////////////////////////////////////////// +// Overkill mod settings + +// To enable Overkill, put 'exec defaultOverkill.cfg' at the top of this file (above any other cvar changes), don't use 'g_overkill 1' directly. +// You should also consider enabling 'g_fullbrightplayers 1'. + + + +///////////////////////////////////////////////////////////////////// +// WARNING: anything below this line makes your server "impure"! + +// enable some mutators you'd like +//g_cloaked 0 // set to 1 for transparent hard to see players +//g_grappling_hook 0 // set to 1 to enable the hook (allowed on "pure" server in InstaGib) +//g_jetpack 0 // set to 1 to enable the jetpack (allowed on "pure" server in InstaGib) +//g_midair 0 // set to 1 to make only midair damage count +//g_vampire 0 // set to 1 to give players the damage they cause as health +//sv_gravity 800 // for low gravity, set this somewhere between 50 and 400 + +// select AT MOST one of these arena mutators (if you didn't select g_instagib) +//g_nix is "0" ["0"] No Items Xonotic - instead of pickup items, everyone plays with the same weapon. After some time, a countdown will start, after which everyone will switch to another weapon, and so on +//g_nix_with_healtharmor is "0" ["0"] when 1, health and armor still show up in NIX +//g_nix_with_blaster is "0" ["0"] always carry the blaster as an additional weapon in NIX +//g_nix_with_powerups is "0" ["0"] when 1, powerups still show up in NIX From 5917b969ab2e53a0144a546cec5bd68317fff425 Mon Sep 17 00:00:00 2001 From: Greelan <53196309+Greelan@users.noreply.github.com> Date: Tue, 31 May 2022 18:30:52 +1000 Subject: [PATCH 19/22] Last Oasis: tidy ups to kvp --- last-oasis.kvp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/last-oasis.kvp b/last-oasis.kvp index 3425c9b..fbd9699 100644 --- a/last-oasis.kvp +++ b/last-oasis.kvp @@ -17,7 +17,7 @@ App.ExecutableLinux=920720/Mist/Binaries/Linux/MistServer-Linux-Shipping App.WorkingDir=920720 App.LinuxCommandLineArgs=Mist App.WindowsCommandLineArgs= -App.CommandLineArgs={{$$PlatformArgs}}-force_steamclient_link -messaging -NoLiveServer -EnableCheats -backendapiurloverride="backend.last-oasis.com" -slots={{$MaxUsers}} -port={{$ApplicationPort1}} -QueryPort={{$ApplicationPort2}} -OverrideConnectionAddress {{$FormattedArgs}} +App.CommandLineArgs={{$PlatformArgs}} -force_steamclient_link -messaging -NoLiveServer -EnableCheats -backendapiurloverride="backend.last-oasis.com" -slots={{$MaxUsers}} -port={{$ApplicationPort1}} -QueryPort={{$ApplicationPort2}} -OverrideConnectionAddress {{$FormattedArgs}} App.EnvironmentVariables={"LD_LIBRARY_PATH":"./linux64:%LD_LIBRARY_PATH%"} App.CommandLineParameterFormat=-{0}="{1}" App.CommandLineParameterDelimiter= From d6c94533d649121dd7867a793daa17669bbc9ed6 Mon Sep 17 00:00:00 2001 From: Greelan <53196309+Greelan@users.noreply.github.com> Date: Tue, 31 May 2022 18:31:49 +1000 Subject: [PATCH 20/22] Last Oasis: remove manifest setting being duplicated --- last-oasisconfig.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/last-oasisconfig.json b/last-oasisconfig.json index 767bd1a..03cce4e 100644 --- a/last-oasisconfig.json +++ b/last-oasisconfig.json @@ -47,8 +47,8 @@ "InputType": "number", "IsFlagArgument": false, "ParamFieldName": "slots", - "IncludeInCommandLine": true, + "IncludeInCommandLine": false, "DefaultValue": "8", "EnumValues": {} } -] \ No newline at end of file +] From 94bd03e178653a5a8c9f594caac61cbdb321d579 Mon Sep 17 00:00:00 2001 From: Greelan <53196309+Greelan@users.noreply.github.com> Date: Wed, 1 Jun 2022 20:28:05 +1000 Subject: [PATCH 21/22] The Isle (EVRIMA): complete command line arguments --- theisle-evrima.kvp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/theisle-evrima.kvp b/theisle-evrima.kvp index 07a8e0e..90cd97b 100644 --- a/theisle-evrima.kvp +++ b/theisle-evrima.kvp @@ -22,7 +22,7 @@ App.ExecutableLinux=412680/TheIsle/Binaries/Linux/TheIsleServer-Linux-Shipping App.WorkingDir=412680 App.LinuxCommandLineArgs= App.WindowsCommandLineArgs= -App.CommandLineArgs={{$PlatformArgs}} -Port={{$GamePort}} -QueryPort={{$QueryPort}} {{$FormattedArgs}} -log +App.CommandLineArgs={{$PlatformArgs}} TheIsle -Port={{$GamePort}} -QueryPort={{$QueryPort}} {{$FormattedArgs}} -log App.AppSettings={} App.EnvironmentVariables={"LD_LIBRARY_PATH":"{{$FullRootDir}}linux64:%LD_LIBRARY_PATH%","SteamAppId":"376210"} App.CommandLineParameterFormat=-{0}={1} From 3e38da5149a1572de0461baf3bf9b8509ba54897 Mon Sep 17 00:00:00 2001 From: Greelan <53196309+Greelan@users.noreply.github.com> Date: Wed, 1 Jun 2022 20:29:27 +1000 Subject: [PATCH 22/22] The Isle (Legacy): complete command line args --- theisle-legacy.kvp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/theisle-legacy.kvp b/theisle-legacy.kvp index 4c18b7c..af7c949 100644 --- a/theisle-legacy.kvp +++ b/theisle-legacy.kvp @@ -22,7 +22,7 @@ App.ExecutableLinux=1580130/proton App.WorkingDir=412680/TheIsle/Binaries/Win64 App.LinuxCommandLineArgs=run {{$FullBaseDir}}TheIsle/Binaries/Win64/TheIsleServer-Win64-Shipping.exe App.WindowsCommandLineArgs= -App.CommandLineArgs={{$PlatformArgs}} {{Map}}?game={{GameMode}} -Port={{$ApplicationPort1}} -QueryPort={{$ApplicationPort2}} {{$FormattedArgs}} -log +App.CommandLineArgs={{$PlatformArgs}} TheIsle {{Map}}?game={{GameMode}} -Port={{$ApplicationPort1}} -QueryPort={{$ApplicationPort2}} {{$FormattedArgs}} -log App.AppSettings={} App.EnvironmentVariables={"LD_LIBRARY_PATH":"{{$FullBaseDir}}linux64:%LD_LIBRARY_PATH%","SteamAppId":"376210","STEAM_COMPAT_DATA_PATH":"{{$FullRootDir}}1580130","STEAM_COMPAT_CLIENT_INSTALL_PATH":"{{$FullRootDir}}1580130"} App.CommandLineParameterFormat=-{0}={1}