Meta.DisplayName=Portal Knights Meta.Description=Portal Knights Dedicated Server Meta.OS=Windows, Linux Meta.Arch=x86_64 Meta.Author=IceOfWraith Meta.URL=https://store.steampowered.com/app/374040/Portal_Knights/ Meta.DisplayImageSource=steam:374040 Meta.EndpointURIFormat=steam://connect/{0} Meta.ConfigManifest=portal-knightsconfig.json Meta.MetaConfigManifest=portal-knightsmetaconfig.json Meta.ConfigRoot=portal-knights.kvp Meta.MinAMPVersion= Meta.SpecificDockerImage=cubecoders/ampbase:wine Meta.DockerRequired=False Meta.ContainerPolicy=SupportedOnWindows, RecommendedOnLinux Meta.ContainerPolicyReason=The server requires Wine and Xvfb to run on Linux. Using a container avoids the need to install these dependencies on the host. Meta.Prerequsites=[] Meta.ConfigReleaseState=NotSpecified App.DisplayName=Portal Knights App.RootDir=./portal-knights/ App.BaseDirectory=./portal-knights/374040/ App.ExecutableWin=374040\pk_dedicated_server.exe App.ExecutableLinux=/usr/bin/xvfb-run App.WorkingDir=374040 App.LinuxCommandLineArgs=-a wine "./pk_dedicated_server.exe" App.WindowsCommandLineArgs= App.CommandLineArgs={{$PlatformArgs}} -config "{{$FullBaseDir}}server_config.json" -log Server.log App.UseLinuxIOREDIR=False App.AppSettings={} App.EnvironmentVariables={"LD_LIBRARY_PATH":"./linux64:%LD_LIBRARY_PATH%","SteamAppId":"374040","WINEPREFIX":"{{$FullRootDir}}.wine","WINEARCH":"win64","WINEDEBUG":"-all"} 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":28001,"Offset":0,"Range":1,"Ref":"GamePort","Name":"Game Port","Description":"Main game port","ChildPorts":null}] App.AdminPortRef= App.PrimaryApplicationPortRef=GamePort App.UniversalSleepApplicationUDPPortRef= App.UniversalSleepSteamQueryPortRef= 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": "374040","UpdateSourceArgs":"374040", "ForceDownloadPlatform": "Windows"},{"UpdateStageName": "Server Extract","UpdateSourcePlatform": "Windows", "UpdateSource": "Executable", "UpdateSourceData": "cmd.exe", "UpdateSourceArgs": "/C cd portal-knights\\374040 && tar -xf dedicated_server.zip"},{"UpdateStageName": "Server Extract","UpdateSourcePlatform": "Linux", "UpdateSource": "Executable", "UpdateSourceData": "/bin/bash", "UpdateSourceArgs": "-c 'cd portal-knights/374040 && unzip -u dedicated_server.zip'"},{"UpdateStageName":"Config File Download","UpdateSourcePlatform":"All","UpdateSource":"FetchURL","UpdateSourceData":"https://github.com/CubeCoders/AMPTemplates/raw/main/portal-knightsserver_config.json","UpdateSourceTarget":"{{$FullBaseDir}}","UpdateSourceArgs":"server_config.json","OverwriteExistingFiles":false},{"UpdateStageName":"Initialise Wine","UpdateSourcePlatform":"Linux","UpdateSource":"Executable","UpdateSourceData":"/bin/bash","UpdateSourceArgs":"-c 'WINEPREFIX=\"{{$FullRootDir}}.wine\" WINEARCH=win64 /usr/bin/wineboot --init --update'"}] App.Compatibility=None App.SteamUpdateAnonymousLogin=False App.SteamForceLoginPrompt=False App.RapidStartup=False App.SupportsUniversalSleep=False App.WakeupMode=Any App.ApplicationReadyMode=RegexMatch App.TemplateMatchRegex={{(\$?[\w]+)}} App.MonitorChildProcess=True App.MonitorChildProcessWaitMs=3000 App.MonitorChildProcessName=wine64 Console.FilterMatchRegex= Console.FilterMatchReplacement= Console.ThrowawayMessageRegex=^((WARNING|ERROR): Shader.+|\d+:err:ole:.*|Could not find Wine Gecko.*)$ Console.AppReadyRegex=^.*\'ReadyToServe\'\:\:Execute .*$ Console.UserJoinRegex=^$ Console.UserLeaveRegex=^$ 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