diff --git a/openra-dune-2000.kvp b/openra-dune-2000.kvp new file mode 100644 index 0000000..291786c --- /dev/null +++ b/openra-dune-2000.kvp @@ -0,0 +1,101 @@ +Meta.DisplayName=OpenRA - Dune 2000 +Meta.Description=OpenRA Dedicated Server for Dune 2000 +Meta.OS=Windows, Linux +Meta.AarchSupport=Unknown +Meta.Arch=x86_64 +Meta.Author=Greelan +Meta.URL=https://www.openra.net/ +Meta.DisplayImageSource=url:https://github.com/OpenRA/OpenRA/blob/bleed/mods/d2k/icon-3x.png?raw=true +Meta.EndpointURIFormat= +Meta.ConfigManifest=openraconfig.json +Meta.MetaConfigManifest=openrametaconfig.json +Meta.ConfigRoot=openra-dune-2000.kvp +Meta.MinAMPVersion=2.4.6.4 +Meta.SpecificDockerImage= +Meta.DockerRequired=False +Meta.DockerBaseReadOnly=False +Meta.ContainerPolicy=Supported +Meta.ContainerPolicyReason= +Meta.ExtraSetupStepsURI= +Meta.Prerequsites=[] +Meta.ExtraContainerPackages=[] +Meta.ConfigReleaseState=NotSpecified +Meta.NoCommercialUsage=False +Meta.ConfigVersion=0.0.0.0 +Meta.ReleaseNotes= +Meta.BreakingReleaseNotes= +App.DisplayName=OpenRA - Dune 2000 +App.RootDir=./openra/ +App.BaseDirectory=./openra/ +App.SteamWorkshopDownloadLocation= +App.ExecutableWin=server\OpenRA.Server.exe +App.ExecutableLinux=server/OpenRA.Server +App.WorkingDir=server +App.LinuxCommandLineArgs= +App.WindowsCommandLineArgs= +App.CommandLineArgs={{$PlatformArgs}} Engine.EngineDir="." Engine.SupportDir="{{$FullBaseDir}}Support" Server.ListenPort="{{$ServerPort}}" Game.Mod="d2k" {{$FormattedArgs}} +App.UseLinuxIOREDIR=False +App.AppSettings={} +App.EnvironmentVariables={} +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":"TCP","Port":1234,"Ref":"ServerPort","Name":"Server Port","Description":"Port for game traffic"}] +App.AdminPortRef=0 +App.PrimaryApplicationPortRef=ServerPort +App.UniversalSleepApplicationUDPPortRef=0 +App.UniversalSleepSteamQueryPortRef=0 +App.MaxUsers=12 +App.UseRandomAdminPassword=False +App.PersistRandomPassword=True +App.RemoteAdminPassword= +App.AdminMethod=STDIO +App.AdminLoginTransform=None +App.LoginTransformPrefix= +App.RCONConnectDelaySeconds=30 +App.RCONConnectRetrySeconds=15 +App.RCONHeartbeatMinutes=0 +App.RCONHeartbeatCommand=ping +App.TelnetLoginFormat={0} +App.UpdateSources=@IncludeJson[openra-dune-2000updates.json] +App.PreStartStages=[] +App.ForceUpdate=False +App.ForceUpdateReason= +App.Compatibility=None +App.SteamUpdateAnonymousLogin=False +App.SteamForceLoginPrompt=True +App.RapidStartup=False +App.MonitorChildProcess=False +App.DumpFullChildProcessTree=False +App.MonitorChildProcessWaitMs=1000 +App.MonitorChildProcessName= +App.SupportsUniversalSleep=False +App.WakeupMode=Any +App.ApplicationReadyMode=RegexMatch +App.TemplateMatchRegex={{(\$?[\w]+)}} +Console.FilterMatchRegex= +Console.FilterMatchReplacement= +Console.ThrowawayMessageRegex=(WARNING|ERROR): Shader.+ +Console.AppReadyRegex=^\[.*\] Master server communication established\.$ +Console.UserJoinRegex=^\[.*\] (?.+?) has joined the game\.$ +Console.UserLeaveRegex=\[.*\] (?.+?) has (disconnected|left)\.$ +Console.UserChatRegex=^$ +Console.UpdateAvailableRegex=^\[\d\d:\d\d:\d\d\] \[INFO\] A new server update is available! v[\d\.]+.$ +Console.MetricsRegex= +Console.SuppressLogAtStart=False +Console.ActivateLogRegex= +Console.UserActions={} +Limits.SleepMode=True +Limits.SleepOnStart=False +Limits.SleepDelayMinutes=5 +Limits.DozeDelay=2 +Limits.AutoRetryCount=5 +Limits.SleepStartThresholdSeconds=25 diff --git a/openra-dune-2000updates.json b/openra-dune-2000updates.json new file mode 100644 index 0000000..082651c --- /dev/null +++ b/openra-dune-2000updates.json @@ -0,0 +1,54 @@ +[ + { + "UpdateStageName":"Server Directory Creation", + "UpdateSourcePlatform":"Windows", + "UpdateSource":"CreateDirectory", + "UpdateSourceArgs":"{{$FullBaseDir}}server" + }, + { + "UpdateStageName":"AppImage Directory Creation", + "UpdateSourcePlatform":"Linux", + "UpdateSource":"CreateDirectory", + "UpdateSourceArgs":"{{$FullBaseDir}}appimage" + }, + { + "UpdateStageName":"Support Directory Creation", + "UpdateSourcePlatform":"All", + "UpdateSource":"CreateDirectory", + "UpdateSourceArgs":"{{$FullBaseDir}}Support" + }, + { + "UpdateStageName":"OpenRA Download", + "UpdateSourcePlatform":"Windows", + "UpdateSource":"FetchURLFromJQ", + "UpdateSourceData":"https://api.github.com/repos/OpenRA/OpenRA/releases/latest", + "UpdateSourceArgs":"$.assets.[5].browser_download_url", + "UpdateSourceTarget":"{{$FullBaseDir}}server", + "UnzipUpdateSource":true, + "OverwriteExistingFiles":true, + "DeleteAfterExtract":true + }, + { + "UpdateStageName":"OpenRA Dune 2000 Download", + "UpdateSourcePlatform":"Linux", + "UpdateSource":"GithubRelease", + "UpdateSourceArgs":"OpenRA/OpenRA", + "UpdateSourceData":"OpenRA-Dune-2000-x86_64.AppImage", + "UpdateSourceTarget":"{{$FullBaseDir}}appimage", + "OverwriteExistingFiles":true + }, + { + "UpdateStageName":"OpenRA Dune 2000 Extract", + "UpdateSourcePlatform":"Linux", + "UpdateSource":"Executable", + "UpdateSourceData":"/bin/bash", + "UpdateSourceArgs":"-c 'cd ./openra/appimage && chmod +x OpenRA-Dune-2000-x86_64.AppImage && ./OpenRA-Dune-2000-x86_64.AppImage --appimage-extract && rm -f OpenRA-Dune-2000-x86_64.AppImage'" + }, + { + "UpdateStageName":"AppImage Directory Symlink Creation", + "UpdateSourcePlatform":"Linux", + "UpdateSource":"Executable", + "UpdateSourceData":"/bin/bash", + "UpdateSourceArgs":"-c 'cd ./openra && rm -f server ; ln -s appimage/squashfs-root/usr/lib/openra server'" + } +] diff --git a/openra-red-alert.kvp b/openra-red-alert.kvp new file mode 100644 index 0000000..040b7d5 --- /dev/null +++ b/openra-red-alert.kvp @@ -0,0 +1,101 @@ +Meta.DisplayName=OpenRA - Red Alert +Meta.Description=OpenRA Dedicated Server for Command & Conquer: Red Alert +Meta.OS=Windows, Linux +Meta.AarchSupport=Unknown +Meta.Arch=x86_64 +Meta.Author=Greelan +Meta.URL=https://www.openra.net/ +Meta.DisplayImageSource=url:https://github.com/OpenRA/OpenRA/blob/bleed/mods/ra/icon-3x.png?raw=true +Meta.EndpointURIFormat= +Meta.ConfigManifest=openraconfig.json +Meta.MetaConfigManifest=openrametaconfig.json +Meta.ConfigRoot=openra-red-alert.kvp +Meta.MinAMPVersion=2.4.6.4 +Meta.SpecificDockerImage= +Meta.DockerRequired=False +Meta.DockerBaseReadOnly=False +Meta.ContainerPolicy=Supported +Meta.ContainerPolicyReason= +Meta.ExtraSetupStepsURI= +Meta.Prerequsites=[] +Meta.ExtraContainerPackages=[] +Meta.ConfigReleaseState=NotSpecified +Meta.NoCommercialUsage=False +Meta.ConfigVersion=0.0.0.0 +Meta.ReleaseNotes= +Meta.BreakingReleaseNotes= +App.DisplayName=OpenRA - Red Alert +App.RootDir=./openra/ +App.BaseDirectory=./openra/ +App.SteamWorkshopDownloadLocation= +App.ExecutableWin=server\OpenRA.Server.exe +App.ExecutableLinux=server/OpenRA.Server +App.WorkingDir=server +App.LinuxCommandLineArgs= +App.WindowsCommandLineArgs= +App.CommandLineArgs={{$PlatformArgs}} Engine.EngineDir="." Engine.SupportDir="{{$FullBaseDir}}Support" Server.ListenPort="{{$ServerPort}}" Game.Mod="ra" {{$FormattedArgs}} +App.UseLinuxIOREDIR=False +App.AppSettings={} +App.EnvironmentVariables={} +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":"TCP","Port":1234,"Ref":"ServerPort","Name":"Server Port","Description":"Port for game traffic"}] +App.AdminPortRef=0 +App.PrimaryApplicationPortRef=ServerPort +App.UniversalSleepApplicationUDPPortRef=0 +App.UniversalSleepSteamQueryPortRef=0 +App.MaxUsers=12 +App.UseRandomAdminPassword=False +App.PersistRandomPassword=True +App.RemoteAdminPassword= +App.AdminMethod=STDIO +App.AdminLoginTransform=None +App.LoginTransformPrefix= +App.RCONConnectDelaySeconds=30 +App.RCONConnectRetrySeconds=15 +App.RCONHeartbeatMinutes=0 +App.RCONHeartbeatCommand=ping +App.TelnetLoginFormat={0} +App.UpdateSources=@IncludeJson[openra-red-alertupdates.json] +App.PreStartStages=[] +App.ForceUpdate=False +App.ForceUpdateReason= +App.Compatibility=None +App.SteamUpdateAnonymousLogin=False +App.SteamForceLoginPrompt=True +App.RapidStartup=False +App.MonitorChildProcess=False +App.DumpFullChildProcessTree=False +App.MonitorChildProcessWaitMs=1000 +App.MonitorChildProcessName= +App.SupportsUniversalSleep=False +App.WakeupMode=Any +App.ApplicationReadyMode=RegexMatch +App.TemplateMatchRegex={{(\$?[\w]+)}} +Console.FilterMatchRegex= +Console.FilterMatchReplacement= +Console.ThrowawayMessageRegex=(WARNING|ERROR): Shader.+ +Console.AppReadyRegex=^\[.*\] Master server communication established\.$ +Console.UserJoinRegex=^\[.*\] (?.+?) has joined the game\.$ +Console.UserLeaveRegex=\[.*\] (?.+?) has (disconnected|left)\.$ +Console.UserChatRegex=^$ +Console.UpdateAvailableRegex=^\[\d\d:\d\d:\d\d\] \[INFO\] A new server update is available! v[\d\.]+.$ +Console.MetricsRegex= +Console.SuppressLogAtStart=False +Console.ActivateLogRegex= +Console.UserActions={} +Limits.SleepMode=True +Limits.SleepOnStart=False +Limits.SleepDelayMinutes=5 +Limits.DozeDelay=2 +Limits.AutoRetryCount=5 +Limits.SleepStartThresholdSeconds=25 diff --git a/openra-red-alertupdates.json b/openra-red-alertupdates.json new file mode 100644 index 0000000..be24569 --- /dev/null +++ b/openra-red-alertupdates.json @@ -0,0 +1,54 @@ +[ + { + "UpdateStageName":"Server Directory Creation", + "UpdateSourcePlatform":"Windows", + "UpdateSource":"CreateDirectory", + "UpdateSourceArgs":"{{$FullBaseDir}}server" + }, + { + "UpdateStageName":"AppImage Directory Creation", + "UpdateSourcePlatform":"Linux", + "UpdateSource":"CreateDirectory", + "UpdateSourceArgs":"{{$FullBaseDir}}appimage" + }, + { + "UpdateStageName":"Support Directory Creation", + "UpdateSourcePlatform":"All", + "UpdateSource":"CreateDirectory", + "UpdateSourceArgs":"{{$FullBaseDir}}Support" + }, + { + "UpdateStageName":"OpenRA Download", + "UpdateSourcePlatform":"Windows", + "UpdateSource":"FetchURLFromJQ", + "UpdateSourceData":"https://api.github.com/repos/OpenRA/OpenRA/releases/latest", + "UpdateSourceArgs":"$.assets.[5].browser_download_url", + "UpdateSourceTarget":"{{$FullBaseDir}}server", + "UnzipUpdateSource":true, + "OverwriteExistingFiles":true, + "DeleteAfterExtract":true + }, + { + "UpdateStageName":"OpenRA Red Alert Download", + "UpdateSourcePlatform":"Linux", + "UpdateSource":"GithubRelease", + "UpdateSourceArgs":"OpenRA/OpenRA", + "UpdateSourceData":"OpenRA-Red-Alert-x86_64.AppImage", + "UpdateSourceTarget":"{{$FullBaseDir}}appimage", + "OverwriteExistingFiles":true + }, + { + "UpdateStageName":"OpenRA Red Alert Extract", + "UpdateSourcePlatform":"Linux", + "UpdateSource":"Executable", + "UpdateSourceData":"/bin/bash", + "UpdateSourceArgs":"-c 'cd ./openra/appimage && chmod +x OpenRA-Red-Alert-x86_64.AppImage && ./OpenRA-Red-Alert-x86_64.AppImage --appimage-extract && rm -f OpenRA-Red-Alert-x86_64.AppImage'" + }, + { + "UpdateStageName":"AppImage Directory Symlink Creation", + "UpdateSourcePlatform":"Linux", + "UpdateSource":"Executable", + "UpdateSourceData":"/bin/bash", + "UpdateSourceArgs":"-c 'cd ./openra && rm -f server ; ln -s appimage/squashfs-root/usr/lib/openra server'" + } +] diff --git a/openra-tiberian-dawn.kvp b/openra-tiberian-dawn.kvp new file mode 100644 index 0000000..0f4c83f --- /dev/null +++ b/openra-tiberian-dawn.kvp @@ -0,0 +1,101 @@ +Meta.DisplayName=OpenRA - Tiberian Dawn +Meta.Description=OpenRA Dedicated Server for Command & Conquer: Tiberian Dawn +Meta.OS=Windows, Linux +Meta.AarchSupport=Unknown +Meta.Arch=x86_64 +Meta.Author=Greelan +Meta.URL=https://www.openra.net/ +Meta.DisplayImageSource=url:https://github.com/OpenRA/OpenRA/blob/bleed/mods/cnc/icon-3x.png?raw=true +Meta.EndpointURIFormat= +Meta.ConfigManifest=openraconfig.json +Meta.MetaConfigManifest=openrametaconfig.json +Meta.ConfigRoot=openra-tiberian-dawn.kvp +Meta.MinAMPVersion=2.4.6.4 +Meta.SpecificDockerImage= +Meta.DockerRequired=False +Meta.DockerBaseReadOnly=False +Meta.ContainerPolicy=Supported +Meta.ContainerPolicyReason= +Meta.ExtraSetupStepsURI= +Meta.Prerequsites=[] +Meta.ExtraContainerPackages=[] +Meta.ConfigReleaseState=NotSpecified +Meta.NoCommercialUsage=False +Meta.ConfigVersion=0.0.0.0 +Meta.ReleaseNotes= +Meta.BreakingReleaseNotes= +App.DisplayName=OpenRA - Tiberian Dawn +App.RootDir=./openra/ +App.BaseDirectory=./openra/ +App.SteamWorkshopDownloadLocation= +App.ExecutableWin=server\OpenRA.Server.exe +App.ExecutableLinux=server/OpenRA.Server +App.WorkingDir=server +App.LinuxCommandLineArgs= +App.WindowsCommandLineArgs= +App.CommandLineArgs={{$PlatformArgs}} Engine.EngineDir="." Engine.SupportDir="{{$FullBaseDir}}Support" Server.ListenPort="{{$ServerPort}}" Game.Mod="cnc" {{$FormattedArgs}} +App.UseLinuxIOREDIR=False +App.AppSettings={} +App.EnvironmentVariables={} +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":"TCP","Port":1234,"Ref":"ServerPort","Name":"Server Port","Description":"Port for game traffic"}] +App.AdminPortRef=0 +App.PrimaryApplicationPortRef=ServerPort +App.UniversalSleepApplicationUDPPortRef=0 +App.UniversalSleepSteamQueryPortRef=0 +App.MaxUsers=16 +App.UseRandomAdminPassword=False +App.PersistRandomPassword=True +App.RemoteAdminPassword= +App.AdminMethod=STDIO +App.AdminLoginTransform=None +App.LoginTransformPrefix= +App.RCONConnectDelaySeconds=30 +App.RCONConnectRetrySeconds=15 +App.RCONHeartbeatMinutes=0 +App.RCONHeartbeatCommand=ping +App.TelnetLoginFormat={0} +App.UpdateSources=@IncludeJson[openra-tiberian-dawnupdates.json] +App.PreStartStages=[] +App.ForceUpdate=False +App.ForceUpdateReason= +App.Compatibility=None +App.SteamUpdateAnonymousLogin=False +App.SteamForceLoginPrompt=True +App.RapidStartup=False +App.MonitorChildProcess=False +App.DumpFullChildProcessTree=False +App.MonitorChildProcessWaitMs=1000 +App.MonitorChildProcessName= +App.SupportsUniversalSleep=False +App.WakeupMode=Any +App.ApplicationReadyMode=RegexMatch +App.TemplateMatchRegex={{(\$?[\w]+)}} +Console.FilterMatchRegex= +Console.FilterMatchReplacement= +Console.ThrowawayMessageRegex=(WARNING|ERROR): Shader.+ +Console.AppReadyRegex=^\[.*\] Master server communication established\.$ +Console.UserJoinRegex=^\[.*\] (?.+?) has joined the game\.$ +Console.UserLeaveRegex=\[.*\] (?.+?) has (disconnected|left)\.$ +Console.UserChatRegex=^$ +Console.UpdateAvailableRegex=^\[\d\d:\d\d:\d\d\] \[INFO\] A new server update is available! v[\d\.]+.$ +Console.MetricsRegex= +Console.SuppressLogAtStart=False +Console.ActivateLogRegex= +Console.UserActions={} +Limits.SleepMode=True +Limits.SleepOnStart=False +Limits.SleepDelayMinutes=5 +Limits.DozeDelay=2 +Limits.AutoRetryCount=5 +Limits.SleepStartThresholdSeconds=25 diff --git a/openra-tiberian-dawnupdates.json b/openra-tiberian-dawnupdates.json new file mode 100644 index 0000000..53629ff --- /dev/null +++ b/openra-tiberian-dawnupdates.json @@ -0,0 +1,54 @@ +[ + { + "UpdateStageName":"Server Directory Creation", + "UpdateSourcePlatform":"Windows", + "UpdateSource":"CreateDirectory", + "UpdateSourceArgs":"{{$FullBaseDir}}server" + }, + { + "UpdateStageName":"AppImage Directory Creation", + "UpdateSourcePlatform":"Linux", + "UpdateSource":"CreateDirectory", + "UpdateSourceArgs":"{{$FullBaseDir}}appimage" + }, + { + "UpdateStageName":"Support Directory Creation", + "UpdateSourcePlatform":"All", + "UpdateSource":"CreateDirectory", + "UpdateSourceArgs":"{{$FullBaseDir}}Support" + }, + { + "UpdateStageName":"OpenRA Download", + "UpdateSourcePlatform":"Windows", + "UpdateSource":"FetchURLFromJQ", + "UpdateSourceData":"https://api.github.com/repos/OpenRA/OpenRA/releases/latest", + "UpdateSourceArgs":"$.assets.[5].browser_download_url", + "UpdateSourceTarget":"{{$FullBaseDir}}server", + "UnzipUpdateSource":true, + "OverwriteExistingFiles":true, + "DeleteAfterExtract":true + }, + { + "UpdateStageName":"OpenRA Tiberian Dawn Download", + "UpdateSourcePlatform":"Linux", + "UpdateSource":"GithubRelease", + "UpdateSourceArgs":"OpenRA/OpenRA", + "UpdateSourceData":"OpenRA-Tiberian-Dawn-x86_64.AppImage", + "UpdateSourceTarget":"{{$FullBaseDir}}appimage", + "OverwriteExistingFiles":true + }, + { + "UpdateStageName":"OpenRA Tiberian Dawn Extract", + "UpdateSourcePlatform":"Linux", + "UpdateSource":"Executable", + "UpdateSourceData":"/bin/bash", + "UpdateSourceArgs":"-c 'cd ./openra/appimage && chmod +x OpenRA-Tiberian-Dawn-x86_64.AppImage && ./OpenRA-Tiberian-Dawn-x86_64.AppImage --appimage-extract && rm -f OpenRA-Tiberian-Dawn-x86_64.AppImage'" + }, + { + "UpdateStageName":"AppImage Directory Symlink Creation", + "UpdateSourcePlatform":"Linux", + "UpdateSource":"Executable", + "UpdateSourceData":"/bin/bash", + "UpdateSourceArgs":"-c 'cd ./openra && rm -f server ; ln -s appimage/squashfs-root/usr/lib/openra server'" + } +] diff --git a/openraconfig.json b/openraconfig.json new file mode 100644 index 0000000..31b1828 --- /dev/null +++ b/openraconfig.json @@ -0,0 +1,332 @@ +[ + { + "DisplayName":"Server Name", + "Category":"Server Settings", + "Description":"Sets the name of the server as shown publicly", + "Keywords":"server,name,Server.Name", + "FieldName":"Server.Name", + "InputType":"text", + "ParamFieldName":"Server.Name", + "IncludeInCommandLine":true, + "DefaultValue":"AMP Powered OpenRA Server", + "Placeholder":"AMP Powered OpenRA Server", + "EnumValues":{} + }, + { + "DisplayName":"MOTD", + "Category":"Server Settings", + "Description":"Sets the player welcome message (MOTD)", + "Keywords":"motd,welcome,message,motd", + "FieldName":"motd", + "InputType":"Textarea", + "ParamFieldName":"motd", + "DefaultValue":"Welcome to my server!", + "EnumValues":{} + }, + { + "DisplayName":"Default Map", + "Category":"Server Settings", + "Description":"Sets the default map to start the server with. Input as a hash that can be obtained by the utility. Blank = random map", + "Keywords":"server,map,Server.Map", + "FieldName":"Server.Map", + "InputType":"text", + "ParamFieldName":"Server.Map", + "IncludeInCommandLine":true, + "DefaultValue":"", + "EnumValues":{} + }, + { + "DisplayName":"Server Password", + "Category":"Server Settings", + "Description":"Sets the password for players to join the server. Default is no password", + "Keywords":"server,password,Server.Password", + "FieldName":"Server.Password", + "InputType":"password", + "ParamFieldName":"Server.Password", + "IncludeInCommandLine":true, + "DefaultValue":"", + "EnumValues":{} + }, + { + "DisplayName":"Advertise Online", + "Category":"Server Settings", + "Description":"If enabled, the server will be able to be advertised to the master server list", + "Keywords":"advertise,advertising,public,online,server,list,Server.AdvertiseOnline", + "FieldName":"Server.AdvertiseOnline", + "InputType":"checkbox", + "ParamFieldName":"Server.AdvertiseOnline", + "IncludeInCommandLine":true, + "DefaultValue":"True", + "EnumValues":{ + "False":"False", + "True":"True" + } + }, + { + "DisplayName":"IP Ban List", + "Category":"Server Settings", + "Description":"Comma-separated list of IP addresses that are not allowed to join the server", + "Keywords":"banlist,ips,Server.Ban", + "FieldName":"Server.Ban", + "InputType":"text", + "ParamFieldName":"Server.Ban", + "IncludeInCommandLine":true, + "DefaultValue":"", + "EnumValues":{} + }, + { + "DisplayName":"Require Authentication", + "Category":"Server Settings", + "Description":"If enabled, anonymous clients will not be allowed to join the server", + "Keywords":"require,authentication,Server.RequireAuthentication", + "FieldName":"Server.RequireAuthentication", + "InputType":"checkbox", + "ParamFieldName":"Server.RequireAuthentication", + "IncludeInCommandLine":true, + "DefaultValue":"False", + "EnumValues":{ + "False":"False", + "True":"True" + } + }, + { + "DisplayName":"Profile ID Whitelist", + "Category":"Server Settings", + "Description":"Sets a list of profile IDs for authenticated players who are allowed to join the server. Assumes Require Authentication is enabled", + "Keywords":"profile,id,whitelist,Server.ProfileIDWhitelist", + "FieldName":"Server.ProfileIDWhitelist", + "InputType":"text", + "ParamFieldName":"Server.ProfileIDWhitelist", + "IncludeInCommandLine":true, + "DefaultValue":"", + "EnumValues":{} + }, + { + "DisplayName":"Profile ID Blacklist", + "Category":"Server Settings", + "Description":"Sets a list of profile IDs for authenticated players who will be rejected from joining the server. Assumes Require Authentication is enabled", + "Keywords":"profile,id,blacklist,Server.ProfileIDBlacklist", + "FieldName":"Server.ProfileIDBlacklist", + "InputType":"text", + "ParamFieldName":"Server.ProfileIDBlacklist", + "IncludeInCommandLine":true, + "DefaultValue":"", + "EnumValues":{} + }, + { + "DisplayName":"Enable Singleplayer Mode", + "Category":"Server Settings", + "Description":"If enabled, a game can be started with just one human player in the lobby", + "Keywords":"single,player,singleplayer,Server.EnableSingleplayer", + "FieldName":"Server.EnableSingleplayer", + "InputType":"checkbox", + "ParamFieldName":"Server.EnableSingleplayer", + "IncludeInCommandLine":true, + "DefaultValue":"False", + "EnumValues":{ + "False":"False", + "True":"True" + } + }, + { + "DisplayName":"Player Limit", + "Category":"Server Settings", + "Description":"Sets the maximum number of players at one time to display in the AMP status tab. This is visual only - the actual maximum is determined by the map being played", + "Keywords":"maximum,players,clients,limit,maxplayers", + "FieldName":"$MaxUsers", + "InputType":"number", + "MinValue":"1", + "ParamFieldName":"MaxPlayers", + "DefaultValue":"12", + "Placeholder":"12", + "Suffix":"players", + "EnumValues":{} + }, + { + "DisplayName":"Query Map Repository", + "Category":"Server Settings", + "Description":"If set, the server will query map information from the Resource Center if they are not available locally", + "Keywords":"query,map,repository,resource,center,Server.QueryMapRepository", + "FieldName":"Server.QueryMapRepository", + "InputType":"checkbox", + "ParamFieldName":"Server.QueryMapRepository", + "IncludeInCommandLine":true, + "DefaultValue":"True", + "EnumValues":{ + "False":"False", + "True":"True" + } + }, + { + "DisplayName":"Enable Sync Reports", + "Category":"Server Settings", + "Description":"If set, client-side report generation will be enabled to help debug desync errors", + "Keywords":"sync,reports,Server.EnableSyncReports", + "FieldName":"Server.EnableSyncReports", + "InputType":"checkbox", + "ParamFieldName":"Server.EnableSyncReports", + "IncludeInCommandLine":true, + "DefaultValue":"False", + "EnumValues":{ + "False":"False", + "True":"True" + } + }, + { + "DisplayName":"Timestamp Format", + "Category":"Server Settings", + "Description":"Sets the timestamp format. Default is the [ISO 8601 standard](https://www.iso.org/iso-8601-date-and-time-format.html)", + "Keywords":"timestamp,format,Server.TimestampFormat", + "FieldName":"Server.TimestampFormat", + "InputType":"text", + "ParamFieldName":"Server.TimestampFormat", + "IncludeInCommandLine":true, + "DefaultValue":"yyyy-MM-ddTHH:mm:ss", + "Placeholder":"yyyy-MM-ddTHH:mm:ss", + "EnumValues":{} + }, + { + "DisplayName":"Share Anonymised IPs", + "Category":"Server Settings", + "Description":"If set, clients will be allowed to see anonymised IPs for other clients", + "Keywords":"share,anonymised,anonymized,IPs,Server.ShareAnonymizedIPs", + "FieldName":"Server.ShareAnonymizedIPs", + "InputType":"checkbox", + "ParamFieldName":"Server.ShareAnonymizedIPs", + "IncludeInCommandLine":true, + "DefaultValue":"True", + "EnumValues":{ + "False":"False", + "True":"True" + } + }, + { + "DisplayName":"Enable Geo IP", + "Category":"Server Settings", + "Description":"If set, clients will be allowed to see the country of other clients", + "Keywords":"enable,geoip,country,Server.EnableGeoIP", + "FieldName":"Server.EnableGeoIP", + "InputType":"checkbox", + "ParamFieldName":"Server.EnableGeoIP", + "IncludeInCommandLine":true, + "DefaultValue":"True", + "EnumValues":{ + "False":"False", + "True":"True" + } + }, + { + "DisplayName":"Record Replays", + "Category":"Server Settings", + "Description":"If set, the server will save replays for all games played", + "Keywords":"record,replays,Server.RecordReplays", + "FieldName":"Server.RecordReplays", + "InputType":"checkbox", + "ParamFieldName":"Server.RecordReplays", + "IncludeInCommandLine":true, + "DefaultValue":"False", + "EnumValues":{ + "False":"False", + "True":"True" + } + }, + { + "DisplayName":"Enable Lint Checks", + "Category":"Server Settings", + "Description":"If set, the server treat maps that fail the lint checks as invalid", + "Keywords":"lint,checks,Server.EnableLintChecks", + "FieldName":"Server.EnableLintChecks", + "InputType":"checkbox", + "ParamFieldName":"Server.EnableLintChecks", + "IncludeInCommandLine":true, + "DefaultValue":"True", + "EnumValues":{ + "False":"False", + "True":"True" + } + }, + { + "DisplayName":"Flood Limit Join Cooldown", + "Category":"Server Settings", + "Description":"Sets the delay before newly joined players can send chat messages", + "Keywords":"flood,limit,join,cooldown,chat,messages,Server.FloodLimitJoinCooldown", + "FieldName":"Server.FloodLimitJoinCooldown", + "InputType":"number", + "ParamFieldName":"Server.FloodLimitJoinCooldown", + "IncludeInCommandLine":true, + "DefaultValue":"5000", + "Placeholder":"5000", + "Suffix":"milliseconds", + "EnumValues":{} + }, + { + "DisplayName":"Flood Limit Interval", + "Category":"Server Settings", + "Description":"Sets the time period that player chat messages are tracked for", + "Keywords":"flood,limit,interval,chat,messages,Server.FloodLimitInterval", + "FieldName":"Server.FloodLimitInterval", + "InputType":"number", + "ParamFieldName":"Server.FloodLimitInterval", + "IncludeInCommandLine":true, + "DefaultValue":"5000", + "Placeholder":"5000", + "Suffix":"milliseconds", + "EnumValues":{} + }, + { + "DisplayName":"Flood Limit Message Count", + "Category":"Server Settings", + "Description":"Sets the number of chat messages per Flood Limit Interval that a player can send before flood is detected", + "Keywords":"flood,limit,chat,message,count,Server.FloodLimitMessageCount", + "FieldName":"Server.FloodLimitMessageCount", + "InputType":"number", + "ParamFieldName":"Server.FloodLimitMessageCount", + "IncludeInCommandLine":true, + "DefaultValue":"5", + "Placeholder":"5", + "EnumValues":{} + }, + { + "DisplayName":"Flood Limit Cooldown", + "Category":"Server Settings", + "Description":"Sets the delay before players can send chat messages after flood was detected", + "Keywords":"flood,limit,cooldown,chat,messages.Server.FloodLimitCooldown", + "FieldName":"Server.FloodLimitCooldown", + "InputType":"number", + "ParamFieldName":"Server.FloodLimitCooldown", + "IncludeInCommandLine":true, + "DefaultValue":"15000", + "Placeholder":"15000", + "Suffix":"milliseconds", + "EnumValues":{} + }, + { + "DisplayName":"Enable UPnP", + "Category":"Server Settings", + "Description":"If set, UPnP/NAT-PMP enabled devices will be searched for automatic port forwarding", + "Keywords":"discover,upnp,nat-pmp,Server.DiscoverNatDevices", + "FieldName":"Server.DiscoverNatDevices", + "InputType":"checkbox", + "ParamFieldName":"Server.DiscoverNatDevices", + "IncludeInCommandLine":true, + "DefaultValue":"False", + "EnumValues":{ + "False":"False", + "True":"True" + } + }, + { + "DisplayName":"UPnP Port Mapping Lifetime", + "Category":"Server Settings", + "Description":"Sets the time period for UPnP/NAT-PMP mappings to last", + "Keywords":"nat,port,mapping,lifetime,Server.NatPortMappingLifetime", + "FieldName":"Server.NatPortMappingLifetime", + "InputType":"number", + "ParamFieldName":"Server.NatPortMappingLifetime", + "IncludeInCommandLine":true, + "DefaultValue":"36000", + "Placeholder":"36000", + "Suffix":"seconds", + "EnumValues":{} + } +] diff --git a/openrametaconfig.json b/openrametaconfig.json new file mode 100644 index 0000000..b1b37e7 --- /dev/null +++ b/openrametaconfig.json @@ -0,0 +1,15 @@ +[ + { + "ConfigFile":"Support/motd.txt", + "ConfigType":"kvp", + "ConfigFormat":"{0}{1}", + "Subsections":[ + { + "Heading":"$root", + "SettingMappings":{ + "":"motd" + } + } + ] + } +]