From 4c9b1ec57dacdc7f21cf929577c6edf4b9810156 Mon Sep 17 00:00:00 2001 From: Greelan <53196309+Greelan@users.noreply.github.com> Date: Sun, 28 Aug 2022 16:47:52 +1000 Subject: [PATCH] Add Veloren (#168) --- veloren.kvp | 86 ++++++++++++++++++++++++++++++++++++++++++ velorenconfig.json | 55 +++++++++++++++++++++++++++ velorenmetaconfig.json | 8 ++++ velorensettings.ron | 41 ++++++++++++++++++++ 4 files changed, 190 insertions(+) create mode 100644 veloren.kvp create mode 100644 velorenconfig.json create mode 100644 velorenmetaconfig.json create mode 100644 velorensettings.ron diff --git a/veloren.kvp b/veloren.kvp new file mode 100644 index 0000000..ccd855c --- /dev/null +++ b/veloren.kvp @@ -0,0 +1,86 @@ +Meta.DisplayName=Veloren +Meta.Description=Veloren Dedicated Server +Meta.OS=Windows, Linux +Meta.Arch=x86_64 +Meta.Author=Greelan +Meta.URL=https://veloren.net +Meta.DisplayImageSource=url:https://cdn.discordapp.com/attachments/541307708146581519/712295605170602075/logo.png +Meta.EndpointURIFormat= +Meta.ConfigManifest=velorenconfig.json +Meta.MetaConfigManifest=velorenmetaconfig.json +Meta.ConfigRoot=veloren.kvp +Meta.MinAMPVersion=2.3.4.3 +Meta.SpecificDockerImage= +Meta.DockerRequired=False +Meta.ContainerPolicy=Supported +Meta.Prerequsites=[] +Meta.ConfigReleaseState=NotSpecified +Meta.NoCommercialUsage=False +App.DisplayName=Veloren +App.RootDir=./veloren/ +App.BaseDirectory=./veloren/ +App.ExecutableWin=veloren-server-cli.exe +App.ExecutableLinux=veloren-server-cli +App.WorkingDir= +App.LinuxCommandLineArgs= +App.WindowsCommandLineArgs= +App.CommandLineArgs={{$PlatformArgs}} {{$FormattedArgs}} +App.UseLinuxIOREDIR=False +App.AppSettings={} +App.EnvironmentVariables={"RUST_LOG":"debug,common::net=info"} +App.CommandLineParameterFormat=-{0} "{1}" +App.CommandLineParameterDelimiter= +App.ExitMethod=String +App.ExitTimeout=30 +App.ExitString=shutdown graceful 0 +App.ExitFile=lock +App.HasWriteableConsole=True +App.HasReadableConsole=True +App.SupportsLiveSettingsChanges=False +App.LiveSettingChangeCommandFormat=set {0} "{1}" +App.ApplicationIPBinding=0.0.0.0 +App.Ports=[{"Protocol":"TCP","Name":"Server Port","Description":"Port for game traffic","Port":14004,"Ref":"ServerPort"},{"Protocol":"TCP","Name":"Metrics Port","Description":"Port for metrics traffic","Port":14005,"Ref":"MetricsPort"}] +App.AdminPortRef=ServerPort +App.PrimaryApplicationPortRef=ServerPort +App.UniversalSleepApplicationUDPPortRef=ServerPort +App.UniversalSleepSteamQueryPortRef=ServerPort +App.MaxUsers=100 +App.UseRandomAdminPassword=False +App.RemoteAdminPassword=Password123 +App.AdminMethod=STDIO +App.AdminLoginTransform=None +App.RCONConnectDelaySeconds=5 +App.RCONConnectRetrySeconds=5 +App.RCONHeartbeatMinutes=0 +App.RCONHeartbeatCommand=ping +App.TelnetLoginFormat={0} +App.UpdateSources=[{"UpdateStageName":"Server Download","UpdateSourcePlatform":"Windows","UpdateSource":"FetchURL","UpdateSourceData":"https://download.veloren.net/latest/windows/x86_64/nightly","UpdateSourceTarget":"{{$FullRootDir}}","UnzipUpdateSource":false,"OverwriteExistingFiles":true,"DeleteAfterExtract":false},{"UpdateStageName":"Server Download","UpdateSourcePlatform":"Linux","UpdateSource":"FetchURL","UpdateSourceData":"https://download.veloren.net/latest/linux/x86_64/nightly","UpdateSourceTarget":"{{$FullRootDir}}","UnzipUpdateSource":false,"OverwriteExistingFiles":true,"DeleteAfterExtract":false},{"UpdateStageName":"Server Download Copy","UpdateSourcePlatform":"All","UpdateSource":"CopyFilePath","UpdateSourceData":"{{$FullInstanceDir}}nightly.zip","UpdateSourceArgs":"{{$FullRootDir}}nightly","OverwriteExistingFiles":true},{"UpdateStageName":"Server Extract","UpdateSourcePlatform":"All","UpdateSource":"ExtractArchive","UpdateSourceArgs":"{{$FullInstanceDir}}nightly.zip","UpdateSourceTarget":"{{$FullRootDir}}","OverwriteExistingFiles":true,"DeleteAfterExtract":true},{"UpdateStageName":"Set Executable Flag","UpdateSourcePlatform":"Linux","UpdateSource":"SetExecutableFlag","UpdateSourceArgs":"{{$FullRootDir}}veloren-server-cli"},{"UpdateStageName":"Settings Template Download","UpdateSourcePlatform":"All","UpdateSource":"FetchURL","UpdateSourceData":"https://raw.githubusercontent.com/CubeCoders/AMPTemplates/main/velorensettings.ron","UpdateSourceTarget":"{{$FullInstanceDir}}","OverwriteExistingFiles":true},{"UpdateStageName":"Config Directory Creation","UpdateSourcePlatform":"All","UpdateSource":"CreateDirectory","UpdateSourceArgs":"{{$FullBaseDir}}userdata/server/server_config"},{"UpdateStageName":"Settings Template Copy","UpdateSourcePlatform":"All","UpdateSource":"CopyFilePath","UpdateSourceData":"{{$FullBaseDir}}userdata/server/server_config/AMP_settings.ron","UpdateSourceArgs":"{{$FullInstanceDir}}velorensettings.ron","OverwriteExistingFiles":false}] +App.Compatibility=None +App.SteamUpdateAnonymousLogin=True +App.SteamForceLoginPrompt=False +App.RapidStartup=False +App.MonitorChildProcess=False +App.MonitorChildProcessWaitMs=100 +App.MonitorChildProcessName= +App.SupportsUniversalSleep=False +App.WakeupMode=Any +App.ApplicationReadyMode=RegexMatch +App.TemplateMatchRegex={{(\$?[\w]+)}} +Console.FilterMatchRegex=\[\d+m +Console.FilterMatchReplacement= +Console.ThrowawayMessageRegex=^(WARNING|ERROR): Shader.+$ +Console.AppReadyRegex=^[\d-]+T[\d:]+\.\d+Z\s+INFO veloren_server_cli: Server is ready to accept connections\.(?:.+?)$ +Console.UserJoinRegex=^[\d-]+T[\d:]+\.\d+Z\s+INFO network{(?:.+?)}: veloren_network_protocol::handshake: This Handshake is now configured! pid=(?.+?)$ +Console.UserLeaveRegex=^[\d-]+T[\d:]+\.\d+Z\s+INFO ((?:.+?)remote{p=(?.+?)}: veloren_network::api: Participant already has been shutdown gracefully|veloren_server_cli::shutdown_coordinator: Shutting down)$ +Console.UserChatRegex=^$ +Console.UpdateAvailableRegex=^\[\d\d:\d\d:\d\d\] \[INFO\] A new server update is available! v[\d\.]+.$ +Console.MetricsRegex= +Console.SuppressLogAtStart=False +Console.ActivateLogRegex= +Console.UserActions={} +Limits.SleepMode=True +Limits.SleepOnStart=False +Limits.SleepDelayMinutes=5 +Limits.DozeDelay=2 +Limits.AutoRetryCount=5 +Limits.SleepStartThresholdSeconds=25 diff --git a/velorenconfig.json b/velorenconfig.json new file mode 100644 index 0000000..d86bc9d --- /dev/null +++ b/velorenconfig.json @@ -0,0 +1,55 @@ +[ + { + "DisplayName":"Server Port", + "Category":"Server Settings", + "Description":"", + "Keywords":"", + "FieldName":"$ServerPort", + "InputType":"number", + "Hidden":true, + "IsFlagArgument":false, + "ParamFieldName":"server_port", + "IncludeInCommandLine":false, + "EnumValues":{} + }, + { + "DisplayName":"Metrics Port", + "Category":"Server Settings", + "Description":"", + "Keywords":"", + "FieldName":"$MetricsPort", + "InputType":"number", + "Hidden":true, + "IsFlagArgument":false, + "ParamFieldName":"metrics_port", + "IncludeInCommandLine":false, + "EnumValues":{} + }, + { + "DisplayName":"Server Name", + "Category":"Server Settings", + "Description":"Server name visible in the server list", + "Keywords":"server,name", + "FieldName":"ServerName", + "InputType":"text", + "IsFlagArgument":false, + "ParamFieldName":"server_name", + "IncludeInCommandLine":false, + "DefaultValue":"Veloren Server - Powered by AMP", + "EnumValues":{} + }, + { + "DisplayName":"Player Limit", + "Category":"Server Settings", + "Description":"Maximum number of players that may connect to the server", + "Keywords":"players,limit", + "FieldName":"$MaxUsers", + "InputType":"number", + "IsFlagArgument":false, + "ParamFieldName":"max_players", + "IncludeInCommandLine":false, + "DefaultValue":"100", + "Suffix":"players", + "EnumValues":{} + } +] diff --git a/velorenmetaconfig.json b/velorenmetaconfig.json new file mode 100644 index 0000000..63c3fcd --- /dev/null +++ b/velorenmetaconfig.json @@ -0,0 +1,8 @@ +[ + { + "ConfigFile":"userdata/server/server_config/settings.ron", + "AutoMap":true, + "ConfigType":"template", + "ConfigFileTemplate":"veloren/userdata/server/server_config/AMP_settings.ron" + } +] \ No newline at end of file diff --git a/velorensettings.ron b/velorensettings.ron new file mode 100644 index 0000000..be9ab96 --- /dev/null +++ b/velorensettings.ron @@ -0,0 +1,41 @@ +// DO NOT edit settings.ron directly +// AMP_settings.ron controls settings.ron. Edit AMP_settings.ron if you want to add or change certain settings +// NOTE: +// - Do not change values in double curly braces, ie {{}}. They are set either via the AMP UI (under "Server Settings") +// or are controlled by AMP itself (in particular, ports) +// - Other settings can be changed or added as needed +( + gameserver_protocols: [ + Tcp( + address: "0.0.0.0:{{server_port}}", + ), + // Uncomment the block below if you want the server to bind on an IPv6 socket as well as IPv4 + /* + Tcp( + address: "[::]:{{server_port}}", + ), + */ + ], + metrics_address: "127.0.0.1:{{metrics_port}}", + auth_server_address: Some("https://auth.veloren.net"), + max_players: {{max_players}}, + world_seed: 230, + server_name: "{{server_name}}", + start_time: 32400, + map_file: None, + max_view_distance: Some(65), + banned_words_files: [], + max_player_group_size: 6, + client_timeout: ( + secs: 40, + nanos: 0, + ), + spawn_town: None, + max_player_for_kill_broadcast: None, + calendar_mode: Auto, + gameplay: ( + battle_mode: Global(PvP), + safe_spawn: false, + explosion_burn_marks: true, + ), +)