From 6173459bf14ce4f53aa12f9840b0806fae7900c1 Mon Sep 17 00:00:00 2001 From: Greelan <53196309+Greelan@users.noreply.github.com> Date: Thu, 10 Nov 2022 06:29:17 +1100 Subject: [PATCH] Add Impostor (#226) --- impostor.kvp | 88 +++++++++++++++++++++++++ impostorconfig.json | 142 ++++++++++++++++++++++++++++++++++++++++ impostormetaconfig.json | 7 ++ impostorupdates.json | 101 ++++++++++++++++++++++++++++ 4 files changed, 338 insertions(+) create mode 100644 impostor.kvp create mode 100644 impostorconfig.json create mode 100644 impostormetaconfig.json create mode 100644 impostorupdates.json diff --git a/impostor.kvp b/impostor.kvp new file mode 100644 index 0000000..b1c2b35 --- /dev/null +++ b/impostor.kvp @@ -0,0 +1,88 @@ +Meta.DisplayName=Impostor - Among Us Server +Meta.Description=Impostor Dedicated Server - an open source private server implementation for Among Us +Meta.OS=Windows, Linux +Meta.Arch=x86_64 +Meta.Author=Greelan +Meta.URL=https://github.com/Impostor/Impostor +Meta.DisplayImageSource=steam:945360 +Meta.EndpointURIFormat= +Meta.ConfigManifest=impostorconfig.json +Meta.MetaConfigManifest=impostormetaconfig.json +Meta.ConfigRoot=impostor.kvp +Meta.MinAMPVersion=2.4.0.10 +Meta.SpecificDockerImage= +Meta.DockerRequired=False +Meta.ContainerPolicy=Supported +Meta.ContainerPolicyReason= +Meta.Prerequsites=[] +Meta.ExtraContainerPackages=[] +Meta.ConfigReleaseState=NotSpecified +Meta.NoCommercialUsage=False +App.DisplayName=Impostor +App.RootDir=./impostor/ +App.BaseDirectory=./impostor/ +App.ExecutableWin=Impostor.Server.exe +App.ExecutableLinux=Impostor.Server +App.WorkingDir= +App.LinuxCommandLineArgs= +App.WindowsCommandLineArgs= +App.CommandLineArgs={{$PlatformArgs}} {{$FormattedArgs}} +App.UseLinuxIOREDIR=False +App.AppSettings={} +App.EnvironmentVariables={"DOTNET_ROOT":"{{$FullBaseDir}}dotnet"} +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":"UDP","Port":22023,"Ref":"GamePort","Name":"Game Port","Description":"Port for game traffic"}] +App.AdminPortRef=0 +App.PrimaryApplicationPortRef=GamePort +App.UniversalSleepApplicationUDPPortRef=GamePort +App.UniversalSleepSteamQueryPortRef=0 +App.MaxUsers=100 +App.UseRandomAdminPassword=False +App.RemoteAdminPassword=Password123 +App.AdminMethod=STDIO +App.AdminLoginTransform=None +App.RCONConnectDelaySeconds=5 +App.RCONConnectRetrySeconds=5 +App.RCONHeartbeatMinutes=0 +App.RCONHeartbeatCommand=ping +App.TelnetLoginFormat=login {0} +App.UpdateSources=@IncludeJson[impostorupdates.json] +App.Compatibility=None +App.SteamUpdateAnonymousLogin=False +App.SteamForceLoginPrompt=False +App.RapidStartup=False +App.MonitorChildProcess=False +App.MonitorChildProcessWaitMs=100 +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=^\[\d+:\d+:\d+ INF\] Application started\. Press Ctrl\+C to shut down\.$ +Console.UserJoinRegex=^\[\d+:\d+:\d+ INF\] (?:.+?) - Player (?.+?) \((?.+?)\) is joining\.$ +Console.UserLeaveRegex=^\[\d+:\d+:\d+ INF\] (?:.+?) - Player (?.+?) \((?.+?)\) has 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=False +Limits.SleepOnStart=False +Limits.SleepDelayMinutes=5 +Limits.DozeDelay=2 +Limits.AutoRetryCount=5 +Limits.SleepStartThresholdSeconds=25 diff --git a/impostorconfig.json b/impostorconfig.json new file mode 100644 index 0000000..b76dac1 --- /dev/null +++ b/impostorconfig.json @@ -0,0 +1,142 @@ +[ + { + "DisplayName":"Public IP", + "Category":"Server Settings", + "Description":"", + "Keywords":"", + "FieldName":"$ExternalIP", + "InputType":"text", + "IsFlagArgument":false, + "Hidden":true, + "ParamFieldName":"$.Server.PublicIp", + "IncludeInCommandLine":false, + "EnumValues":{} + }, + { + "DisplayName":"Public Port", + "Category":"Server Settings", + "Description":"", + "Keywords":"", + "FieldName":"$GamePort", + "InputType":"number", + "IsFlagArgument":false, + "Hidden":true, + "ParamFieldName":"$.Server.PublicPort", + "IncludeInCommandLine":false, + "EnumValues":{} + }, + { + "DisplayName":"IP Binding", + "Category":"Server Settings", + "Description":"", + "Keywords":"", + "FieldName":"$ApplicationIPBinding", + "InputType":"text", + "IsFlagArgument":false, + "Hidden":true, + "ParamFieldName":"$.Server.ListenIp", + "IncludeInCommandLine":false, + "EnumValues":{} + }, + { + "DisplayName":"Listen Port", + "Category":"Server Settings", + "Description":"", + "Keywords":"", + "FieldName":"$GamePort", + "InputType":"number", + "IsFlagArgument":false, + "Hidden":true, + "ParamFieldName":"$.Server.ListenPort", + "IncludeInCommandLine":false, + "EnumValues":{} + }, + { + "DisplayName":"Build Stream", + "Category":"Server Settings", + "Description":"Sets the build stream for the server - either the mainline release stream, or the nightly (CI) stream. Back up configuration and update the server!", + "Keywords":"build,stream", + "FieldName":"BuildStream", + "InputType":"enum", + "IsFlagArgument":false, + "ParamFieldName":"BuildStream", + "IncludeInCommandLine":false, + "DefaultValue":"Release", + "EnumValues":{ + "Release":"Mainline (Default)", + "Nightly":"Nightly" + } + }, + { + "DisplayName":"Server Version", + "Category":"Server Settings", + "Description":"Sets the server version (either a [release](https://github.com/Impostor/Impostor/releases) version or a [nightly](https://nightly.link/Impostor/Impostor/workflows/ci/master) version) to install. For nightly, you must include the build number, such as \"1.7.3-ci.513\". Back up configuration and update the server!", + "Keywords":"server,version", + "FieldName":"ServerVersion", + "InputType":"text", + "IsFlagArgument":false, + "ParamFieldName":"ServerVersion", + "IncludeInCommandLine":false, + "DefaultValue":"1.7.2", + "Placeholder":"1.7.2 | 1.7.3-ci.513", + "EnumValues":{} + }, + { + "DisplayName":"Dotnet Version", + "Category":"Server Settings", + "Description":"Sets the [ASP.NET Core 6.0 version](https://dotnet.microsoft.com/en-us/download/dotnet/6.0) to install. Back up configuration and update the server!", + "Keywords":"dotnet,version", + "FieldName":"DotnetVersion", + "InputType":"text", + "IsFlagArgument":false, + "ParamFieldName":"DotnetVersion", + "IncludeInCommandLine":false, + "DefaultValue":"6.0.10", + "Placeholder":"6.0.10", + "EnumValues":{} + }, + { + "DisplayName":"Client Configuration", + "Category":"Server Settings", + "Description":"For a player to connect to the server, they must [configure their Among Us client](https://impostor.github.io/Impostor/)", + "Keywords":"client,configuration", + "FieldName":"", + "InputType":"hidden", + "IsFlagArgument":false, + "ParamFieldName":"", + "IncludeInCommandLine":false, + "EnumValues":{} + }, + { + "DisplayName":"Enable Anticheat", + "Category":"Server Settings", + "Description":"If set, anticheat will be enabled", + "Keywords":"anti,cheat", + "FieldName":"AntiCheat_Enabled", + "InputType":"checkbox", + "IsFlagArgument":false, + "ParamFieldName":"$.AntiCheat.Enabled", + "IncludeInCommandLine":false, + "DefaultValue":"true", + "EnumValues":{ + "False":"false", + "True":"true" + } + }, + { + "DisplayName":"Ban IP", + "Category":"Server Settings", + "Description":"If enabled, anticheat will ban a hacking player from the server rather than just kicking them. The banned player will not be able to rejoin that game", + "Keywords":"anti,cheat,ban", + "FieldName":"AntiCheat_BanIpFromGame", + "InputType":"checkbox", + "IsFlagArgument":false, + "ParamFieldName":"$.AntiCheat.BanIpFromGame", + "IncludeInCommandLine":false, + "DefaultValue":"true", + "EnumValues":{ + "False":"false", + "True":"true" + } + } +] \ No newline at end of file diff --git a/impostormetaconfig.json b/impostormetaconfig.json new file mode 100644 index 0000000..dd38b8f --- /dev/null +++ b/impostormetaconfig.json @@ -0,0 +1,7 @@ +[ + { + "ConfigFile":"config.json", + "AutoMap":true, + "ConfigType":"json" + } +] \ No newline at end of file diff --git a/impostorupdates.json b/impostorupdates.json new file mode 100644 index 0000000..11fc2e6 --- /dev/null +++ b/impostorupdates.json @@ -0,0 +1,101 @@ +[ + { + "UpdateStageName":"Create Dotnet Directory", + "UpdateSourcePlatform":"All", + "UpdateSource":"CreateDirectory", + "UpdateSourceArgs":"{{$FullBaseDir}}dotnet" + }, + { + "UpdateStageName":"Create Libraries Directory", + "UpdateSourcePlatform":"Linux", + "UpdateSource":"CreateDirectory", + "UpdateSourceArgs":"{{$FullBaseDir}}libraries" + }, + { + "UpdateStageName":"Create Plugins Directory", + "UpdateSourcePlatform":"Linux", + "UpdateSource":"CreateDirectory", + "UpdateSourceArgs":"{{$FullBaseDir}}plugins" + }, + { + "UpdateStageName":"ASP.NET Core Runtime Download", + "UpdateSourcePlatform":"Windows", + "UpdateSource":"FetchURL", + "UpdateSourceData":"https://dotnetcli.azureedge.net/dotnet/aspnetcore/Runtime/{{DotnetVersion}}/aspnetcore-runtime-{{DotnetVersion}}-win-x64.zip", + "UpdateSourceTarget":"{{$FullBaseDir}}dotnet", + "UnzipUpdateSource":true, + "OverwriteExistingFiles":true, + "DeleteAfterExtract":true + }, + { + "UpdateStageName":"ASP.NET Core Runtime Download", + "UpdateSourcePlatform":"Linux", + "UpdateSource":"FetchURL", + "UpdateSourceData":"https://dotnetcli.azureedge.net/dotnet/aspnetcore/Runtime/{{DotnetVersion}}/aspnetcore-runtime-{{DotnetVersion}}-linux-x64.tar.gz", + "UpdateSourceTarget":"{{$FullBaseDir}}", + "UpdateSourceTarget":"{{$FullBaseDir}}dotnet", + "UnzipUpdateSource":true, + "OverwriteExistingFiles":true, + "DeleteAfterExtract":true + }, + { + "UpdateStageName":"Impostor Server Download", + "UpdateSourcePlatform":"Windows", + "UpdateSource":"FetchURL", + "UpdateSourceData":"https://github.com/Impostor/Impostor/releases/download/v{{ServerVersion}}/Impostor-Server_{{ServerVersion}}_win-x64.zip", + "UpdateSourceTarget":"{{$FullBaseDir}}", + "UnzipUpdateSource":true, + "OverwriteExistingFiles":true, + "DeleteAfterExtract":true, + "UpdateSourceConditionSetting":"BuildStream", + "UpdateSourceConditionValue":"Release" + }, + { + "UpdateStageName":"Impostor Server Download", + "UpdateSourcePlatform":"Linux", + "UpdateSource":"FetchURL", + "UpdateSourceData":"https://github.com/Impostor/Impostor/releases/download/v{{ServerVersion}}/Impostor-Server_{{ServerVersion}}_linux-x64.tar.gz", + "UpdateSourceTarget":"{{$FullBaseDir}}", + "UnzipUpdateSource":true, + "OverwriteExistingFiles":true, + "DeleteAfterExtract":true, + "UpdateSourceConditionSetting":"BuildStream", + "UpdateSourceConditionValue":"Release" + }, + { + "UpdateStageName":"Impostor Server Download", + "UpdateSourcePlatform":"Windows", + "UpdateSource":"FetchURL", + "UpdateSourceData":"https://nightly.link/Impostor/Impostor/workflows/ci/master/Impostor-Server_{{ServerVersion}}_win-x64.zip", + "UpdateSourceTarget":"{{$FullBaseDir}}", + "UnzipUpdateSource":true, + "OverwriteExistingFiles":true, + "DeleteAfterExtract":true, + "UpdateSourceConditionSetting":"BuildStream", + "UpdateSourceConditionValue":"Nightly" + }, + { + "UpdateStageName":"Impostor Server Download", + "UpdateSourcePlatform":"Linux", + "UpdateSource":"FetchURL", + "UpdateSourceData":"https://nightly.link/Impostor/Impostor/workflows/ci/master/Impostor-Server_{{ServerVersion}}_linux-x64.zip", + "UpdateSourceTarget":"{{$FullBaseDir}}", + "UnzipUpdateSource":true, + "OverwriteExistingFiles":true, + "DeleteAfterExtract":true, + "UpdateSourceConditionSetting":"BuildStream", + "UpdateSourceConditionValue":"Nightly" + }, + { + "UpdateStageName":"Pause Update Stages", + "UpdateSourcePlatform":"Linux", + "UpdateSource":"Pause", + "UpdateSourceArgs":"2" + }, + { + "UpdateStageName":"Set Executable Flag", + "UpdateSourcePlatform":"Linux", + "UpdateSource":"SetExecutableFlag", + "UpdateSourceArgs":"{{$FullBaseDir}}Impostor.Server" + } +] \ No newline at end of file