diff --git a/cryofall.kvp b/cryofall.kvp new file mode 100644 index 0000000..b6110b8 --- /dev/null +++ b/cryofall.kvp @@ -0,0 +1,100 @@ +Meta.DisplayName=CryoFall +Meta.Description=CryoFall Dedicated Server +Meta.OS=Linux +Meta.AarchSupport=NotSupported +Meta.Arch=x86_64 +Meta.Author=Greelan +Meta.URL=https://cryofall.com/ +Meta.DisplayImageSource=steam:829590 +Meta.EndpointURIFormat= +Meta.ConfigManifest=cryofallconfig.json +Meta.MetaConfigManifest=cryofallmetaconfig.json +Meta.ConfigRoot=sbox.kvp +Meta.MinAMPVersion=2.4.6.6 +Meta.SpecificDockerImage= +Meta.DockerRequired=False +Meta.ContainerPolicy=Supported +Meta.ContainerPolicyReason= +Meta.ExtraSetupStepsURI= +Meta.Prerequsites=[] +Meta.ExtraContainerPackages=[] +Meta.ConfigReleaseState=NotSpecified +Meta.NoCommercialUsage=False +Meta.ConfigVersion=0.0.0.0 +Meta.ReleaseNotes= +Meta.BreakingReleaseNotes= +App.DisplayName=CryoFall +App.RootDir=./cryofall/ +App.BaseDirectory=./cryofall/1061710/ +App.SteamWorkshopDownloadLocation= +App.ExecutableWin=1061710\dotnet\dotnet.exe +App.ExecutableLinux=1061710/dotnet/dotnet +App.WorkingDir=1061710/Binaries/Server +App.LinuxCommandLineArgs= +App.WindowsCommandLineArgs= +App.CommandLineArgs={{$PlatformArgs}} ./CryoFall_Server.dll loadOrNew +server.port {{$ServerPort}} +server.ip {{$ApplicationIPBinding}} +server.maxplayers {{$MaxUsers}} {{$FormattedArgs}} +App.UseLinuxIOREDIR=False +App.AppSettings={} +App.EnvironmentVariables={"LD_LIBRARY_PATH":"{{$FullBaseDir}}linux64:%LD_LIBRARY_PATH%","SteamAppId":"829590","DOTNET_ROOT":"{{$FullBaseDir}}dotnet"} +App.CommandLineParameterFormat={0}={1} +App.CommandLineParameterDelimiter= +App.ExitMethod=String +App.ExitTimeout=30 +App.ExitString=stop 5 The server is shutting down! +App.ExitFile=app_exit.lck +App.HasWriteableConsole=True +App.HasReadableConsole=True +App.SupportsLiveSettingsChanges=False +App.LiveSettingChangeCommandFormat=set {0} "{1}" +App.ApplicationIPBinding=0.0.0.0 +App.Ports=[{"Protocol":"UDP","Port":6000,"Ref":"ServerPort","Name":"Server Port","Description":"Port for server traffic"}] +App.AdminPortRef=0 +App.PrimaryApplicationPortRef=ServerPort +App.UniversalSleepApplicationUDPPortRef=0 +App.UniversalSleepSteamQueryPortRef=0 +App.MaxUsers=100 +App.UseRandomAdminPassword=True +App.PersistRandomPassword=True +App.RemoteAdminPassword= +App.AdminMethod=STDIO +App.AdminLoginTransform=None +App.LoginTransformPrefix= +App.RCONConnectDelaySeconds=5 +App.RCONConnectRetrySeconds=5 +App.RCONHeartbeatMinutes=0 +App.RCONHeartbeatCommand=ping +App.TelnetLoginFormat={0} +App.UpdateSources=@IncludeJson[cryofallupdates.json] +App.PreStartStages=[] +App.ForceUpdate=False +App.ForceUpdateReason= +App.Compatibility=None +App.SteamUpdateAnonymousLogin=True +App.SteamForceLoginPrompt=False +App.RapidStartup=False +App.MonitorChildProcess=False +App.DumpFullChildProcessTree=False +App.MonitorChildProcessWaitMs=100 +App.MonitorChildProcessName= +App.SupportsUniversalSleep=False +App.WakeupMode=Any +App.ApplicationReadyMode=RegexMatch +App.TemplateMatchRegex={{(\$?[\w]+)}} +Console.FilterMatchRegex= +Console.FilterMatchReplacement= +Console.ThrowawayMessageRegex=^(WARNING|ERROR): Shader.+$ +Console.AppReadyRegex=^[\d\.]+ [\d:\.]+ \[IMP\] UDPServer: Socket-server listening on [\d\.]+:\d+ \(UDP\)$ +Console.UserJoinRegex=^$ +Console.UserLeaveRegex=^$ +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=False +Limits.SleepOnStart=False +Limits.SleepDelayMinutes=5 +Limits.DozeDelay=2 +Limits.AutoRetryCount=5 +Limits.SleepStartThresholdSeconds=25 diff --git a/cryofallconfig.json b/cryofallconfig.json new file mode 100644 index 0000000..5e28444 --- /dev/null +++ b/cryofallconfig.json @@ -0,0 +1,279 @@ +[ + { + "DisplayName":"Server Port", + "Category":"CryoFall Server Settings", + "Description":"", + "Keywords":"", + "FieldName":"$ServerPort", + "InputType":"number", + "Hidden":true, + "ParamFieldName":"/settings/network/port", + "EnumValues":{} + }, + { + "DisplayName":"Make Server Public", + "Category":"CryoFall Server Settings", + "Description":"If set, the server will be added to the public server list", + "Keywords":"public,is_public_server", + "FieldName":"is_public_server", + "InputType":"checkbox", + "ParamFieldName":"/settings/network/is_public_server", + "DefaultValue":"0", + "EnumValues":{ + "False":"0", + "True":"1" + } + }, + { + "DisplayName":"Public Server Domain Name", + "Category":"CryoFall Server Settings", + "Description":"Sets a domain name to display to clients instead of the server IP address. The domain name must match the server IP. May require the server binding to be changed", + "Keywords":"server,domain,name,hostname,public_server_host_name", + "FieldName":"public_server_host_name", + "InputType":"text", + "ParamFieldName":"/settings/network/public_server_host_name", + "DefaultValue":"", + "EnumValues":{} + }, + { + "DisplayName":"Server Name", + "Category":"CryoFall Server Settings", + "Description":"Sets the server name visible to clients. Maximum 64 characters", + "Keywords":"server,name", + "FieldName":"name", + "InputType":"text", + "ParamFieldName":"/settings/server/name", + "DefaultValue":"AMP Powered CryoFall Server", + "Placeholder":"AMP Powered CryoFall Server", + "EnumValues":{} + }, + { + "DisplayName":"Server Description", + "Category":"CryoFall Server Settings", + "Description":"Sets the server description visible to clients. Maximum 600 characters", + "Keywords":"server,description", + "FieldName":"description", + "InputType":"text", + "ParamFieldName":"/settings/server/description", + "DefaultValue":"AMP Powered CryoFall Server.", + "Placeholder":"AMP Powered CryoFall Server.", + "EnumValues":{} + }, + { + "DisplayName":"Server MOTD", + "Category":"CryoFall Server Settings", + "Description":"Sets the player welcome message (MOTD) displayed on login. Maximum 4096 characters. Text formatting allowed: [b]Bold[/b], [u]underscore[/u], [color=#FF0000]colors[/color], [*] for list bullet points [*] and [br] for a new line", + "Keywords":"motd,welcome,message,welcome_message", + "FieldName":"welcome_message", + "InputType":"Textarea", + "ParamFieldName":"/settings/server/welcome_message", + "DefaultValue":"Welcome to my CryoFall server!", + "Placeholder":"Welcome to my CryoFall server!", + "EnumValues":{} + }, + { + "DisplayName":"Savegame Slot ID", + "Category":"CryoFall Server Settings", + "Description":"Sets the slot ID for the savegame. Each slot ID will be for a unique world. To start a new world for a given slot, delete the associated savegame in 'Data/Saves'", + "Keywords":"server,save,savegame,slot,id,savegame_slot_id", + "FieldName":"savegame_slot_id", + "InputType":"number", + "MinValue":"0", + "ParamFieldName":"/settings/server/savegame_slot_id", + "DefaultValue":"0", + "Placeholder":"0", + "EnumValues":{} + }, + { + "DisplayName":"Server Operators/Admins", + "Category":"CryoFall Server Settings", + "Description":"Comma separated list of server operators (users with admin access). Use the in-game username as written in the bottom right corner of the main menu for each operator", + "Keywords":"server,operators,server_operators_list", + "FieldName":"server_operators_list", + "InputType":"text", + "ParamFieldName":"/settings/server/server_operators_list", + "DefaultValue":"", + "EnumValues":{} + }, + { + "DisplayName":"Server Moderators", + "Category":"CryoFall Server Settings", + "Description":"Comma separated list of server moderators (users with moderator access). Use the in-game username as written in the bottom right corner of the main menu for each moderator. Operators already have moderator access", + "Keywords":"server,moderators,server_moderators_list", + "FieldName":"server_moderators_list", + "InputType":"text", + "ParamFieldName":"/settings/server/server_moderators_list", + "DefaultValue":"", + "EnumValues":{} + }, + { + "DisplayName":"Enable Player Whitelist", + "Category":"CryoFall Server Settings", + "Description":"If set, the player whitelist will be enabled. Set the allowed players under Whitelisted Players", + "Keywords":"whitelist,access,enable,access_whitelist_enabled", + "FieldName":"access_whitelist_enabled", + "InputType":"checkbox", + "ParamFieldName":"/settings/server/access_whitelist_enabled", + "DefaultValue":"0", + "EnumValues":{ + "False":"0", + "True":"1" + } + }, + { + "DisplayName":"Whitelisted Players", + "Category":"CryoFall Server Settings", + "Description":"Comma separated list of whitelisted players. Requires Player Whitelist to be enabled", + "Keywords":"whitelist,access,access_whitelist", + "FieldName":"access_whitelist", + "InputType":"text", + "ParamFieldName":"/settings/server/access_whitelist", + "DefaultValue":"", + "EnumValues":{} + }, + { + "DisplayName":"Blacklisted Players", + "Category":"CryoFall Server Settings", + "Description":"Comma separated list of blacklisted players", + "Keywords":"blacklist,access,access_blacklist", + "FieldName":"access_blacklist", + "InputType":"text", + "ParamFieldName":"/settings/server/access_blacklist", + "DefaultValue":"", + "EnumValues":{} + }, + { + "DisplayName":"Player Limit", + "Category":"CryoFall Server Settings", + "Description":"Sets the maximum number of players that may connect to the server at one time", + "Keywords":"maximum,players,clients,limit,players_max_count", + "FieldName":"$MaxUsers", + "InputType":"number", + "MinValue":"1", + "ParamFieldName":"/settings/server/players_max_count", + "DefaultValue":"100", + "Placeholder":"100", + "Suffix":"players", + "EnumValues":{} + }, + { + "DisplayName":"Prohibit Client Mods", + "Category":"CryoFall Server Settings", + "Description":"If set, client mods will be disallowed. Recommended to enable this setting for PvP servers", + "Keywords":"prohibit,disallow,mods,modifications,no_client_mods", + "FieldName":"no_client_mods", + "InputType":"checkbox", + "ParamFieldName":"/settings/server/no_client_mods", + "DefaultValue":"0", + "EnumValues":{ + "False":"0", + "True":"1" + } + }, + { + "DisplayName":"Server Mods", + "Category":"CryoFall Server Settings", + "Description":"Server mods can be loaded by installing them in the 'Data/Mods' directory and specifying them in 'Data/ModsConfig.xml'. See [these instructions](https://cryofall.fandom.com/wiki/Mod_Installation?action=edit§ion=2)", + "Keywords":"server,mods,modsconfig", + "FieldName":"modsconfig", + "InputType":"hidden", + "ParamFieldName":"modsconfig", + "EnumValues":{} + }, + { + "DisplayName":"Autosave Interval", + "Category":"CryoFall Server Settings", + "Description":"Sets the server autosave interval", + "Keywords":"server,autosave,interval,autosave_interval", + "FieldName":"autosave_interval", + "InputType":"number", + "MinValue":"1", + "ParamFieldName":"/settings/server/autosave_interval", + "DefaultValue":"60", + "Placeholder":"60", + "Suffix":"minutes", + "EnumValues":{} + }, + { + "DisplayName":"Backup Limit", + "Category":"CryoFall Server Settings", + "Description":"Sets the limit on the number of backup copies to store for the savegame for each slot. Keep to a reasonable number as each savegame usually takes 20-40MB", + "Keywords":"server,save,backup,limit,count,save_backups_count", + "FieldName":"save_backups_count", + "InputType":"number", + "MinValue":"3", + "MaxValue":"100", + "ParamFieldName":"/settings/server/save_backups_count", + "DefaultValue":"25", + "Placeholder":"25", + "Suffix":"backups", + "EnumValues":{} + }, + { + "DisplayName":"Server Framerate", + "Category":"CryoFall Server Settings", + "Description":"Sets the server framerate (tick rate). Recommended: 40", + "Keywords":"framerate,frames,tick,rate,fps", + "FieldName":"fps", + "InputType":"number", + "MinValue":"20", + "MaxValue":"60", + "ParamFieldName":"/settings/server/fps", + "DefaultValue":"40", + "Placeholder":"40", + "Suffix":"fps", + "EnumValues":{} + }, + { + "DisplayName":"Physics Update Rate", + "Category":"CryoFall Server Settings", + "Description":"Sets the rate at which physics updates are sent to players. Affects game latency. Recommended: 20. At least 10 for smooth movement required, higher than 30 not needed but possibly useful for fast-paced servers. Best to keep in exact ratio with Server Framerate (eg 1:1, 1:2)", + "Keywords":"physics,update,rate,fps_network_physics_update", + "FieldName":"fps_network_physics_update", + "InputType":"number", + "MinValue":"10", + "MaxValue":"60", + "ParamFieldName":"/settings/server/fps_network_physics_update", + "DefaultValue":"20", + "Placeholder":"20", + "EnumValues":{} + }, + { + "DisplayName":"Server IP Binding", + "Category":"CryoFall Server Settings", + "Description":"If required, you can change the IP binding of the server by editing App.ApplicationIPBinding in GenericModule.kvp for the instance. Stop the instance (not just the server) first", + "Keywords":"ip,binding", + "FieldName":"$ApplicationIPBinding", + "InputType":"hidden", + "ParamFieldName":"/settings/network/ip", + "EnumValues":{} + }, + { + "DisplayName":"Minimum Logging Level", + "Category":"CryoFall Server Settings", + "Description":"Sets the server's minimum logging level. AMP requires at least an Important level", + "Keywords":"log,logging,level,min_log_severity", + "FieldName":"min_log_severity", + "InputType":"enum", + "ParamFieldName":"/settings/misc/min_log_severity", + "DefaultValue":"Important", + "EnumValues":{ + "Debug":"Debug", + "Info":"Info", + "Important":"Important (default)" + } + }, + { + "DisplayName":"Dotnet Version", + "Category":"CryoFall Server Settings", + "Description":"Sets the [ASP.NET Core 6.0 version](https://dotnet.microsoft.com/en-us/download/dotnet/6.0) to install", + "Keywords":"dotnet,version", + "FieldName":"DotnetVersion", + "InputType":"text", + "ParamFieldName":"DotnetVersion", + "DefaultValue":"6.0.24", + "Placeholder":"6.0.24", + "Required":true, + "EnumValues":{} + } +] diff --git a/cryofallmetaconfig.json b/cryofallmetaconfig.json new file mode 100644 index 0000000..990443e --- /dev/null +++ b/cryofallmetaconfig.json @@ -0,0 +1,7 @@ +[ + { + "ConfigFile":"Data/SettingsServer.xml", + "AutoMap":true, + "ConfigType":"xml" + } +] diff --git a/cryofallsettingsserver.xml b/cryofallsettingsserver.xml new file mode 100644 index 0000000..0078473 --- /dev/null +++ b/cryofallsettingsserver.xml @@ -0,0 +1,137 @@ + + + + + + + + Important + + + + + + + + + + 6000 + + + 0 + + + + + + + + + 0.0.0.0 + + + 0 + + + + + + + + + + AMP Powered CryoFall Server + + + AMP Powered CryoFall Server. + + + Welcome to my CryoFall server! + + + 40 + + + 20 + + + 100 + + + 0 + + + 60 + + + 25 + + + 0 + + + + + + + + + + + + 0 + + + + + + \ No newline at end of file diff --git a/cryofallupdates.json b/cryofallupdates.json new file mode 100644 index 0000000..1096a6b --- /dev/null +++ b/cryofallupdates.json @@ -0,0 +1,50 @@ +[ + { + "UpdateStageName":"CryoFall SteamCMD Download", + "UpdateSourcePlatform":"All", + "UpdateSource":"SteamCMD", + "UpdateSourceData":"1061710", + "UpdateSourceArgs":"829590" + }, + { + "UpdateStageName":"Dotnet Directory Creation", + "UpdateSourcePlatform":"All", + "UpdateSource":"CreateDirectory", + "UpdateSourceArgs":"{{$FullBaseDir}}dotnet" + }, + { + "UpdateStageName":"ASP.NET Core Runtime Download", + "UpdateSourcePlatform":"Windows", + "UpdateSource":"FetchURL", + "UpdateSourceData":"https://dotnetcli.azureedge.net/dotnet/aspnetcore/Runtime/{{DotnetVersion}}/aspnetcore-runtime-{{DotnetVersion}}-win-x64.zip", + "UpdateSourceTarget":"{{$FullBaseDir}}dotnet", + "UnzipUpdateSource":true, + "OverwriteExistingFiles":true, + "DeleteAfterExtract":true + }, + { + "UpdateStageName":"ASP.NET Core Runtime Download", + "UpdateSourcePlatform":"Linux", + "UpdateSource":"FetchURL", + "UpdateSourceData":"https://dotnetcli.azureedge.net/dotnet/aspnetcore/Runtime/{{DotnetVersion}}/aspnetcore-runtime-{{DotnetVersion}}-linux-x64.tar.gz", + "UpdateSourceTarget":"{{$FullBaseDir}}dotnet", + "UnzipUpdateSource":true, + "OverwriteExistingFiles":true, + "DeleteAfterExtract":true + }, + { + "UpdateStageName":"Data Directory Creation", + "UpdateSourcePlatform":"All", + "UpdateSource":"CreateDirectory", + "UpdateSourceArgs":"{{$FullBaseDir}}Data" + }, + { + "UpdateStageName":"SettingsServer.xml File Download", + "UpdateSourcePlatform":"All", + "UpdateSource":"FetchURL", + "UpdateSourceData":"https://raw.githubusercontent.com/CubeCoders/AMPTemplates/main/cryofallsettingsserver.xml", + "UpdateSourceTarget":"{{$FullBaseDir}}Data", + "UpdateSourceArgs":"SettingsServer.xml", + "OverwriteExistingFiles":false + } +]