diff --git a/thebus.kvp b/thebus.kvp new file mode 100644 index 000000000..bc4ba9538 --- /dev/null +++ b/thebus.kvp @@ -0,0 +1,118 @@ +Meta.DisplayName=The Bus +Meta.Description=The Bus Dedicated Server (Proton/Wine) +Meta.OS=Windows, Linux +Meta.AarchSupport=Unknown +Meta.Arch=x86_64 +Meta.Author=BroGamerYT +Meta.URL=https://www.tml-studios.de/ +Meta.DisplayImageSource=steam:491540 +Meta.EndpointURIFormat={ip}:{GenericModule.App.Ports.$GamePort} +Meta.ConfigManifest=thebusconfig.json +Meta.MetaConfigManifest=thebusmetaconfig.json +Meta.ConfigRoot=thebus.kvp +Meta.MinAMPVersion=2.5.1.8 +Meta.SpecificDockerImage=cubecoders/ampbase:debian +Meta.DockerRequired=False +Meta.DockerBaseReadOnly=False +Meta.ContainerPolicy=Supported +Meta.ContainerPolicyReason= +Meta.ExtraSetupStepsURI= +Meta.Prerequisites=[] +Meta.ExtraContainerPackages=[] +Meta.ConfigReleaseState=NotSpecified +Meta.NoCommercialUsage=False +Meta.ConfigVersion=1 +Meta.ReleaseNotes= +Meta.BreakingReleaseNotes= +Meta.ImportableExtensions=[] +Meta.AppConfigId=37ca5d62-e2e9-449b-8269-0f8684863fa4 +Meta.AppIsMultiIPAware=True + +App.DisplayName=The Bus +App.RootDir=./thebus/ +App.BaseDirectory=./thebus/507320/ +App.StoresSupported=SteamWorkshop +App.SteamWorkshopDownloadLocation={{$FullBaseDir}}TheBus/Mods +App.StoreDownloadLocations={"SteamWorkshop":"{{$FullBaseDir}}TheBus/Mods"} +App.ExecutableWin=507320\TheBus\Binaries\Win64\TheBusServer.exe +App.ExecutableLinux=.proton/proton +App.WorkingDir=507320/TheBus/Binaries/Win64 +App.LinuxCommandLineArgs=runinprefix "{{$FullBaseDir}}TheBus/Binaries/Win64/TheBusServer.exe" +App.WindowsCommandLineArgs= +App.CommandLineArgs={{$PlatformArgs}} -port={{$GamePort}} -QueryPort={{$QueryPort}} -MultiHome={{$ApplicationIPBinding}} -log -useperfthreads -unattended -ServerName="{{serverName}}" -MaxPlayers={{$MaxUsers}} -password="{{serverPassword}}" {{$FormattedArgs}} {{CustomArgs}} +App.UseLinuxIOREDIR=False +App.AppSettings={} +App.EnvironmentVariables={"SteamAppId":"507320","STEAM_COMPAT_DATA_PATH":"{{$FullRootDir}}.proton/compatdata","STEAM_COMPAT_CLIENT_INSTALL_PATH":"{{$FullBaseDir}}.steam/steam","HOME":"{{$FullBaseDir}}"} +App.CommandLineParameterFormat=-{0}={1} +App.CommandLineParameterDelimiter= +App.ExitMethod=OS_CLOSE +App.ExitTimeout=10 +App.ExitString=stop +App.ExitFile=app_exit.lck +App.HasWriteableConsole=True +App.HasReadableConsole=True +App.UDPLogger=False +App.SupportsLiveSettingsChanges=False +App.LiveSettingChangeCommandFormat=set {0} "{1}" +App.ForceIPBinding=False +App.SupportsIPv6=True +App.ApplicationIPBinding=0.0.0.0 +App.Ports=@IncludeJson[thebusports.json] +App.AdminPortRef=0 +App.PrimaryApplicationPortRef=GamePort +App.UniversalSleepApplicationUDPPortRef=GamePort +App.UniversalSleepSteamQueryPortRef=QueryPort +App.MaxUsers=16 +App.UseRandomAdminPassword=False +App.PersistRandomPassword=True +App.RemoteAdminPassword= +App.AdminMethod=STDIO +App.IgnoreSTDOUTAfterRCON=False +App.AdminLoginTransform=None +App.LoginTransformPrefix= +App.RCONConnectDelaySeconds=5 +App.RCONConnectRetrySeconds=5 +App.RCONHeartbeatMinutes=0 +App.RCONHeartbeatCommand=ping +App.RCONSelectIPMethod=Default +App.TelnetLoginFormat={0} +App.TelnetNewLineType=Default +App.UpdateSources=@IncludeJson[thebusupdates.json] +App.PreStartStages=[] +App.UserActions=[] +App.ForceUpdate=False +App.ForceUpdateReason= +App.Compatibility=None +App.SteamUpdateAnonymousLogin=True +App.SteamForceLoginPrompt=False +App.RapidStartup=False +App.SmartExcludeExemptions=["*.cfg","*.conf","*.config","*.ini","*.json","*.xml","*.properties","*.kvp","*.yml","*.yaml","*.toml","*.lua"] +App.SmartExcludeSupported=True +App.DumpFullChildProcessTree=False +App.MonitorChildProcessName=^.*{{$WineBaseDir}}TheBus/Binaries/Win64/TheBusServer\.exe.*$ +App.MonitorDirectChildOnly=False +App.SupportsUniversalSleep=False +App.WakeupMode=Any +App.ApplicationReadyMode=Immediate + +Console.FilterMatchRegex= +Console.FilterMatchReplacement= +Console.ThrowawayMessageRegex= +Console.AppReadyRegex= +Console.UserJoinRegex= +Console.UserLeaveRegex= +Console.UserChatRegex= +Console.UpdateAvailableRegex= +Console.PreConnectRegex= +Console.ConnectIPRegex= +Console.MetricsRegex= +Console.HideFromConsoleRegex= +Console.SuppressLogAtStart=False +Console.UserActions={} + +Limits.SleepMode=False +Limits.SleepOnStart=False +Limits.SleepDelayMinutes=5 +Limits.DozeDelay=2 +Limits.AutoRetryCount=2 +Limits.SleepStartThresholdSeconds=25 diff --git a/thebus_en.kvp b/thebus_en.kvp new file mode 100644 index 000000000..ba00ea1ea --- /dev/null +++ b/thebus_en.kvp @@ -0,0 +1,118 @@ +Meta.DisplayName=The Bus (EN) +Meta.Description=The Bus Dedicated Server (Proton/Wine) [English] +Meta.OS=Windows, Linux +Meta.AarchSupport=Unknown +Meta.Arch=x86_64 +Meta.Author=BroGamerYT +Meta.URL=https://www.tml-studios.de/ +Meta.DisplayImageSource=steam:491540 +Meta.EndpointURIFormat={ip}:{GenericModule.App.Ports.$GamePort} +Meta.ConfigManifest=thebusconfig_en.json +Meta.MetaConfigManifest=thebusmetaconfig.json +Meta.ConfigRoot=thebus_en.kvp +Meta.MinAMPVersion=2.5.1.8 +Meta.SpecificDockerImage=cubecoders/ampbase:debian +Meta.DockerRequired=False +Meta.DockerBaseReadOnly=False +Meta.ContainerPolicy=Supported +Meta.ContainerPolicyReason= +Meta.ExtraSetupStepsURI= +Meta.Prerequisites=[] +Meta.ExtraContainerPackages=[] +Meta.ConfigReleaseState=NotSpecified +Meta.NoCommercialUsage=False +Meta.ConfigVersion=1 +Meta.ReleaseNotes= +Meta.BreakingReleaseNotes= +Meta.ImportableExtensions=[] +Meta.AppConfigId=37ca5d62-e2e9-449b-8269-0f8684863fa4 +Meta.AppIsMultiIPAware=True + +App.DisplayName=The Bus +App.RootDir=./thebus/ +App.BaseDirectory=./thebus/507320/ +App.StoresSupported=SteamWorkshop +App.SteamWorkshopDownloadLocation={{$FullBaseDir}}TheBus/Mods +App.StoreDownloadLocations={"SteamWorkshop":"{{$FullBaseDir}}TheBus/Mods"} +App.ExecutableWin=507320\TheBus\Binaries\Win64\TheBusServer.exe +App.ExecutableLinux=.proton/proton +App.WorkingDir=507320/TheBus/Binaries/Win64 +App.LinuxCommandLineArgs=runinprefix "{{$FullBaseDir}}TheBus/Binaries/Win64/TheBusServer.exe" +App.WindowsCommandLineArgs= +App.CommandLineArgs={{$PlatformArgs}} -port={{$GamePort}} -QueryPort={{$QueryPort}} -MultiHome={{$ApplicationIPBinding}} -log -useperfthreads -unattended -ServerName="{{serverName}}" -MaxPlayers={{$MaxUsers}} -password="{{serverPassword}}" {{$FormattedArgs}} {{CustomArgs}} +App.UseLinuxIOREDIR=False +App.AppSettings={} +App.EnvironmentVariables={"SteamAppId":"507320","STEAM_COMPAT_DATA_PATH":"{{$FullRootDir}}.proton/compatdata","STEAM_COMPAT_CLIENT_INSTALL_PATH":"{{$FullBaseDir}}.steam/steam","HOME":"{{$FullBaseDir}}"} +App.CommandLineParameterFormat=-{0}={1} +App.CommandLineParameterDelimiter= +App.ExitMethod=OS_CLOSE +App.ExitTimeout=10 +App.ExitString=stop +App.ExitFile=app_exit.lck +App.HasWriteableConsole=True +App.HasReadableConsole=True +App.UDPLogger=False +App.SupportsLiveSettingsChanges=False +App.LiveSettingChangeCommandFormat=set {0} "{1}" +App.ForceIPBinding=False +App.SupportsIPv6=True +App.ApplicationIPBinding=0.0.0.0 +App.Ports=@IncludeJson[thebusports.json] +App.AdminPortRef=0 +App.PrimaryApplicationPortRef=GamePort +App.UniversalSleepApplicationUDPPortRef=GamePort +App.UniversalSleepSteamQueryPortRef=QueryPort +App.MaxUsers=16 +App.UseRandomAdminPassword=False +App.PersistRandomPassword=True +App.RemoteAdminPassword= +App.AdminMethod=STDIO +App.IgnoreSTDOUTAfterRCON=False +App.AdminLoginTransform=None +App.LoginTransformPrefix= +App.RCONConnectDelaySeconds=5 +App.RCONConnectRetrySeconds=5 +App.RCONHeartbeatMinutes=0 +App.RCONHeartbeatCommand=ping +App.RCONSelectIPMethod=Default +App.TelnetLoginFormat={0} +App.TelnetNewLineType=Default +App.UpdateSources=@IncludeJson[thebusupdates.json] +App.PreStartStages=[] +App.UserActions=[] +App.ForceUpdate=False +App.ForceUpdateReason= +App.Compatibility=None +App.SteamUpdateAnonymousLogin=True +App.SteamForceLoginPrompt=False +App.RapidStartup=False +App.SmartExcludeExemptions=["*.cfg","*.conf","*.config","*.ini","*.json","*.xml","*.properties","*.kvp","*.yml","*.yaml","*.toml","*.lua"] +App.SmartExcludeSupported=True +App.DumpFullChildProcessTree=False +App.MonitorChildProcessName=^.*{{$WineBaseDir}}TheBus/Binaries/Win64/TheBusServer\.exe.*$ +App.MonitorDirectChildOnly=False +App.SupportsUniversalSleep=False +App.WakeupMode=Any +App.ApplicationReadyMode=Immediate + +Console.FilterMatchRegex= +Console.FilterMatchReplacement= +Console.ThrowawayMessageRegex= +Console.AppReadyRegex= +Console.UserJoinRegex= +Console.UserLeaveRegex= +Console.UserChatRegex= +Console.UpdateAvailableRegex= +Console.PreConnectRegex= +Console.ConnectIPRegex= +Console.MetricsRegex= +Console.HideFromConsoleRegex= +Console.SuppressLogAtStart=False +Console.UserActions={} + +Limits.SleepMode=False +Limits.SleepOnStart=False +Limits.SleepDelayMinutes=5 +Limits.DozeDelay=2 +Limits.AutoRetryCount=2 +Limits.SleepStartThresholdSeconds=25 diff --git a/thebusconfig.json b/thebusconfig.json new file mode 100644 index 000000000..f2acdd972 --- /dev/null +++ b/thebusconfig.json @@ -0,0 +1,236 @@ +[ + { + "DisplayName": "Server-Name", + "Category": "The Bus Einstellungen", + "Subcategory": "Server-Konfiguration", + "Description": "Legt den Namen des Servers fest, der in der Serverliste angezeigt wird.", + "Keywords": "server,name,servername", + "FieldName": "serverName", + "InputType": "text", + "ParamFieldName": "serverName", + "DefaultValue": "MeinBusServer", + "EnumValues": {} + }, + { + "DisplayName": "Server-Passwort", + "Category": "The Bus Einstellungen", + "Subcategory": "Server-Konfiguration", + "Description": "Legt das Passwort fest, das Spieler zum Beitreten des Servers benötigen. Standardmäßig leer (kein Passwort).", + "Keywords": "password,server,serverpassword,passwort", + "FieldName": "serverPassword", + "InputType": "password", + "ParamFieldName": "serverPassword", + "DefaultValue": "", + "EnumValues": {} + }, + { + "DisplayName": "Admin-Passwort", + "Category": "The Bus Einstellungen", + "Subcategory": "Server-Konfiguration", + "Description": "Legt das Admin-Passwort fest, mit dem sich Spieler im In-Game-Admin-Menü anmelden können.", + "Keywords": "admin,password,adminpassword,passwort", + "FieldName": "adminPassword", + "InputType": "password", + "ParamFieldName": "adminPassword", + "DefaultValue": "", + "EnumValues": {} + }, + { + "DisplayName": "Start-Karte", + "Category": "The Bus Einstellungen", + "Subcategory": "Server-Konfiguration", + "Description": "Legt die Karte fest, auf der der Server startet.", + "Keywords": "map,level,startmap,karte", + "FieldName": "startMap", + "InputType": "select", + "ParamFieldName": "startMap", + "DefaultValue": "Berlin", + "EnumValues": { + "Berlin": "Berlin", + "HamburgCity": "HamburgCity" + } + }, + { + "DisplayName": "Server Datum & Uhrzeit", + "Category": "The Bus Einstellungen", + "Subcategory": "Zeit-Einstellungen", + "Description": "Legt das statische Datum und die Uhrzeit des Servers fest. Format: YYYY.MM.DD-HH.MM.SS (z. B. 2023.07.01-08.00.00)", + "Keywords": "date,time,datetime,datum,uhrzeit", + "FieldName": "dateTime", + "InputType": "text", + "ParamFieldName": "dateTime", + "DefaultValue": "2023.07.01-08.00.00", + "EnumValues": {} + }, + { + "DisplayName": "Echtzeit verwenden", + "Category": "The Bus Einstellungen", + "Subcategory": "Zeit-Einstellungen", + "Description": "Wenn aktiviert, wird die In-Game-Zeit mit der tatsächlichen Echtzeit des Servers synchronisiert.", + "Keywords": "realtime,time,clock,echtzeit,uhr", + "FieldName": "useRealTime", + "InputType": "checkbox", + "ParamFieldName": "useRealTime", + "DefaultValue": "false", + "EnumValues": { + "Nein": "false", + "Ja": "true" + } + }, + { + "DisplayName": "Wetter-Typ", + "Category": "The Bus Einstellungen", + "Subcategory": "Wetter-Einstellungen", + "Description": "Legt den anfänglichen Wetter-Typ auf dem Server fest.", + "Keywords": "weather,environment,wetter", + "FieldName": "weatherSettingsType", + "InputType": "select", + "ParamFieldName": "weatherSettingsType", + "DefaultValue": "Sunny", + "EnumValues": { + "Sonnig": "Sunny", + "Regnerisch": "Rainy", + "Bewölkt": "Cloudy", + "Verschneit": "Snowy" + } + }, + { + "DisplayName": "Wetter synchronisieren", + "Category": "The Bus Einstellungen", + "Subcategory": "Wetter-Einstellungen", + "Description": "Wenn aktiviert, wird das In-Game-Wetter mit dem echten Wetter des Kartenstandorts synchronisiert.", + "Keywords": "sync,weather,real,wetter,synchronisieren", + "FieldName": "synchronizeWeather", + "InputType": "checkbox", + "ParamFieldName": "synchronizeWeather", + "DefaultValue": "false", + "EnumValues": { + "Nein": "false", + "Ja": "true" + } + }, + { + "DisplayName": "Server öffentlich listen", + "Category": "The Bus Einstellungen", + "Subcategory": "Server-Konfiguration", + "Description": "Wenn aktiviert, wird der Server öffentlich in der Serverliste angezeigt.", + "Keywords": "public,list,serverlist,öffentlich", + "FieldName": "listServerAsPublic", + "InputType": "checkbox", + "ParamFieldName": "listServerAsPublic", + "DefaultValue": "false", + "EnumValues": { + "Nein": "false", + "Ja": "true" + } + }, + { + "DisplayName": "Schnellreise erlauben", + "Category": "The Bus Einstellungen", + "Subcategory": "Server-Konfiguration", + "Description": "Wenn aktiviert, können Spieler zwischen den Haltestellen schnellreisen.", + "Keywords": "travel,teleport,fast,schnellreise", + "FieldName": "allowFastTravel", + "InputType": "checkbox", + "ParamFieldName": "allowFastTravel", + "DefaultValue": "true", + "EnumValues": { + "Nein": "false", + "Ja": "true" + } + }, + { + "DisplayName": "EAC (Easy Anti-Cheat) deaktivieren", + "Category": "The Bus Einstellungen", + "Subcategory": "Server-Konfiguration", + "Description": "Deaktiviert Easy Anti-Cheat (hängt -NoEAC an die Startargumente an). Empfohlen für die meisten privaten Server.", + "Keywords": "eac,anti-cheat,noeac", + "FieldName": "DisableEAC", + "InputType": "checkbox", + "IsFlagArgument": true, + "IncludeInCommandLine": true, + "DefaultValue": "-NoEAC", + "EnumValues": {} + }, + { + "DisplayName": "Server-Tickrate", + "Category": "The Bus Einstellungen", + "Subcategory": "Leistung", + "Description": "Legt die Tickrate (Updates pro Sekunde) des Servers fest. Standard ist 30. Eine höhere Tickrate verbessert die Physik des Spiels, erhöht aber die CPU-Auslastung.", + "Keywords": "tickrate,fps,performance,leistung", + "FieldName": "Tickrate", + "InputType": "number", + "ParamFieldName": "tickrate", + "IncludeInCommandLine": true, + "DefaultValue": "30", + "minValue": "10", + "maxValue": "120", + "EnumValues": {} + }, + { + "DisplayName": "LAN-Modus aktivieren", + "Category": "The Bus Einstellungen", + "Subcategory": "Netzwerk", + "Description": "Umgeht Online-Authentifizierungsprüfungen (hängt -lanplay an die Startargumente an).", + "Keywords": "lan,local,offline,lokal", + "FieldName": "LanPlay", + "InputType": "checkbox", + "IsFlagArgument": true, + "IncludeInCommandLine": true, + "DefaultValue": "-lanplay", + "EnumValues": {} + }, + { + "DisplayName": "Benutzerdefinierte Startargumente", + "Category": "The Bus Einstellungen", + "Subcategory": "Server-Konfiguration", + "Description": "Legt zusätzliche benutzerdefinierte Befehlszeilenargumente fest. Verwende keine Argumente, die bereits in den AMP-Einstellungen vorhanden sind!", + "Keywords": "custom,command,line,arguments,startargumente", + "FieldName": "CustomArgs", + "InputType": "text", + "ParamFieldName": "CustomArgs", + "DefaultValue": "", + "Placeholder": "", + "EnumValues": {} + }, + { + "DisplayName": "Beta-Branch aktivieren", + "Category": "The Bus Einstellungen", + "Subcategory": "Updates", + "Description": "Wenn aktiviert, können Beta-Branches (andere Versionen als public) installiert werden. Gib den Branch unter 'Ausgewählter Beta-Branch' an. Aktualisiere den Server nach dem Wechsel.", + "Keywords": "beta,branch,update,aktualisierung", + "FieldName": "EnableBeta", + "InputType": "checkbox", + "ParamFieldName": "EnableBeta", + "DefaultValue": "false", + "EnumValues": { + "Nein": "false", + "Ja": "true" + } + }, + { + "DisplayName": "Ausgewählter Beta-Branch", + "Category": "The Bus Einstellungen", + "Subcategory": "Updates", + "Description": "Legt den zu installierenden Beta-Branch fest (z. B. beta). Benötigt 'Beta-Branch aktivieren'. Aktualisiere den Server nach dem Wechsel.", + "Keywords": "beta,branch,selected,ausgewählt", + "FieldName": "BetaBranch", + "InputType": "text", + "ParamFieldName": "BetaBranch", + "DefaultValue": "beta", + "Placeholder": "beta", + "EnumValues": {} + }, + { + "DisplayName": "Steam Web API Key", + "Category": "The Bus Einstellungen", + "Subcategory": "Steam Workshop", + "Description": "Legt den Steam Web API-Key für den Steam-Workshop-Browser fest. (Falls der HTML-Link nicht klickbar ist, kopiere: https://steamcommunity.com/dev/apikey)", + "Keywords": "steam,api,key,workshop", + "FieldName": "SteamWorkshop.SteamWebApiKey", + "InputType": "text", + "ParamFieldName": "SteamWorkshop.SteamWebApiKey", + "DefaultValue": "", + "EnumValues": {} + } +] diff --git a/thebusconfig_en.json b/thebusconfig_en.json new file mode 100644 index 000000000..2d6f40631 --- /dev/null +++ b/thebusconfig_en.json @@ -0,0 +1,236 @@ +[ + { + "DisplayName": "Server Name", + "Category": "The Bus Settings", + "Subcategory": "Server Configuration", + "Description": "Sets the name of the server that is displayed in the server list.", + "Keywords": "server,name,servername", + "FieldName": "serverName", + "InputType": "text", + "ParamFieldName": "serverName", + "DefaultValue": "MyBusServer", + "EnumValues": {} + }, + { + "DisplayName": "Server Password", + "Category": "The Bus Settings", + "Subcategory": "Server Configuration", + "Description": "Sets the password required for players to join the server. Default is no password.", + "Keywords": "password,server,serverpassword", + "FieldName": "serverPassword", + "InputType": "password", + "ParamFieldName": "serverPassword", + "DefaultValue": "", + "EnumValues": {} + }, + { + "DisplayName": "Admin Password", + "Category": "The Bus Settings", + "Subcategory": "Server Configuration", + "Description": "Sets the admin password for players to log into the in-game admin menu.", + "Keywords": "admin,password,adminpassword", + "FieldName": "adminPassword", + "InputType": "password", + "ParamFieldName": "adminPassword", + "DefaultValue": "", + "EnumValues": {} + }, + { + "DisplayName": "Start Map", + "Category": "The Bus Settings", + "Subcategory": "Server Configuration", + "Description": "Sets the map the server starts on.", + "Keywords": "map,level,startmap", + "FieldName": "startMap", + "InputType": "select", + "ParamFieldName": "startMap", + "DefaultValue": "Berlin", + "EnumValues": { + "Berlin": "Berlin", + "HamburgCity": "HamburgCity" + } + }, + { + "DisplayName": "Server Date & Time", + "Category": "The Bus Settings", + "Subcategory": "Time Settings", + "Description": "Sets the static date and time of the server. Format: YYYY.MM.DD-HH.MM.SS (e.g. 2023.07.01-08.00.00)", + "Keywords": "date,time,datetime", + "FieldName": "dateTime", + "InputType": "text", + "ParamFieldName": "dateTime", + "DefaultValue": "2023.07.01-08.00.00", + "EnumValues": {} + }, + { + "DisplayName": "Use Real Time", + "Category": "The Bus Settings", + "Subcategory": "Time Settings", + "Description": "If enabled, synchronizes the in-game time with the server's real time.", + "Keywords": "realtime,time,clock", + "FieldName": "useRealTime", + "InputType": "checkbox", + "ParamFieldName": "useRealTime", + "DefaultValue": "false", + "EnumValues": { + "No": "false", + "Yes": "true" + } + }, + { + "DisplayName": "Weather Type", + "Category": "The Bus Settings", + "Subcategory": "Weather Settings", + "Description": "Sets the initial weather type on the server.", + "Keywords": "weather,environment", + "FieldName": "weatherSettingsType", + "InputType": "select", + "ParamFieldName": "weatherSettingsType", + "DefaultValue": "Sunny", + "EnumValues": { + "Sunny": "Sunny", + "Rainy": "Rainy", + "Cloudy": "Cloudy", + "Snowy": "Snowy" + } + }, + { + "DisplayName": "Synchronize Weather", + "Category": "The Bus Settings", + "Subcategory": "Weather Settings", + "Description": "If enabled, synchronizes in-game weather with the real weather of the map location.", + "Keywords": "sync,weather,real", + "FieldName": "synchronizeWeather", + "InputType": "checkbox", + "ParamFieldName": "synchronizeWeather", + "DefaultValue": "false", + "EnumValues": { + "No": "false", + "Yes": "true" + } + }, + { + "DisplayName": "List Server As Public", + "Category": "The Bus Settings", + "Subcategory": "Server Configuration", + "Description": "If enabled, lists the server publicly in the server list.", + "Keywords": "public,list,serverlist", + "FieldName": "listServerAsPublic", + "InputType": "checkbox", + "ParamFieldName": "listServerAsPublic", + "DefaultValue": "false", + "EnumValues": { + "No": "false", + "Yes": "true" + } + }, + { + "DisplayName": "Allow Fast Travel", + "Category": "The Bus Settings", + "Subcategory": "Server Configuration", + "Description": "If enabled, players can fast travel between stops.", + "Keywords": "travel,teleport,fast,fasttravel", + "FieldName": "allowFastTravel", + "InputType": "checkbox", + "ParamFieldName": "allowFastTravel", + "DefaultValue": "true", + "EnumValues": { + "No": "false", + "Yes": "true" + } + }, + { + "DisplayName": "Disable EAC (Easy Anti-Cheat)", + "Category": "The Bus Settings", + "Subcategory": "Server Configuration", + "Description": "Disable Easy Anti-Cheat (appends -NoEAC to command line). Recommended for most private servers.", + "Keywords": "eac,anti-cheat,noeac", + "FieldName": "DisableEAC", + "InputType": "checkbox", + "IsFlagArgument": true, + "IncludeInCommandLine": true, + "DefaultValue": "-NoEAC", + "EnumValues": {} + }, + { + "DisplayName": "Server Tickrate", + "Category": "The Bus Settings", + "Subcategory": "Performance", + "Description": "Sets the tickrate (updates per second) of the server. Default is 30. Higher tickrate improves game physics but increases CPU usage.", + "Keywords": "tickrate,fps,performance", + "FieldName": "Tickrate", + "InputType": "number", + "ParamFieldName": "tickrate", + "IncludeInCommandLine": true, + "DefaultValue": "30", + "minValue": "10", + "maxValue": "120", + "EnumValues": {} + }, + { + "DisplayName": "Enable LAN Play", + "Category": "The Bus Settings", + "Subcategory": "Network", + "Description": "Bypasses online authentication checks (appends -lanplay to command line).", + "Keywords": "lan,local,offline", + "FieldName": "LanPlay", + "InputType": "checkbox", + "IsFlagArgument": true, + "IncludeInCommandLine": true, + "DefaultValue": "-lanplay", + "EnumValues": {} + }, + { + "DisplayName": "Custom Command Line Arguments", + "Category": "The Bus Settings", + "Subcategory": "Server Configuration", + "Description": "Sets custom command line arguments. Don't use arguments already in AMP's settings!", + "Keywords": "custom,command,line,arguments", + "FieldName": "CustomArgs", + "InputType": "text", + "ParamFieldName": "CustomArgs", + "DefaultValue": "", + "Placeholder": "", + "EnumValues": {} + }, + { + "DisplayName": "Enable Beta Branch", + "Category": "The Bus Settings", + "Subcategory": "Updates", + "Description": "If enabled, allows beta branches (branches other than public) to be installed. Specify the branch under Selected Beta Branch. Update the server after switching branches.", + "Keywords": "beta,branch,update", + "FieldName": "EnableBeta", + "InputType": "checkbox", + "ParamFieldName": "EnableBeta", + "DefaultValue": "false", + "EnumValues": { + "No": "false", + "Yes": "true" + } + }, + { + "DisplayName": "Selected Beta Branch", + "Category": "The Bus Settings", + "Subcategory": "Updates", + "Description": "Sets the beta branch to install (e.g. beta). Requires Enable Beta Branch to be enabled. Update the server after switching branches.", + "Keywords": "beta,branch,selected", + "FieldName": "BetaBranch", + "InputType": "text", + "ParamFieldName": "BetaBranch", + "DefaultValue": "beta", + "Placeholder": "beta", + "EnumValues": {} + }, + { + "DisplayName": "Steam Web API Key", + "Category": "The Bus Settings", + "Subcategory": "Steam Workshop", + "Description": "Sets the Steam Web API key for the Steam Workshop browser. (If the link is not clickable, copy: https://steamcommunity.com/dev/apikey)", + "Keywords": "steam,api,key,workshop", + "FieldName": "SteamWorkshop.SteamWebApiKey", + "InputType": "text", + "ParamFieldName": "SteamWorkshop.SteamWebApiKey", + "DefaultValue": "", + "EnumValues": {} + } +] diff --git a/thebusmetaconfig.json b/thebusmetaconfig.json new file mode 100644 index 000000000..cd56e5668 --- /dev/null +++ b/thebusmetaconfig.json @@ -0,0 +1,8 @@ +[ + { + "ConfigFile": "TheBus/Settings/ServerSettings.cfg", + "AutoMap": true, + "Importable": true, + "ConfigType": "json" + } +] diff --git a/thebusports.json b/thebusports.json new file mode 100644 index 000000000..8acb46849 --- /dev/null +++ b/thebusports.json @@ -0,0 +1,16 @@ +[ + { + "Protocol": "UDP", + "Port": 7777, + "Ref": "GamePort", + "Name": "Game Port", + "Description": "Port for game traffic" + }, + { + "Protocol": "UDP", + "Port": 7778, + "Ref": "QueryPort", + "Name": "Query Port", + "Description": "Port for query traffic" + } +] diff --git a/thebusupdates.json b/thebusupdates.json new file mode 100644 index 000000000..174d45887 --- /dev/null +++ b/thebusupdates.json @@ -0,0 +1,62 @@ +[ + { + "UpdateStageName": "SteamCMD Download", + "UpdateSourcePlatform": "All", + "UpdateSource": "SteamCMD", + "UpdateSourceData": "507320", + "UpdateSourceVersion": "public", + "UpdateSourceConditionSetting": "EnableBeta", + "UpdateSourceConditionValue": "false", + "ForceDownloadPlatform": "Windows", + "SkipOnFailure": false + }, + { + "UpdateStageName": "SteamCMD Download (Beta Branch)", + "UpdateSourcePlatform": "All", + "UpdateSource": "SteamCMD", + "UpdateSourceData": "507320", + "UpdateSourceVersion": "{{BetaBranch}}", + "UpdateSourceConditionSetting": "EnableBeta", + "UpdateSourceConditionValue": "true", + "ForceDownloadPlatform": "Windows", + "SkipOnFailure": false + }, + { + "UpdateStageName": "Proton GE Download", + "UpdateSourcePlatform": "Linux", + "UpdateSource": "Executable", + "UpdateSourceData": "/bin/bash", + "UpdateSourceArgs": "-c \"cd \\\"{{$FullRootDir}}\\\"; mkdir -p \\\"{{$FullRootDir}}.proton/compatdata\\\" \\\"{{$FullBaseDir}}.steam/steam\\\" \\\"{{$FullBaseDir}}.steam/sdk32\\\" \\\"{{$FullBaseDir}}.steam/sdk64\\\" \\\"{{$FullBaseDir}}.config/protonfixes\\\" && \\cp -f \\\"{{$FullRootDir}}linux32/steamclient.so\\\" \\\"{{$FullBaseDir}}.steam/sdk32/\\\" && \\cp -f \\\"{{$FullRootDir}}linux64/steamclient.so\\\" \\\"{{$FullBaseDir}}.steam/sdk64/\\\"; ProtonVersion=\\\"\\\" && if [[ -x \\\"{{$FullRootDir}}.proton/proton\\\" && -f \\\"{{$FullRootDir}}.proton/version\\\" ]]; then read _ InstalledVersion < \\\"{{$FullRootDir}}.proton/version\\\"; else InstalledVersion=\\\"\\\"; fi; if [[ -z \\\"$ProtonVersion\\\" ]]; then ProtonVersion=$(wget -qO- https://api.github.com/repos/GloriousEggroll/proton-ge-custom/releases/latest | jq -r .tag_name); fi; if [[ ! \\\"$ProtonVersion\\\" =~ ^GE-Proton[0-9]+-[0-9]+$ ]]; then echo \\\"Invalid Proton GE release version format specified\\\" && exit 1; elif [[ \\\"$InstalledVersion\\\" == \\\"$ProtonVersion\\\"* ]]; then echo \\\"Proton GE version $ProtonVersion already installed. Skipping\\\" && exit 0; else [[ -f GE-Proton.tar.gz ]] && rm -f GE-Proton.tar.gz >/dev/null 2>&1; wget -qO GE-Proton.tar.gz https://github.com/GloriousEggroll/proton-ge-custom/releases/download/$ProtonVersion/$ProtonVersion.tar.gz || { echo \\\"Proton GE download failed from GitHub. Aborting\\\"; exit 1; }; rm -rf \\\"{{$FullRootDir}}.proton/compatdata/\\\"* >/dev/null 2>&1; tar -xzf GE-Proton.tar.gz -C \\\"{{$FullRootDir}}.proton\\\" --strip-components=1 && rm -f GE-Proton.tar.gz >/dev/null 2>&1 && echo \\\"Proton GE version $ProtonVersion downloaded\\\" && { STEAM_COMPAT_DATA_PATH=\\\"{{$FullRootDir}}.proton/compatdata\\\" STEAM_COMPAT_CLIENT_INSTALL_PATH=\\\"{{$FullBaseDir}}.steam/steam\\\" \\\"{{$FullRootDir}}.proton/proton\\\" PROTON_LOG=1 >/dev/null 2>&1; exit 0; }; fi\"", + "SkipOnFailure": false + }, + { + "UpdateStageName": "Disable Prefix Sound", + "UpdateSourcePlatform": "Linux", + "UpdateSource": "Executable", + "UpdateSourceData": "/bin/bash", + "UpdateSourceArgs": "-c \"cd \\\"{{$FullRootDir}}\\\" && export PATH=\\\"{{$FullRootDir}}.proton/files/bin:$PATH\\\"; export WINEPREFIX=\\\"{{$FullRootDir}}.proton/compatdata/pfx\\\"; export WINEARCH=win64; ./.proton/protonfixes/winetricks sound=disabled > winescript_log.txt 2>&1\"", + "SkipOnFailure": true + }, + { + "UpdateStageName": "Create Settings Directory", + "UpdateSourcePlatform": "All", + "UpdateSource": "CreateDirectory", + "UpdateSourceArgs": "{{$FullBaseDir}}TheBus/Settings", + "SkipOnFailure": true + }, + { + "UpdateStageName": "Create Mods Directory", + "UpdateSourcePlatform": "All", + "UpdateSource": "CreateDirectory", + "UpdateSourceArgs": "{{$FullBaseDir}}TheBus/Mods", + "SkipOnFailure": true + }, + { + "UpdateStageName": "Write Default ServerSettings", + "UpdateSourcePlatform": "Linux", + "UpdateSource": "Executable", + "UpdateSourceData": "/bin/bash", + "UpdateSourceArgs": "-c \"if [ ! -f \\\"{{$FullBaseDir}}TheBus/Settings/ServerSettings.cfg\\\" ]; then echo '{\\\"serverName\\\":\\\"The Bus Server\\\",\\\"dateTime\\\":\\\"2023.07.01-08.00.00\\\",\\\"useRealTime\\\":false,\\\"startMap\\\":\\\"Berlin\\\",\\\"weatherSettingsType\\\":\\\"Sunny\\\",\\\"synchronizeWeather\\\":false,\\\"maxPlayerCount\\\":10,\\\"listServerAsPublic\\\":false,\\\"serverPassword\\\":\\\"\\\",\\\"adminPassword\\\":\\\"\\\",\\\"allowFastTravel\\\":true}' > \\\"{{$FullBaseDir}}TheBus/Settings/ServerSettings.cfg\\\"; fi\"", + "SkipOnFailure": true + } +]