From 96aa81e8c5887c56cf01dcb5fe0954e27bb5f751 Mon Sep 17 00:00:00 2001 From: Greelan <53196309+Greelan@users.noreply.github.com> Date: Thu, 29 Sep 2022 14:37:33 +1000 Subject: [PATCH] Add Assetto Corsa Competizione (#197) --- assetto-corsa-comp.kvp | 81 ++++++ assetto-corsa-compconfig.json | 445 ++++++++++++++++++++++++++++++ assetto-corsa-compmetaconfig.json | 26 ++ 3 files changed, 552 insertions(+) create mode 100644 assetto-corsa-comp.kvp create mode 100644 assetto-corsa-compconfig.json create mode 100644 assetto-corsa-compmetaconfig.json diff --git a/assetto-corsa-comp.kvp b/assetto-corsa-comp.kvp new file mode 100644 index 0000000..0c9d1a5 --- /dev/null +++ b/assetto-corsa-comp.kvp @@ -0,0 +1,81 @@ +Meta.DisplayName=Assetto Corsa Competizione +Meta.Description=Assetto Corsa Competizione Dedicated Server +Meta.OS=Windows, Linux +Meta.Arch=x86_64 +Meta.Author=Greelan +Meta.URL=https://steamdb.info/app/805550 +Meta.DisplayImageSource=steam:805550 +Meta.EndpointURIFormat= +Meta.ConfigManifest=assetto-corsa-compconfig.json +Meta.MetaConfigManifest=assetto-corsa-compmetaconfig.json +Meta.ConfigRoot=assetto-corsa-comp.kvp +Meta.MinAMPVersion=2.4.0.2 +Meta.SpecificDockerImage=cubecoders/ampbase:wine +Meta.DockerRequired=False +Meta.ContainerPolicy=Recommended +Meta.Prerequsites=[] +Meta.ConfigReleaseState=NotSpecified +App.DisplayName=Assetto Corsa Competizione +App.RootDir=./assetto-corsa-comp/ +App.BaseDirectory=./assetto-corsa-comp/1430110 +App.ExecutableWin=1430110\server\accServer.exe +App.ExecutableLinux=/usr/bin/xvfb-run +App.WorkingDir=1430110/server +App.LinuxCommandLineArgs=-a wine "./accServer.exe" +App.WindowsCommandLineArgs= +App.CommandLineArgs={{$PlatformArgs}} {{$FormattedArgs}} +App.AppSettings={} +App.EnvironmentVariables={"LD_LIBRARY_PATH":"{{$FullBaseDir}}linux64:%LD_LIBRARY_PATH%","SteamAppId":"805550"} +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":"UDP","Port":9231,"Ref":"UDPPort","Name":"UDP Port","Description":"Port for game traffic"},{"Protocol":"TCP","Port":9232,"Ref":"TCPPort","Name":"TCP Port","Description":"Port for server query and ping"}] +App.PrimaryApplicationPortRef=UDPPort +App.UniversalSleepApplicationUDPPortRef=UDPPort +App.UniversalSleepSteamQueryPortRef=TCPPort +App.MaxUsers=85 +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 Server Download","UpdateSourcePlatform":"All","UpdateSource":"SteamCMD","UpdateSourceData":"1430110","ForceDownloadPlatform":"Windows"}] +App.Compatibility=LinuxBufferedConsole, WindowsBufferedConsole +App.SteamUpdateAnonymousLogin=False +App.SteamForceLoginPrompt=False +App.RapidStartup=False +App.MonitorChildProcess=True +App.MonitorChildProcessWaitMs=2000 +App.MonitorChildProcessName=wine64 +App.SupportsUniversalSleep=False +App.WakeupMode=Any +App.ApplicationReadyMode=RegexMatch +App.TemplateMatchRegex={{(\$?[\w]+)}} +Console.FilterMatchRegex= +Console.FilterMatchReplacement= +Console.ThrowawayMessageRegex=^((WARNING|ERROR): Shader.+|\d+:err:ole:.*|Could not find Wine Gecko.*)$ +Console.AppReadyRegex=^Listening to TCP \d+ \| UDP \d+$ +Console.UserJoinRegex=^New connection request: id (?.+?) (?.+?) (?.+?) on car model \d+$ +Console.UserLeaveRegex=^Client (?.+?) closed the connection \(\d+\)$ +Console.UserChatRegex=^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=25 diff --git a/assetto-corsa-compconfig.json b/assetto-corsa-compconfig.json new file mode 100644 index 0000000..a604696 --- /dev/null +++ b/assetto-corsa-compconfig.json @@ -0,0 +1,445 @@ +[ + { + "DisplayName":"UDP Port", + "Category":"ACC Server Settings", + "Description":"", + "Keywords":"", + "FieldName":"$UDPPort", + "InputType":"number", + "Hidden":true, + "IsFlagArgument":false, + "ParamFieldName":"udpPort", + "IncludeInCommandLine":false, + "EnumValues":{} + }, + { + "DisplayName":"TCP Port", + "Category":"ACC Server Settings", + "Description":"", + "Keywords":"", + "FieldName":"$TCPPort", + "InputType":"number", + "Hidden":true, + "IsFlagArgument":false, + "ParamFieldName":"tcpPort", + "IncludeInCommandLine":false, + "EnumValues":{} + }, + { + "DisplayName":"Server Name", + "Category":"ACC Server Settings", + "Description":"The name of the server as it appears publicly", + "Keywords":"name", + "FieldName":"serverName", + "InputType":"text", + "IsFlagArgument":false, + "ParamFieldName":"serverName", + "IncludeInCommandLine":false, + "DefaultValue":"Assetto Corsa Competizione Server - Powered by AMP", + "EnumValues":{} + }, + { + "DisplayName":"Server Password", + "Category":"ACC Server Settings", + "Description":"Password to connect to the server as a player. Default is no password", + "Keywords":"password", + "FieldName":"password", + "InputType":"password", + "IsFlagArgument":false, + "ParamFieldName":"password", + "IncludeInCommandLine":false, + "DefaultValue":"", + "EnumValues":{} + }, + { + "DisplayName":"Spectator Password", + "Category":"ACC Server Settings", + "Description":"Password to connect to the server as a spectator. Must be different to server password if both are set. Default is no password", + "Keywords":"spectator,password", + "FieldName":"spectatorPassword", + "InputType":"password", + "IsFlagArgument":false, + "ParamFieldName":"spectatorPassword", + "IncludeInCommandLine":false, + "DefaultValue":"", + "EnumValues":{} + }, + { + "DisplayName":"Admin Password", + "Category":"ACC Server Settings", + "Description":"In-game \"admin\" user password. NOTE: Change this after installing the server!", + "Keywords":"admin,password", + "FieldName":"adminPassword", + "InputType":"password", + "IsFlagArgument":false, + "ParamFieldName":"adminPassword", + "IncludeInCommandLine":false, + "DefaultValue":"", + "EnumValues":{} + }, + { + "DisplayName":"Connection Limit", + "Category":"ACC Server Settings", + "Description":"Maximum number of players and spectators that can connect to the server at one time", + "Keywords":"connection,limit", + "FieldName":"$MaxUsers", + "InputType":"number", + "IsFlagArgument":false, + "ParamFieldName":"maxConnections", + "IncludeInCommandLine":false, + "DefaultValue":"85", + "Suffix":"connections", + "EnumValues":{} + }, + { + "DisplayName":"Player Limit", + "Category":"ACC Server Settings", + "Description":"Maximum number of players that may connect to the server at one time", + "Keywords":"players,limit", + "FieldName":"maxCarSlots", + "InputType":"number", + "IsFlagArgument":false, + "ParamFieldName":"maxCarSlots", + "IncludeInCommandLine":false, + "DefaultValue":"30", + "Suffix":"players", + "EnumValues":{} + }, + { + "DisplayName":"Track Medals Required", + "Category":"ACC Server Settings", + "Description":"Sets the number of track medals that a player must have", + "Keywords":"track,medal", + "FieldName":"trackMedalsRequirement", + "InputType":"enum", + "IsFlagArgument":false, + "ParamFieldName":"trackMedalsRequirement", + "IncludeInCommandLine":false, + "DefaultValue":"3", + "EnumValues":{ + "0":"None", + "1":"One", + "2":"Two", + "3":"Three" + } + }, + { + "DisplayName":"Safety Rating Required", + "Category":"ACC Server Settings", + "Description":"Sets the Safety Rating (SA) that a player must have to join the server. -1 = no rating", + "Keywords":"safety,ratimg", + "FieldName":"safetyRatingRequirement", + "InputType":"number", + "MinValue":"-1", + "MaxValue":"100", + "IsFlagArgument":false, + "ParamFieldName":"safetyRatingRequirement", + "IncludeInCommandLine":false, + "DefaultValue":"49", + "Placeholder":"-1 or 0 - 100", + "EnumValues":{} + }, + { + "DisplayName":"Racecraft Rating Required", + "Category":"ACC Server Settings", + "Description":"Sets the Racecraft Rating (RC) that a player must have to join the server. -1 = no rating", + "Keywords":"racecraft,rating", + "FieldName":"racecraftRatingRequirement", + "InputType":"number", + "MinValue":"-1", + "MaxValue":"100", + "IsFlagArgument":false, + "ParamFieldName":"racecraftRatingRequirement", + "IncludeInCommandLine":false, + "DefaultValue":"-1", + "Placeholder":"-1 or 0 - 100", + "EnumValues":{} + }, + { + "DisplayName":"Save Leaderboard", + "Category":"ACC Server Settings", + "Description":"If enabled, leaderboards are saved to the \"results\" folder", + "Keywords":"leaderboard", + "FieldName":"dumpLeaderboards", + "InputType":"checkbox", + "IsFlagArgument":false, + "ParamFieldName":"dumpLeaderboards", + "IncludeInCommandLine":false, + "DefaultValue":"0", + "EnumValues":{ + "False":"0", + "True":"1" + } + }, + { + "DisplayName":"Save Entry List", + "Category":"ACC Server Settings", + "Description":"If enabled, entry lists are saved at the end of any qualifying session", + "Keywords":"dump,entry,list", + "FieldName":"dumpEntryList", + "InputType":"checkbox", + "IsFlagArgument":false, + "ParamFieldName":"dumpEntryList", + "IncludeInCommandLine":false, + "DefaultValue":"0", + "EnumValues":{ + "False":"0", + "True":"1" + } + }, + { + "DisplayName":"Central Entry List Path", + "Category":"ACC Server Settings", + "Description":"Sets a custom path to a central entry list, for sharing across servers", + "Keywords":"central,entry,list,path", + "FieldName":"centralEntryListPath", + "InputType":"text", + "IsFlagArgument":false, + "ParamFieldName":"centralEntryListPath", + "IncludeInCommandLine":false, + "DefaultValue":"", + "EnumValues":{} + }, + { + "DisplayName":"Track Selection", + "Category":"ACC Gameplay Settings", + "Description":"Sets the track for the server", + "Keywords":"track", + "FieldName":"track", + "InputType":"enum", + "IsFlagArgument":false, + "ParamFieldName":"track", + "IncludeInCommandLine":false, + "DefaultValue":"mount_panorama", + "EnumValues":{ + "barcelona":"Barcelona", + "brands_hatch":"Brands Hatch", + "donington":"Donington", + "hungaroring":"Hungaroring", + "imola":"Imola", + "kyalami":"Kyalami", + "laguna_seca":"Laguna Seca", + "misano":"Misano", + "monza":"Monza", + "mount_panorama":"Mount Panorama", + "nurburgring":"Nurburgring", + "oulton_park":"Oulton Park", + "paul_ricard":"Paul Ricard", + "silverstone":"Silverstone", + "snetterton":"Snetterton", + "spa":"Spa", + "suzuka":"Suzuka", + "zandvoort":"Zandvoort", + "zolder":"Zolder" + } + }, + { + "DisplayName":"Car Group Selection", + "Category":"ACC Gameplay Settings", + "Description":"Sets the car group that is allowed on the server", + "Keywords":"car,group", + "FieldName":"carGroup", + "InputType":"enum", + "IsFlagArgument":false, + "ParamFieldName":"carGroup", + "IncludeInCommandLine":false, + "DefaultValue":"GT4", + "EnumValues":{ + "FreeForAll":"Free For All", + "GT3":"GT3", + "GT4":"GT4", + "GTC":"GTC", + "TCX":"TCX" + } + }, + { + "DisplayName":"Lock Race", + "Category":"ACC Gameplay Settings", + "Description":"If enabled, the server will not allow players to join during a race session", + "Keywords":"race,locked", + "FieldName":"isRaceLocked", + "InputType":"checkbox", + "IsFlagArgument":false, + "ParamFieldName":"isRaceLocked", + "IncludeInCommandLine":false, + "DefaultValue":"1", + "EnumValues":{ + "False":"0", + "True":"1" + } + }, + { + "DisplayName":"Enable Random Track", + "Category":"ACC Gameplay Settings", + "Description":"If enabled, the server will change to a random track when the last driver leaves. \"Track Selection\" will only apply for the first session", + "Keywords":"random,track,empty", + "FieldName":"randomizeTrackWhenEmpty", + "InputType":"checkbox", + "IsFlagArgument":false, + "ParamFieldName":"randomizeTrackWhenEmpty", + "IncludeInCommandLine":false, + "DefaultValue":"0", + "EnumValues":{ + "False":"0", + "True":"1" + } + }, + { + "DisplayName":"Enable Auto Disqualification", + "Category":"ACC Gameplay Settings", + "Description":"If this is disabled, drivers receive 30 second penalties rather than automatic disqualification, allowing time for incident review", + "Keywords":"auto,dq,disqualification", + "FieldName":"allowAutoDQ", + "InputType":"checkbox", + "IsFlagArgument":false, + "ParamFieldName":"allowAutoDQ", + "IncludeInCommandLine":false, + "DefaultValue":"1", + "EnumValues":{ + "False":"0", + "True":"1" + } + }, + { + "DisplayName":"Formation Lap Length", + "Category":"ACC Gameplay Settings", + "Description":"Sets the formation lap length. \"Long\" is only usable on private servers", + "Keywords":"formation,lap", + "FieldName":"shortFormationLap", + "InputType":"enum", + "IsFlagArgument":false, + "ParamFieldName":"shortFormationLap", + "IncludeInCommandLine":false, + "DefaultValue":"1", + "EnumValues":{ + "0":"Long", + "1":"Short" + } + }, + { + "DisplayName":"Formation Lap Type", + "Category":"ACC Gameplay Settings", + "Description":"Sets the formation lap type", + "Keywords":"formation,lap,type", + "FieldName":"formationLapType", + "InputType":"enum", + "IsFlagArgument":false, + "ParamFieldName":"formationLapType", + "IncludeInCommandLine":false, + "DefaultValue":"3", + "EnumValues":{ + "0":"Old limiter lap", + "1":"Free lap", + "3":"Default formation" + } + }, + { + "DisplayName":"Race Wait Time", + "Category":"ACC Gameplay Settings", + "Description":"Sets the preparation time before a race (minimum 30s)", + "Keywords":"race,waiting,time", + "FieldName":"preRaceWaitingTimeSeconds", + "InputType":"number", + "MinValue":"30", + "IsFlagArgument":false, + "ParamFieldName":"preRaceWaitingTimeSeconds", + "IncludeInCommandLine":false, + "DefaultValue":"60", + "Suffix":"seconds", + "Placeholder":"60", + "EnumValues":{} + }, + { + "DisplayName":"Race Over Time", + "Category":"ACC Gameplay Settings", + "Description":"Sets the time to forcibly close a session once the timer reaches 0:00 (recommended 107% of the expected laptime)", + "Keywords":"race,over,time", + "FieldName":"sessionOverTimeSeconds", + "InputType":"number", + "IsFlagArgument":false, + "ParamFieldName":"sessionOverTimeSeconds", + "IncludeInCommandLine":false, + "DefaultValue":"120", + "Suffix":"seconds", + "Placeholder":"120", + "EnumValues":{} + }, + { + "DisplayName":"Ambient Temperature", + "Category":"ACC Gameplay Settings", + "Description":"Sets the baseline ambient temperature in °C", + "Keywords":"ambient,temp", + "FieldName":"ambientTemp", + "InputType":"number", + "IsFlagArgument":false, + "ParamFieldName":"ambientTemp", + "IncludeInCommandLine":false, + "DefaultValue":"26", + "Suffix":"°C", + "EnumValues":{} + }, + { + "DisplayName":"Cloud Level", + "Category":"ACC Gameplay Settings", + "Description":"Sets the baseline cloud level", + "Keywords":"cloud,level", + "FieldName":"cloudLevel", + "InputType":"number", + "MinValue":"0", + "MaxValue":"1", + "IsFlagArgument":false, + "ParamFieldName":"cloudLevel", + "IncludeInCommandLine":false, + "DefaultValue":"0.3", + "Placeholder":"0.0 - 1.0", + "EnumValues":{} + }, + { + "DisplayName":"Rain Level", + "Category":"ACC Gameplay Settings", + "Description":"Sets the static rain level if weather is static, or the expected rain level if weather is dynamic", + "Keywords":"rain", + "FieldName":"rain", + "InputType":"number", + "MinValue":"0", + "MaxValue":"1", + "IsFlagArgument":false, + "ParamFieldName":"rain", + "IncludeInCommandLine":false, + "DefaultValue":"0.0", + "Placeholder":"0.0 - 1.0", + "EnumValues":{} + }, + { + "DisplayName":"Dynamic Weather", + "Category":"ACC Gameplay Settings", + "Description":"Sets the dynamic weather level. 0 = static, 1-4 = fairly realistic, 5-7 = more sensational", + "Keywords":"random,weather", + "FieldName":"weatherRandomness", + "InputType":"number", + "MinValue":"0", + "MaxValue":"7", + "IsFlagArgument":false, + "ParamFieldName":"weatherRandomness", + "IncludeInCommandLine":false, + "DefaultValue":"3", + "Placeholder":"0 - 7", + "EnumValues":{} + }, + { + "DisplayName":"Ignore Premature Disconnects", + "Category":"ACC Gameplay Settings", + "Description":"If enabled, less arbitrary connections lost. On Linux hosts, disable this setting", + "Keywords":"ignore,premature,disconnects", + "FieldName":"ignorePrematureDisconnects", + "InputType":"checkbox", + "IsFlagArgument":false, + "ParamFieldName":"ignorePrematureDisconnects", + "IncludeInCommandLine":false, + "DefaultValue":"1", + "EnumValues":{ + "False":"0", + "True":"1" + } + } +] diff --git a/assetto-corsa-compmetaconfig.json b/assetto-corsa-compmetaconfig.json new file mode 100644 index 0000000..2e1c110 --- /dev/null +++ b/assetto-corsa-compmetaconfig.json @@ -0,0 +1,26 @@ +[ + { + "ConfigFile":"server/cfg/configuration.json", + "AutoMap":true, + "ConfigType":"json", + "ConfigEncoding":"utf16-le-nobom" + }, + { + "ConfigFile":"server/cfg/settings.json", + "AutoMap":true, + "ConfigType":"json", + "ConfigEncoding":"utf16-le-nobom" + }, + { + "ConfigFile":"server/cfg/event.json", + "AutoMap":true, + "ConfigType":"json", + "ConfigEncoding":"utf16-le-nobom" + }, + { + "ConfigFile":"server/cfg/assistRules.json", + "AutoMap":true, + "ConfigType":"json", + "ConfigEncoding":"utf16-le-nobom" + } +] \ No newline at end of file