### Example Port Manifest Source: https://github.com/cubecoders/amptemplates/blob/main/_autodocs/api-reference.md A sample JSON configuration for a game port. ```json { "Protocol": "UDP", "Port": 7777, "Ref": "GamePort", "Name": "Game Port", "Description": "Main game traffic", "PortType": "Game", "IsMainPort": true, "IsStatusPort": true } ``` -------------------------------- ### File Mapping Example Source: https://github.com/cubecoders/amptemplates/blob/main/_autodocs/api-reference.md A practical example of a JSON configuration mapping for an INI file. ```json { "ConfigFile": "server.ini", "ConfigType": "ini", "AutoMap": true, "Importable": true, "ConfigFormat": "{0}={1}", "ConfigFormatRegex": "^(?.+?)\\s*=\\s*(?.*?)$" } ``` -------------------------------- ### Example Update Stage Source: https://github.com/cubecoders/amptemplates/blob/main/_autodocs/api-reference.md A sample JSON configuration for a server download update stage. ```json { "UpdateStageName": "Download Server", "UpdateSourcePlatform": "All", "UpdateSource": "SteamCMD", "UpdateSourceData": "2857200", "UpdateSourceArgs": "427410", "ForceDownloadPlatform": "Windows", "SkipOnFailure": false } ``` -------------------------------- ### Configuration Field Example Source: https://github.com/cubecoders/amptemplates/blob/main/_autodocs/api-reference.md A practical example of a configuration field object for a server name setting. ```json { "DisplayName": "Server Name", "FieldName": "ServerName", "InputType": "text", "Category": "Server", "Subcategory": "Basic", "Description": "Name displayed in server list", "DefaultValue": "My Server", "Placeholder": "Enter server name", "Required": true, "ParamFieldName": "ServerName", "IncludeInCommandLine": true } ``` -------------------------------- ### Implement platform-specific setup Source: https://github.com/cubecoders/amptemplates/blob/main/_autodocs/updates-manifest.md A manifest configuration that includes conditional execution based on the target platform. ```json [ { "UpdateStageName": "SteamCMD Download", "UpdateSource": "SteamCMD", "UpdateSourceData": "12345", "UpdateSourceArgs": "270880", "UpdateSourcePlatform": "All" }, { "UpdateStageName": "Initialize Wine", "UpdateSource": "Executable", "UpdateSourceData": "/bin/bash", "UpdateSourceArgs": "-c \"WINEPREFIX=... wineboot --init\"", "UpdateSourcePlatform": "Linux", "SkipOnFailure": false } ] ``` -------------------------------- ### Server Ready Detection Examples Source: https://github.com/cubecoders/amptemplates/blob/main/_autodocs/template-patterns.md Specific regex implementations for various game servers to detect ready states or startup errors. ```regex # Abiotic Factor ^.*\[INFO\] Server started successfully ^.*\[ERROR\] Failed to start server # BeamMP ^.*\[INFO\] ALL SYSTEMS STARTED SUCCESSFULLY, EVERYTHING IS OKAY ^.*\[ERROR\] No AuthKey specified # Alien Swarm Reactive Drop ^.*Server.*initialized.*$ ``` -------------------------------- ### Steam and Platform Setup Update Procedure Source: https://github.com/cubecoders/amptemplates/blob/main/_autodocs/template-patterns.md Update sequence for Windows-based games running on Linux via Wine. ```text 1. Download via SteamCMD 2. Create Wine prefix (Linux) 3. Download platform-specific files 4. Download configuration ``` -------------------------------- ### Complete Configuration Manifest Example Source: https://github.com/cubecoders/amptemplates/blob/main/_autodocs/config-manifest.md A comprehensive JSON array defining various server configuration fields, including text, password, numeric, enum, and checkbox input types. ```json [ { "DisplayName": "Server Name", "FieldName": "ServerName", "InputType": "text", "Category": "Server", "Description": "Publicly visible server name", "DefaultValue": "AMP Server", "ParamFieldName": "ServerName", "IncludeInCommandLine": true, "Required": true }, { "DisplayName": "Admin Password", "FieldName": "AdminPassword", "InputType": "password", "Category": "Server", "Description": "Password for admin access", "DefaultValue": "", "ParamFieldName": "AdminPassword", "IncludeInCommandLine": true, "SkipIfEmpty": true }, { "DisplayName": "Max Players", "FieldName": "$MaxUsers", "InputType": "number", "Category": "Server", "Description": "Maximum concurrent players", "DefaultValue": "32", "MinValue": "1", "MaxValue": "256", "Suffix": "players", "ParamFieldName": "MaxPlayers", "IncludeInCommandLine": true }, { "DisplayName": "Game Mode", "FieldName": "GameMode", "InputType": "enum", "Category": "Gameplay", "DefaultValue": "normal", "EnumValues": { "Normal": "normal", "Creative": "creative", "Peaceful": "peaceful" }, "ParamFieldName": "gamemode", "IncludeInCommandLine": true }, { "DisplayName": "Enable PvP", "FieldName": "EnablePvP", "InputType": "checkbox", "Category": "Gameplay", "DefaultValue": "True", "EnumValues": { "False": "", "True": "-pvp" }, "ParamFieldName": "pvp", "IncludeInCommandLine": true } ] ``` -------------------------------- ### Define Configuration File Mappings Source: https://github.com/cubecoders/amptemplates/blob/main/_autodocs/metaconfig-manifest.md Example of a JSON array defining multiple configuration file mappings for different file types. ```json [ { "ConfigFile": "config/server.cfg", "ConfigType": "ini", "AutoMap": true, "ConfigFormat": "{0}={1}", "ConfigFormatRegex": "^(?.+?)\\s*=\\s*(?.*?)$" }, { "ConfigFile": "settings.toml", "ConfigType": "toml", "AutoMap": false, "ConfigFormat": "{0} = {1}", "ConfigFormatRegex": "^(?.+?)\\s*=\\s*(?.*?)$" } ] ``` -------------------------------- ### Define configuration fields in JSON Source: https://github.com/cubecoders/amptemplates/blob/main/_autodocs/config-manifest.md Example structure of a configuration manifest array containing text and numeric input definitions. ```json [ { "DisplayName": "Server Name", "FieldName": "ServerName", "InputType": "text", "DefaultValue": "My Server", ... }, { "DisplayName": "Max Players", "FieldName": "MaxPlayers", "InputType": "number", "MinValue": "1", "MaxValue": "128", ... } ] ``` -------------------------------- ### BeamMP Configuration Template Source: https://github.com/cubecoders/amptemplates/blob/main/_autodocs/kvp-format.md A complete example of an AMP application configuration file defining metadata, paths, console regex patterns, and resource limits. ```ini Meta.DisplayName=BeamMP Meta.Description=BeamMP Dedicated Server Meta.OS=Windows, Linux Meta.AarchSupport=Native Meta.Arch=All Meta.Author=IceOfWraith Meta.URL=https://beammp.com/ Meta.ConfigManifest=beammpconfig.json Meta.MetaConfigManifest=beammpmetaconfig.json Meta.MinAMPVersion=2.4.5.4 Meta.ConfigVersion=6 App.DisplayName=BeamMP App.RootDir=./beammp/ App.BaseDirectory=./beammp/serverfiles/ App.ExecutableWin=serverfiles\BeamMP-Server.exe App.ExecutableLinux=serverfiles/BeamMP-Server App.CommandLineArgs={{$PlatformArgs}} {{$FormattedArgs}} App.ExitMethod=String App.ExitString=exit App.HasWriteableConsole=True App.HasReadableConsole=True App.Ports=@IncludeJson[beammpports.json] App.UpdateSources=@IncludeJson[beammpupdates.json] Console.AppReadyRegex=^.*\[INFO\] ALL SYSTEMS STARTED SUCCESSFULLY Console.UserJoinRegex=^.*\[INFO\] (?.+?) is now synced!$ Console.UserLeaveRegex=^.*\[INFO\] (?.+?) Connection Terminated$ Console.UserChatRegex=^.*\[CHAT\] \(\d+\) <(?.+?)> (?.+)$ Limits.SleepMode=True Limits.SleepDelayMinutes=5 ``` -------------------------------- ### Define Server Ready Detection Regex Source: https://github.com/cubecoders/amptemplates/blob/main/_autodocs/template-patterns.md Regex pattern template for identifying when a server has successfully initialized or started. ```regex ^.*\[.+?\]\s+.*?(started|ready|initialized).*$ ``` -------------------------------- ### Player Join Pattern Examples Source: https://github.com/cubecoders/amptemplates/blob/main/_autodocs/template-patterns.md Regex implementations for capturing player join events across different server formats. ```regex # BeamMP ^.*\[INFO\] (?.+?) is now synced!$ # Generic pattern ^.*\[CONNECT\] User (?.+?) connected from ^.*\[JOIN\] Player (?.+?) joined the game ``` -------------------------------- ### Player Leave Pattern Examples Source: https://github.com/cubecoders/amptemplates/blob/main/_autodocs/template-patterns.md Regex implementations for capturing player leave events. ```regex # BeamMP ^.*\[INFO\] (?.+?) Connection Terminated$ # Generic pattern ^.*\[DISCONNECT\] User (?.+?) disconnected ``` -------------------------------- ### Configure AutoMap Feature Source: https://github.com/cubecoders/amptemplates/blob/main/_autodocs/metaconfig-manifest.md Example manifest configuration enabling AutoMap and a corresponding config field definition. ```json { "ConfigFile": "server.cfg", "ConfigType": "ini", "AutoMap": true, "ConfigFormat": "{0}={1}", "ConfigFormatRegex": "^(?.+?)\\s*=\\s*(?.*?)$" } ``` ```json { "DisplayName": "Server Name", "ParamFieldName": "ServerName", "InputType": "text" } ``` -------------------------------- ### Define a ports manifest array Source: https://github.com/cubecoders/amptemplates/blob/main/_autodocs/ports-manifest.md A complete example of a ports manifest file containing multiple port definition objects. ```json [ { "Protocol": "UDP", "Port": 7777, "Ref": "GamePort", "Name": "Game Port", "Description": "Port for main game traffic" }, { "Protocol": "TCP", "Port": 27020, "Ref": "RCONPort", "Name": "RCON Port", "Description": "Port for remote console access" } ] ``` -------------------------------- ### Chat Message Pattern Examples Source: https://github.com/cubecoders/amptemplates/blob/main/_autodocs/template-patterns.md Regex implementations for parsing chat messages from console logs. ```regex # BeamMP ^.*\[CHAT\] \(\d+\) <(?.+?)> (?.+)$ # Generic pattern ^.*\[CHAT\] (?.+?): (?.+)$ ^.* <(?.+?)> (?.+)$ ``` -------------------------------- ### Visualize Application Startup Flow Source: https://github.com/cubecoders/amptemplates/blob/main/_autodocs/architecture.md Step-by-step sequence of the application startup process. ```text 1. Load Root Configuration (KVP) 2. Parse Configuration Manifest (config.json) 3. Load Configuration Values (from file or defaults) 4. Validate Against Schema 5. Resolve Variables and References 6. Generate Command-Line Arguments 7. Write Configuration Files (via metaconfig.json) 8. Launch Application (ExecutableWin/ExecutableLinux) 9. Monitor Console Output (Console.* patterns) 10. Detect Ready State (Console.AppReadyRegex) ``` -------------------------------- ### AMP Instance Configuration and Launch Flow Source: https://github.com/cubecoders/amptemplates/blob/main/_autodocs/00-START-HERE.md A visual representation of the lifecycle from user configuration to server execution. ```text User configures AMP instance ↓ Configuration fields from *config.json ↓ Values validated against constraints ↓ ├→ Command-line arguments generated ├→ Configuration files written (metaconfig.json) └→ Environment variables set ↓ Application launched with ExecutableWin/ExecutableLinux ↓ Console output monitored with Console.AppReadyRegex ↓ Server running ``` -------------------------------- ### Define a UDP port Source: https://github.com/cubecoders/amptemplates/blob/main/_autodocs/ports-manifest.md Example of a port definition using the UDP protocol. ```json { "Protocol": "UDP", "Port": 7777, "Ref": "GamePort", "Name": "Game Port", "Description": "Main game traffic and player connections" } ``` -------------------------------- ### Define a TCP port Source: https://github.com/cubecoders/amptemplates/blob/main/_autodocs/ports-manifest.md Example of a port definition using the TCP protocol. ```json { "Protocol": "TCP", "Port": 27020, "Ref": "RCONPort", "Name": "RCON Port", "Description": "Remote console for server administration" } ``` -------------------------------- ### Define a dual-protocol port Source: https://github.com/cubecoders/amptemplates/blob/main/_autodocs/ports-manifest.md Example of a port definition supporting both TCP and UDP protocols. ```json { "Protocol": "Both", "Port": 27015, "Ref": "ServerPort", "Name": "Game and RCON Port", "Description": "Port for both game and RCON traffic" } ``` -------------------------------- ### Implement Steam and configuration download Source: https://github.com/cubecoders/amptemplates/blob/main/_autodocs/updates-manifest.md A multi-stage manifest that downloads game files and sets up a configuration directory. ```json [ { "UpdateStageName": "SteamCMD Download", "UpdateSource": "SteamCMD", "UpdateSourceData": "12345", "UpdateSourceArgs": "270880", "SkipOnFailure": false }, { "UpdateStageName": "Create Config Directory", "UpdateSource": "CreateDirectory", "UpdateSourceArgs": "{{$FullBaseDir}}config", "SkipOnFailure": false }, { "UpdateStageName": "Download Default Config", "UpdateSource": "FetchURL", "UpdateSourceData": "https://example.com/default.cfg", "UpdateSourceArgs": "default.cfg", "UpdateSourceTarget": "{{$FullBaseDir}}config", "SkipOnFailure": false } ] ``` -------------------------------- ### Define Update Stage Object Source: https://github.com/cubecoders/amptemplates/blob/main/_autodocs/api-reference.md Structure for defining update or installation steps in *updates.json files. ```typescript { // Core properties UpdateStageName: string; // Required. Stage description UpdateSource: enum; // Required. Download/execution method UpdateSourcePlatform: enum; // Required. Windows, Linux, All, Docker // Source-specific data UpdateSourceData?: string; // URL, path, app ID, etc. UpdateSourceArgs?: string; // Arguments or parameters UpdateSourceTarget?: string; // Target directory for download // Conditional execution UpdateSourceConditionSetting?: string; // Config field to check UpdateSourceConditionValue?: string; // Value that triggers stage // Processing options ForceDownloadPlatform?: enum; // Force download for platform UnzipUpdateSource?: boolean; // Auto-extract ZIP files DeleteAfterExtract?: boolean; // Delete ZIP after extraction OverwriteExistingFiles?: boolean; // Replace existing files // Error handling SkipOnFailure?: boolean; // Continue if stage fails } ``` -------------------------------- ### Define App Configuration Section Source: https://github.com/cubecoders/amptemplates/blob/main/_autodocs/api-reference.md Configures application execution paths, command line arguments, and network settings. ```text App.DisplayName : string App.RootDir : path App.BaseDirectory : path App.SteamWorkshopDownloadLocation : path App.ExecutableWin : path App.ExecutableLinux : path App.WorkingDir : path App.LinuxCommandLineArgs : string App.WindowsCommandLineArgs : string App.CommandLineArgs : string with variables App.UseLinuxIOREDIR : boolean App.EnvironmentVariables : JSON object App.CommandLineParameterFormat : string template App.CommandLineParameterDelimiter : string App.ExitMethod : enum (String, OS_CLOSE, WM_CLOSE) App.ExitTimeout : integer (seconds) App.ExitString : string App.ExitFile : filename App.HasWriteableConsole : boolean App.HasReadableConsole : boolean App.SupportsLiveSettingsChanges : boolean App.LiveSettingChangeCommandFormat : string App.ApplicationIPBinding : IP address App.Ports : @IncludeJson[ports.json] App.AdminPortRef : integer App.PrimaryApplicationPortRef : string App.UniversalSleepApplicationUDPPortRef : integer App.UniversalSleepSteamQueryPortRef : integer App.MaxUsers : integer App.UseRandomAdminPassword : boolean App.PersistRandomPassword : boolean App.RemoteAdminPassword : string App.AdminMethod : enum (STDIO, TCP, UDP, SSH) App.AdminLoginTransform : enum (None, Crypt, MD5, SHA256) App.LoginTransformPrefix : string App.RCONConnectDelaySeconds : integer App.RCONConnectRetrySeconds : integer App.RCONHeartbeatMinutes : integer App.RCONHeartbeatCommand : string App.TelnetLoginFormat : string App.UpdateSources : @IncludeJson[updates.json] App.SteamUpdateAnonymousLogin : boolean App.SteamForceLoginPrompt : boolean App.RapidStartup : boolean App.MonitorChildProcess : boolean App.DumpFullChildProcessTree : boolean App.MonitorChildProcessWaitMs : integer App.MonitorChildProcessName : string App.SupportsUniversalSleep : boolean App.WakeupMode : enum (Any, Manual) App.ApplicationReadyMode : enum (RegexMatch, ProcessStart) ``` -------------------------------- ### Reference Port Variables in KVP and Manifest Source: https://github.com/cubecoders/amptemplates/blob/main/_autodocs/ports-manifest.md Demonstrates how to inject port variables into command-line arguments and configuration default values. ```text App.CommandLineArgs=-Port={{$GamePort}} -QueryPort={{$QueryPort}} ``` ```json { "DisplayName": "Connection Port", "DefaultValue": "{{$GamePort}}" } ``` -------------------------------- ### App Section Configuration Source: https://github.com/cubecoders/amptemplates/blob/main/_autodocs/quick-reference.md Core application settings including paths, executables, and resource limits. ```text App.DisplayName=Application Name App.RootDir=./app/ App.BaseDirectory=./app/serverfiles/ App.ExecutableWin=app.exe App.ExecutableLinux=app App.CommandLineArgs={{$PlatformArgs}} {{$FormattedArgs}} App.ExitMethod=String App.ExitString=stop App.HasWriteableConsole=True App.HasReadableConsole=True App.Ports=@IncludeJson[appports.json] App.UpdateSources=@IncludeJson[appupdates.json] App.MaxUsers=32 ``` -------------------------------- ### Define Configuration File Path with Variables Source: https://github.com/cubecoders/amptemplates/blob/main/_autodocs/metaconfig-manifest.md Use template variables like {{$FullBaseDir}} to define dynamic absolute paths for configuration files. ```json { "ConfigFile": "{{$FullBaseDir}}config/server.cfg" } ``` -------------------------------- ### Configure Command-Line Integration Source: https://github.com/cubecoders/amptemplates/blob/main/_autodocs/config-manifest.md Enable command-line inclusion and define parameter names for automated argument generation. ```json { "DisplayName": "Max Players", "FieldName": "$MaxUsers", "ParamFieldName": "MaxServerPlayers", "InputType": "number", "IncludeInCommandLine": true, "DefaultValue": "32" } ``` -------------------------------- ### ConfigType Options Source: https://github.com/cubecoders/amptemplates/blob/main/_autodocs/INDEX.md Supported file formats for template configuration files. ```text ini Windows INI format toml TOML format json JSON format xml XML format yaml YAML format sii Structured INI (Unreal) plain Plain text (search/replace only) ``` -------------------------------- ### Define Server Configuration Source: https://github.com/cubecoders/amptemplates/blob/main/_autodocs/config-manifest.md Standard structure for basic server settings. ```json { "DisplayName": "Server Name", "FieldName": "ServerName", "InputType": "text", "Category": "Server", "Subcategory": "Basic", "Description": "Display name for the server", "Required": true, "DefaultValue": "My Server", "ParamFieldName": "name", "IncludeInCommandLine": true } ``` -------------------------------- ### American Truck Simulator Update Manifest Source: https://github.com/cubecoders/amptemplates/blob/main/_autodocs/updates-manifest.md Handles SteamCMD download, directory setup, and remote configuration file fetching for American Truck Simulator. ```json [ { "UpdateStageName": "SteamCMD Download", "UpdateSourceData": "2239530", "UpdateSourcePlatform": "All", "UpdateSource": "SteamCMD", "UpdateSourceArgs": "270880", "SkipOnFailure": false }, { "UpdateStageName": "Settings Directory Creation", "UpdateSourcePlatform": "All", "UpdateSource": "CreateDirectory", "UpdateSourceArgs": "{{$FullBaseDir}}American Truck Simulator", "SkipOnFailure": false }, { "UpdateStageName": "Settings Template Download", "UpdateSourcePlatform": "All", "UpdateSource": "FetchURL", "UpdateSourceData": "https://raw.githubusercontent.com/CubeCoders/AMPTemplates/main/american-truck-simulator.sii", "UpdateSourceArgs": "AMP_server_config.sii", "UpdateSourceTarget": "{{$FullRootDir}}", "OverwriteExistingFiles": true, "SkipOnFailure": false } ] ``` -------------------------------- ### View Repository File Structure Source: https://github.com/cubecoders/amptemplates/blob/main/_autodocs/00-START-HERE.md Displays the directory layout of the documentation repository to help locate specific configuration and manifest files. ```text /output/ ├── 00-START-HERE.md ← You are here ├── README.md ← Project overview ├── INDEX.md ← Complete index and navigation ├── quick-reference.md ← Daily lookup reference ├── kvp-format.md ← KVP root file specification ├── config-manifest.md ← Configuration field schema ├── metaconfig-manifest.md ← File mapping specification ├── ports-manifest.md ← Port definition specification ├── updates-manifest.md ← Update procedure specification ├── template-patterns.md ← Patterns and best practices ├── api-reference.md ← Complete API specifications └── architecture.md ← System architecture and design ``` -------------------------------- ### Map INI and TOML Configuration Files Source: https://github.com/cubecoders/amptemplates/blob/main/_autodocs/quick-reference.md Configure automatic mapping for INI and TOML files using regex patterns. ```json { "ConfigFile": "config/server.ini", "ConfigType": "ini", "AutoMap": true, "ConfigFormat": "{0}={1}", "ConfigFormatRegex": "^(?.+?)\\s*=\\s*(?.*?)$" } ``` ```json { "ConfigFile": "server.toml", "ConfigType": "toml", "AutoMap": true, "ConfigFormat": "{0} = {1}", "ConfigFormatRegex": "^(?.+?)\\s*=\\s*(?.*?)$" } ``` -------------------------------- ### Define Basic Application Configuration Source: https://github.com/cubecoders/amptemplates/blob/main/_autodocs/kvp-format.md Standard metadata and execution settings for a dedicated server application. ```text Meta.DisplayName=Example Game Meta.Description=Example Game Dedicated Server Meta.OS=Windows, Linux Meta.Author=TemplateAuthor App.DisplayName=Example Game App.ExecutableWin=server.exe App.ExecutableLinux=server App.CommandLineArgs={{$PlatformArgs}} {{$FormattedArgs}} App.HasWriteableConsole=True App.HasReadableConsole=True ``` -------------------------------- ### Visualize Configuration Value Flow Source: https://github.com/cubecoders/amptemplates/blob/main/_autodocs/architecture.md Diagram showing the lifecycle of a configuration field from input to file writing. ```text Configuration Field (config.json) ↓ User Input / Default Value ↓ Validation (InputType, constraints) ↓ ParamFieldName Resolution ↓ ├─→ Command-Line Argument Format │ └─→ Command-line generation │ └─→ File Mapping (metaconfig.json) ├─→ ConfigFile Target ├─→ ConfigFormat Template └─→ File Writing ``` -------------------------------- ### Minimal AMP Template Configuration Source: https://github.com/cubecoders/amptemplates/blob/main/_autodocs/template-patterns.md The primary KVP file defining application metadata, directory structure, and console regex patterns. ```kvp # application.kvp Meta.DisplayName=Example Game Meta.Description=Example Game Dedicated Server Meta.OS=Windows, Linux Meta.Arch=x86_64 Meta.Author=TemplateAuthor Meta.URL=https://example.com/ Meta.ConfigManifest=exampleconfig.json Meta.MetaConfigManifest=examplemetaconfig.json Meta.ConfigRoot=example.kvp Meta.MinAMPVersion=2.4.5.4 App.DisplayName=Example Game App.RootDir=./example/ App.BaseDirectory=./example/serverfiles/ App.ExecutableWin=serverfiles\server.exe App.ExecutableLinux=serverfiles/server App.CommandLineArgs={{$PlatformArgs}} {{$FormattedArgs}} App.ExitMethod=String App.ExitString=stop App.HasWriteableConsole=True App.HasReadableConsole=True App.Ports=@IncludeJson[exampleports.json] App.UpdateSources=@IncludeJson[exampleupdates.json] App.MaxUsers=32 Console.FilterMatchRegex=^.*\[\d{2}:\d{2}:\d{2}\]\s Console.AppReadyRegex=^.*Server.*started.*$ Console.UserJoinRegex=^.*(?.+?) joined Console.UserLeaveRegex=^.*(?.+?) left Limits.SleepMode=True Limits.SleepDelayMinutes=5 ``` -------------------------------- ### Module Dependency Hierarchy Source: https://github.com/cubecoders/amptemplates/blob/main/_autodocs/architecture.md Visual representation of the KVP root configuration and its associated manifests. ```text KVP (Root Configuration) ├── App.Ports → Ports Manifest ├── Meta.ConfigManifest → Configuration Manifest ├── Meta.MetaConfigManifest → File Mapping Manifest └── App.UpdateSources → Updates Manifest ``` -------------------------------- ### Console Ready Detection Regex Source: https://github.com/cubecoders/amptemplates/blob/main/_autodocs/quick-reference.md Regex patterns used to identify when an application has finished initializing. ```regex ^.*started.*$ Simple start message ^.*ready.*$ Ready message ^.*initialized.*$ Initialization complete ^.*\[INFO\].*OK.*$ Info message with OK ``` -------------------------------- ### Validate JSON files using jq Source: https://github.com/cubecoders/amptemplates/blob/main/_autodocs/quick-reference.md Use these commands to verify the syntax of your configuration files. ```bash jq . appconfig.json # Validate JSON syntax jq . appports.json jq . appmetaconfig.json jq . appupdates.json ``` -------------------------------- ### Configure URL download update stage Source: https://github.com/cubecoders/amptemplates/blob/main/_autodocs/quick-reference.md Use this to fetch a file from a remote URL and save it to a specific target directory. ```json { "UpdateStageName": "Download Config", "UpdateSourcePlatform": "All", "UpdateSource": "FetchURL", "UpdateSourceData": "https://example.com/config.cfg", "UpdateSourceArgs": "config.cfg", "UpdateSourceTarget": "{{$FullBaseDir}}", "SkipOnFailure": false } ``` -------------------------------- ### Use Variable Substitution Source: https://github.com/cubecoders/amptemplates/blob/main/_autodocs/quick-reference.md Inject platform-specific arguments and base directories using double curly brace syntax. ```text App.CommandLineArgs={{$PlatformArgs}} -dir={{$FullBaseDir}} ``` -------------------------------- ### Configure Command-Line Parameter Format Source: https://github.com/cubecoders/amptemplates/blob/main/_autodocs/template-patterns.md Sets the formatting and delimiter rules for command-line parameters in the KVP configuration. ```text App.CommandLineParameterFormat=-{0}={1} App.CommandLineParameterDelimiter= App.CommandLineArgs={{$PlatformArgs}} {{$FormattedArgs}} ``` -------------------------------- ### Define Linux Executable Paths Source: https://github.com/cubecoders/amptemplates/blob/main/_autodocs/quick-reference.md Use forward slashes for Linux file paths in the configuration. ```text App.ExecutableLinux=game/server # Forward slashes App.WorkingDir=serverfiles ``` -------------------------------- ### AMP Configuration Manifests Source: https://github.com/cubecoders/amptemplates/blob/main/_autodocs/template-patterns.md JSON files defining user-facing configuration fields, file mapping, port requirements, and update sources. ```json // exampleconfig.json [ { "DisplayName": "Server Name", "FieldName": "ServerName", "InputType": "text", "DefaultValue": "Example Server", "ParamFieldName": "name", "IncludeInCommandLine": true }, { "DisplayName": "Max Players", "FieldName": "$MaxUsers", "InputType": "number", "DefaultValue": "32", "MinValue": "1", "MaxValue": "128", "ParamFieldName": "maxplayers", "IncludeInCommandLine": true } ] ``` ```json // examplemetaconfig.json [ { "ConfigFile": "serverfiles/config.ini", "ConfigType": "ini", "AutoMap": true, "ConfigFormat": "{0}={1}", "ConfigFormatRegex": "^(?.+?)\\s*=\\s*(?.*?)$" } ] ``` ```json // exampleports.json [ { "Protocol": "UDP", "Port": 7777, "Ref": "GamePort", "Name": "Game Port" } ] ``` ```json // exampleupdates.json [ { "UpdateStageName": "Download Server", "UpdateSourcePlatform": "All", "UpdateSource": "SteamCMD", "UpdateSourceData": "90", "UpdateSourceArgs": "90", "SkipOnFailure": false } ] ``` -------------------------------- ### Configure Docker Support Patterns Source: https://github.com/cubecoders/amptemplates/blob/main/_autodocs/template-patterns.md Defines container policies and image requirements for different application environments. ```text Meta.SpecificDockerImage=cubecoders/ampbase:wine-stable Meta.DockerRequired=False Meta.ContainerPolicy=SupportedOnWindows,RecommendedOnLinux Meta.ContainerPolicyReason=Requires Wine for Windows executables on Linux ``` ```text Meta.SpecificDockerImage=cubecoders/ampbase:debian Meta.DockerRequired=False Meta.ContainerPolicy=RecommendedOnLinux Meta.ContainerPolicyReason=Uses newer libraries available in Debian base ``` ```text Meta.DockerRequired=False Meta.ContainerPolicy=SupportedOnWindows ``` -------------------------------- ### Configure Docker Container Settings Source: https://github.com/cubecoders/amptemplates/blob/main/_autodocs/kvp-format.md Settings for defining container images and policies for cross-platform compatibility. ```text Meta.SpecificDockerImage=cubecoders/ampbase:wine-stable Meta.DockerRequired=False Meta.ContainerPolicy=SupportedOnWindows,RecommendedOnLinux Meta.ContainerPolicyReason=Requires Wine for Windows executables on Linux ``` -------------------------------- ### Custom Configuration Fields Source: https://github.com/cubecoders/amptemplates/blob/main/_autodocs/quick-reference.md Syntax for accessing custom configuration fields and server settings. ```text {{FieldName}} Any config field value {{ServerName}} From configuration {{BindAddress}} From configuration ``` -------------------------------- ### Implement basic Steam application update Source: https://github.com/cubecoders/amptemplates/blob/main/_autodocs/updates-manifest.md A minimal manifest configuration for downloading files via SteamCMD. ```json [ { "UpdateStageName": "SteamCMD Download", "UpdateSource": "SteamCMD", "UpdateSourceData": "12345", "UpdateSourceArgs": "270880", "UpdateSourcePlatform": "All", "SkipOnFailure": false } ] ``` -------------------------------- ### Define Meta Configuration Section Source: https://github.com/cubecoders/amptemplates/blob/main/_autodocs/api-reference.md Defines metadata and environment requirements for the application template. ```text Meta.DisplayName : string Meta.Description : string Meta.OS : comma-separated enum (Windows, Linux) Meta.AarchSupport : enum (Native, Unknown, Unsupported) Meta.Arch : string (x86_64, All, etc.) Meta.Author : string Meta.URL : URL Meta.DisplayImageSource : string (steam:ID format) Meta.EndpointURIFormat : string with variable substitution Meta.ConfigManifest : filename Meta.MetaConfigManifest : filename Meta.ConfigRoot : filename (self-reference) Meta.MinAMPVersion : version (X.Y.Z.W format) Meta.SpecificDockerImage : string Meta.DockerRequired : boolean Meta.DockerBaseReadOnly : boolean Meta.ContainerPolicy : comma-separated enum Meta.ContainerPolicyReason : string Meta.ExtraSetupStepsURI : URL Meta.Prerequisites : JSON array Meta.ExtraContainerPackages : JSON array Meta.ConfigReleaseState : enum (NotSpecified, Beta, Stable) Meta.NoCommercialUsage : boolean Meta.ConfigVersion : integer Meta.ReleaseNotes : string Meta.BreakingReleaseNotes : string Meta.AppConfigId : GUID Meta.ImportableExtensions : JSON array Meta.AppIsMultiIPAware : boolean ``` -------------------------------- ### Common Environment Variables Source: https://github.com/cubecoders/amptemplates/blob/main/_autodocs/api-reference.md Lists standard environment variables used for configuring SteamCMD, Wine, Java, and library paths. ```text SteamAppId Steam application ID for SteamCMD WINEPREFIX Wine prefix path (Wine-based Linux servers) WINEARCH Wine architecture (win32, win64) WINEDEBUG Wine debug flags (typically: -all) WINEDLLOVERRIDES Wine DLL overrides (version.dll=n,b) JAVA_HOME Java installation directory JAVA_OPTS Java runtime options LD_LIBRARY_PATH Linux library search path ``` -------------------------------- ### Mark Files as Importable Source: https://github.com/cubecoders/amptemplates/blob/main/_autodocs/metaconfig-manifest.md Configuration to allow specific files to be imported or downloaded from the template. ```json { "ConfigFile": "AbioticFactor/Saved/Config/WindowsServer/SandboxSettings.ini", "ConfigType": "ini", "AutoMap": true, "Importable": true } ``` -------------------------------- ### Configure Executable Update Source Source: https://github.com/cubecoders/amptemplates/blob/main/_autodocs/updates-manifest.md Runs an external program or script with command-line arguments. ```json { "UpdateStageName": "Initialize Wine", "UpdateSource": "Executable", "UpdateSourceData": "/bin/bash", "UpdateSourceArgs": "-c \"WINEPREFIX=\\\"{{$FullRootDir}}.wine\\\" wineboot --init\"", "UpdateSourcePlatform": "Linux" } ``` -------------------------------- ### Steam and Configuration Update Procedure Source: https://github.com/cubecoders/amptemplates/blob/main/_autodocs/template-patterns.md Update sequence for games requiring external configuration files alongside Steam assets. ```text 1. Download via SteamCMD 2. Create configuration directory 3. Download default configuration file 4. (Optional) Download additional resources ``` -------------------------------- ### Define Windows Executable Paths Source: https://github.com/cubecoders/amptemplates/blob/main/_autodocs/quick-reference.md Use backslashes for Windows file paths in the configuration. ```text App.ExecutableWin=game\server.exe # Backslashes App.WorkingDir=serverfiles ``` -------------------------------- ### Configure SteamCMD update stage Source: https://github.com/cubecoders/amptemplates/blob/main/_autodocs/quick-reference.md Use this to trigger a SteamCMD download using an AppID. ```json { "UpdateStageName": "Download Server", "UpdateSourcePlatform": "All", "UpdateSource": "SteamCMD", "UpdateSourceData": "12345", "UpdateSourceArgs": "270880", "SkipOnFailure": false } ``` -------------------------------- ### Set Environment Variables Source: https://github.com/cubecoders/amptemplates/blob/main/_autodocs/template-patterns.md Configures application-specific environment variables using the App.EnvironmentVariables key. ```text App.EnvironmentVariables={"SteamAppId":"427410","WINEPREFIX":"{{$FullRootDir}}.wine","WINEARCH":"win64"} ``` -------------------------------- ### Direct Download Update Procedure Source: https://github.com/cubecoders/amptemplates/blob/main/_autodocs/template-patterns.md Update sequence for non-Steam applications downloaded from external sources. ```text 1. Download from GitHub/website 2. Extract files 3. Download configuration/templates 4. Set up directories ``` -------------------------------- ### Configuration Hierarchy Pattern Source: https://github.com/cubecoders/amptemplates/blob/main/_autodocs/template-patterns.md Recommended hierarchical organization of configuration fields using categories and subcategories. ```text Category: "Server Settings" Subcategory: "Basic" → ServerName, Description, MaxPlayers Subcategory: "Network" → Port, QueryPort, BindAddress Subcategory: "Security" → AdminPassword, AdminRconPassword Subcategory: "Performance" → ThreadCount, MemoryLimit Category: "Gameplay" Subcategory: "Difficulty" → DifficultyLevel, PvPMode Subcategory: "Features" → EnableMods, EnableVoting ``` -------------------------------- ### Define Performance Configuration Source: https://github.com/cubecoders/amptemplates/blob/main/_autodocs/config-manifest.md Standard structure for performance-related settings like player limits. ```json { "DisplayName": "Max Players", "FieldName": "$MaxUsers", "InputType": "number", "Category": "Performance", "Description": "Maximum concurrent players", "MinValue": "1", "MaxValue": "256", "Suffix": "players", "DefaultValue": "32", "ParamFieldName": "maxplayers", "IncludeInCommandLine": true } ``` -------------------------------- ### Define Required Fields Source: https://github.com/cubecoders/amptemplates/blob/main/_autodocs/config-manifest.md Marks a configuration field as mandatory. ```json { "Required": true } ``` -------------------------------- ### Configure FetchURL Update Source Source: https://github.com/cubecoders/amptemplates/blob/main/_autodocs/updates-manifest.md Downloads a file from a specified HTTP/HTTPS URL. ```json { "UpdateStageName": "Download Configuration", "UpdateSource": "FetchURL", "UpdateSourceData": "https://raw.githubusercontent.com/CubeCoders/AMPTemplates/main/config.cfg", "UpdateSourceArgs": "config.cfg", "UpdateSourceTarget": "{{$FullRootDir}}", "OverwriteExistingFiles": true } ``` -------------------------------- ### Use Variable Substitution in Config Manifest Source: https://github.com/cubecoders/amptemplates/blob/main/_autodocs/ports-manifest.md Reference a defined port key using the double-brace syntax for variable substitution. ```json { "DefaultValue": "{{$GamePort}}" } ``` -------------------------------- ### Configure script execution update stage Source: https://github.com/cubecoders/amptemplates/blob/main/_autodocs/quick-reference.md Use this to run an executable or system command during the update process. ```json { "UpdateStageName": "Initialize Wine", "UpdateSourcePlatform": "Linux", "UpdateSource": "Executable", "UpdateSourceData": "/bin/bash", "UpdateSourceArgs": "-c \"wineboot --init\"", "SkipOnFailure": false } ``` -------------------------------- ### Define Platform-Specific Arguments Source: https://github.com/cubecoders/amptemplates/blob/main/_autodocs/template-patterns.md Configures platform-specific command-line arguments for Linux and Windows environments. ```text App.LinuxCommandLineArgs="-server -steam -nohltv" App.WindowsCommandLineArgs="-console" App.CommandLineArgs={{$PlatformArgs}} -port={{$GamePort}} ``` -------------------------------- ### Configure directory creation update stage Source: https://github.com/cubecoders/amptemplates/blob/main/_autodocs/quick-reference.md Use this to ensure a specific directory exists during the update process. ```json { "UpdateStageName": "Create Config Directory", "UpdateSourcePlatform": "All", "UpdateSource": "CreateDirectory", "UpdateSourceArgs": "{{$FullBaseDir}}config", "SkipOnFailure": false } ``` -------------------------------- ### Command Line Assembly Format Source: https://github.com/cubecoders/amptemplates/blob/main/_autodocs/api-reference.md The structure used to assemble configuration fields into executable command line arguments. ```text [executable] [platform-args] [formatted-args] ``` -------------------------------- ### UpdateSource Options Source: https://github.com/cubecoders/amptemplates/blob/main/_autodocs/INDEX.md Available methods for downloading, updating, and managing files within a template. ```text SteamCMD Download via SteamCMD FetchURL Download from HTTP/HTTPS URL FetchURLFromJQ Download URL from JSON (via JQ) CreateDirectory Create directory DeleteFile Delete file/directory CopyFile Copy file ExtractZip Extract ZIP archive Move Move/rename file Executable Execute external program ``` -------------------------------- ### Configure CreateDirectory Update Source Source: https://github.com/cubecoders/amptemplates/blob/main/_autodocs/updates-manifest.md Ensures a specific directory exists on the filesystem. ```json { "UpdateStageName": "Create Config Directory", "UpdateSource": "CreateDirectory", "UpdateSourceArgs": "{{$FullBaseDir}}AbioticFactor/Saved/Config/WindowsServer" } ``` -------------------------------- ### Define Configuration Regex Patterns Source: https://github.com/cubecoders/amptemplates/blob/main/_autodocs/metaconfig-manifest.md Regex patterns for parsing configuration files using named capture groups for keys and values. ```regex ^(?.+?)\s*=\s*(?.*?)$ ``` ```regex ^(?.+?)\s*=\s*(?.*?)$ ``` ```regex ^(?\S+)\s+(?.+)$ ``` -------------------------------- ### Configure Docker for Wine-based servers Source: https://github.com/cubecoders/amptemplates/blob/main/_autodocs/quick-reference.md Required settings for running Wine-based servers in Docker containers. ```ini Meta.SpecificDockerImage=cubecoders/ampbase:wine-stable Meta.DockerRequired=False Meta.ContainerPolicy=RecommendedOnLinux ``` -------------------------------- ### KVP Configuration Properties Source: https://github.com/cubecoders/amptemplates/blob/main/_autodocs/INDEX.md Core properties for defining application metadata, execution paths, and console monitoring. ```text Meta.DisplayName // App name Meta.OS // Supported platforms App.ExecutableWin/Linux // Executable path App.CommandLineArgs // Command template App.Ports // Port inclusion Console.AppReadyRegex // Ready state detection Console.UserJoinRegex // Player join pattern Limits.SleepMode // Idle suspension ``` -------------------------------- ### InputType Options Source: https://github.com/cubecoders/amptemplates/blob/main/_autodocs/INDEX.md List of available input types for template configuration fields. ```text text String input number Numeric input with min/max enum Dropdown selection checkbox Boolean toggle password Masked text ipaddress IP address input path File/directory path datetime Date and time picker json JSON data structure ``` -------------------------------- ### BeamMP Configuration Manifest Source: https://github.com/cubecoders/amptemplates/blob/main/_autodocs/metaconfig-manifest.md Defines the TOML configuration file path and format for BeamMP servers. ```json [ { "ConfigFile": "serverfiles/ServerConfig.toml", "ConfigType": "toml", "AutoMap": true, "ConfigFormat": "{0} = {1}", "ConfigFormatRegex": "^(?.+?)\\s*=\\s*(?.*?)$" } ] ``` -------------------------------- ### Configure Docker for Linux-native servers Source: https://github.com/cubecoders/amptemplates/blob/main/_autodocs/quick-reference.md Required settings for running Linux-native servers in Docker containers. ```ini Meta.SpecificDockerImage=cubecoders/ampbase:debian Meta.DockerRequired=False ``` -------------------------------- ### Define a Basic Configuration Field Source: https://github.com/cubecoders/amptemplates/blob/main/_autodocs/quick-reference.md The standard structure for defining a configuration field in the manifest. ```json { "DisplayName": "Field Label", "FieldName": "fieldIdentifier", "InputType": "text|number|enum|checkbox|password", "DefaultValue": "default", "Description": "What this setting does", "ParamFieldName": "CommandLineParam", "IncludeInCommandLine": true } ``` -------------------------------- ### Configure SteamCMD Update Source Source: https://github.com/cubecoders/amptemplates/blob/main/_autodocs/updates-manifest.md Downloads application files from Steam using a specific App ID. ```json { "UpdateStageName": "Abiotic Factor Download", "UpdateSource": "SteamCMD", "UpdateSourceData": "2857200", "UpdateSourceArgs": "427410", "ForceDownloadPlatform": "Windows", "SkipOnFailure": false } ``` -------------------------------- ### Configure Automated File Extraction Source: https://github.com/cubecoders/amptemplates/blob/main/_autodocs/updates-manifest.md Enable UnzipUpdateSource to extract downloaded archives. Optionally set DeleteAfterExtract to remove the source file post-extraction. ```json { "UpdateStageName": "Download and Extract", "UpdateSource": "FetchURL", "UpdateSourceData": "https://example.com/files.zip", "UpdateSourceArgs": "files.zip", "UpdateSourceTarget": "{{$FullBaseDir}}", "UnzipUpdateSource": true, "DeleteAfterExtract": true } ``` ```json { "UpdateStageName": "Extract Files", "UpdateSource": "FetchURL", "UpdateSourceData": "https://example.com/archive.zip", "UnzipUpdateSource": true, "DeleteAfterExtract": true } ``` -------------------------------- ### Protocol Options Source: https://github.com/cubecoders/amptemplates/blob/main/_autodocs/INDEX.md Network protocol types supported for port configuration. ```text TCP Connection-oriented UDP Connectionless Both TCP and UDP on same port ``` -------------------------------- ### Define Configuration Field Hierarchy Source: https://github.com/cubecoders/amptemplates/blob/main/_autodocs/config-manifest.md Use dot-separated paths to organize fields into categories and subcategories for the UI. ```json { "Category": "Server Settings", "Subcategory": "Network", "DisplayName": "Server Port" } ``` -------------------------------- ### Visualize Variable Substitution Flow Source: https://github.com/cubecoders/amptemplates/blob/main/_autodocs/architecture.md Diagram illustrating how template strings are resolved into final values. ```text Template String (e.g., "{{$FullBaseDir}}config.ini") ↓ Token Identification ↓ ├─→ System Variables: {{$FullRootDir}}, {{$FullBaseDir}}, etc. ├─→ Port References: {{$GamePort}}, {{$QueryPort}}, etc. └─→ Configuration Fields: {{FieldName}}, {{ServerName}}, etc. ↓ Value Lookup ↓ Resolution and Substitution ↓ Final String ``` -------------------------------- ### Define Port References in KVP Source: https://github.com/cubecoders/amptemplates/blob/main/_autodocs/architecture.md Configuration syntax for mapping application ports within the KVP file. ```ini App.PrimaryApplicationPortRef=GamePort App.AdminPortRef=2 ``` -------------------------------- ### Meta Section Configuration Source: https://github.com/cubecoders/amptemplates/blob/main/_autodocs/quick-reference.md Mandatory metadata settings for the application template. ```text Meta.DisplayName=Application Name Meta.Description=Short Description Meta.OS=Windows, Linux Meta.Arch=x86_64 Meta.Author=AuthorName Meta.URL=https://example.com/ Meta.ConfigManifest=appconfig.json Meta.MetaConfigManifest=appmetaconfig.json Meta.MinAMPVersion=2.4.5.4 ``` -------------------------------- ### Configure RCON Integration Source: https://github.com/cubecoders/amptemplates/blob/main/_autodocs/template-patterns.md Sets up remote console connectivity parameters and the corresponding UI configuration field. ```text App.AdminMethod=TCP App.RCONConnectDelaySeconds=30 App.RCONConnectRetrySeconds=15 App.RCONHeartbeatMinutes=5 App.RCONHeartbeatCommand=ping ``` ```json { "DisplayName": "RCON Password", "FieldName": "RconPassword", "InputType": "password", "ParamFieldName": "rcon_password", "IncludeInCommandLine": true } ``` -------------------------------- ### Port Reference Syntax Source: https://github.com/cubecoders/amptemplates/blob/main/_autodocs/api-reference.md Various ways to reference ports within the template configuration. ```text App.PrimaryApplicationPortRef=GamePort App.AdminPortRef=2 Variable: {{$GamePort}} URI: steam://connect/{ip}:{GenericModule.App.Ports.$GamePort} ``` -------------------------------- ### Limits Section Configuration Source: https://github.com/cubecoders/amptemplates/blob/main/_autodocs/quick-reference.md Settings for managing application sleep behavior. ```text Limits.SleepMode=True Limits.SleepDelayMinutes=5 ``` -------------------------------- ### Define Standard INI Configuration Source: https://github.com/cubecoders/amptemplates/blob/main/_autodocs/metaconfig-manifest.md Configures a standard INI file with key-value mapping and regex parsing. ```json { "ConfigFile": "config/server.ini", "ConfigType": "ini", "AutoMap": true, "Importable": true, "ConfigFormat": "{0}={1}", "ConfigFormatRegex": "^(?.+?)\\s*=\\s*(?.*?)$" } ``` -------------------------------- ### Define Maximum User Limits Source: https://github.com/cubecoders/amptemplates/blob/main/_autodocs/template-patterns.md Sets the default player capacity for various server scales using the App.MaxUsers property. ```text App.MaxUsers=32 # Standard game server App.MaxUsers=8 # Small multiplayer App.MaxUsers=100 # Large-scale server App.MaxUsers=256 # Massive multiplayer ``` ```json { "DisplayName": "Max Players", "FieldName": "$MaxUsers", "InputType": "number", "MinValue": "1", "MaxValue": "256", "DefaultValue": "32" } ``` -------------------------------- ### Include Ports Manifest in KVP File Source: https://github.com/cubecoders/amptemplates/blob/main/_autodocs/ports-manifest.md Use the @IncludeJson directive to import the ports manifest into a KVP file. ```text App.Ports=@IncludeJson[beammpports.json] ``` -------------------------------- ### Define Network Configuration Source: https://github.com/cubecoders/amptemplates/blob/main/_autodocs/config-manifest.md Standard structure for network port settings. ```json { "DisplayName": "Game Port", "FieldName": "$GamePort", "InputType": "number", "Category": "Network", "Subcategory": "Ports", "Description": "Port for game traffic", "MinValue": "1024", "MaxValue": "65535", "DefaultValue": "27015" } ``` -------------------------------- ### Configuration Field Mapping Logic Source: https://github.com/cubecoders/amptemplates/blob/main/_autodocs/architecture.md Flowchart logic for processing configuration fields into command-line arguments or configuration files. ```text Field Name: "ServerName" ↓ If IncludeInCommandLine=true → ParamFieldName="ServerName" → Format: -ServerName=Value → Delimiter: space ↓ Command-Line: -ServerName=MyServer If ParamFieldName in metaconfig → ConfigFile: server.ini → Write: ServerName=MyServer ``` -------------------------------- ### BeamMP Update Manifest Source: https://github.com/cubecoders/amptemplates/blob/main/_autodocs/updates-manifest.md Downloads and extracts the BeamMP server binary from a remote URL. ```json [ { "UpdateStageName": "BeamMP Server Download", "UpdateSourcePlatform": "All", "UpdateSource": "FetchURL", "UpdateSourceData": "https://github.com/BeamMP/BeamMP-Server/releases/download/v3.0/BeamMP-Server-linux.zip", "UpdateSourceArgs": "BeamMP-Server-linux.zip", "UpdateSourceTarget": "{{$FullRootDir}}", "UnzipUpdateSource": true, "DeleteAfterExtract": true } ] ``` -------------------------------- ### Player Join Regex Patterns Source: https://github.com/cubecoders/amptemplates/blob/main/_autodocs/quick-reference.md Patterns to capture usernames when a player joins the server. ```regex ^.*(?.+?) joined ^.*\[CONNECT\] (?.+?) ^.*(?.+?) connected ```