From 52de035dfafe8cdb582809dd58260a90efa7a5d4 Mon Sep 17 00:00:00 2001
From: BroGamerYT <68009108+BroGamerYT@users.noreply.github.com>
Date: Thu, 21 May 2026 16:47:36 +0200
Subject: [PATCH] Add files via upload
---
thebus.kvp | 118 +++++++++++++++++++++
thebus_en.kvp | 118 +++++++++++++++++++++
thebusconfig.json | 236 ++++++++++++++++++++++++++++++++++++++++++
thebusconfig_en.json | 236 ++++++++++++++++++++++++++++++++++++++++++
thebusmetaconfig.json | 8 ++
thebusports.json | 16 +++
thebusupdates.json | 62 +++++++++++
7 files changed, 794 insertions(+)
create mode 100644 thebus.kvp
create mode 100644 thebus_en.kvp
create mode 100644 thebusconfig.json
create mode 100644 thebusconfig_en.json
create mode 100644 thebusmetaconfig.json
create mode 100644 thebusports.json
create mode 100644 thebusupdates.json
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
+ }
+]