Add CryoFall (#494)

This commit is contained in:
Greelan 2023-11-05 16:23:10 +11:00 committed by GitHub
parent 5f20079e0d
commit 151cbe0a87
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 573 additions and 0 deletions

100
cryofall.kvp Normal file
View File

@ -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

279
cryofallconfig.json Normal file
View File

@ -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&section=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":{}
}
]

7
cryofallmetaconfig.json Normal file
View File

@ -0,0 +1,7 @@
[
{
"ConfigFile":"Data/SettingsServer.xml",
"AutoMap":true,
"ConfigType":"xml"
}
]

137
cryofallsettingsserver.xml Normal file
View File

@ -0,0 +1,137 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<settings version="20">
<misc>
<!-- Min logging level: Debug, Info, Important, Warning, Error -->
<min_log_severity>Important</min_log_severity>
<!-- Language -->
<language></language>
</misc>
<network>
<!-- Network port address (default 6000) -->
<port>6000</port>
<!-- Is this a public server?
(setting the value to 1 will add it to the public server list) (0/1) -->
<is_public_server>0</is_public_server>
<!-- IMPORTANT!
Server private GUID.
Do NOT share it.
Do NOT copy it to other file.
It's used to identify your server regardless of the IP address.
Leave this field empty so the game server will acquire a new GUID on the next launch.
If you copy the SettingsServer.xml file to use with a different game server - ERASE the value!
(Please note: if another game server is using this private GUID,
current server instance will be disconnected from the Master Server
and replaced with another server's address) -->
<server_private_guid></server_private_guid>
<!-- Server public GUID
Do NOT modify it. It's assigned by Master Server and you CAN share it with players
to make it easier to connect to your server via Custom servers list. -->
<server_public_guid></server_public_guid>
<!-- (For expert users only!)
Server network interface IP address
If you have more than a single IP address, you can select which one you wish to bind to
(please leave the default value 0.0.0.0 to bind to all the network interfaces) -->
<ip>0.0.0.0</ip>
<!-- (For expert users only!)
Custom master server network port address
(default 0 - the server will use a random port) -->
<master_server_client_port>0</master_server_client_port>
<!-- (For expert users only!)
Your server domain address like "myserver.com"
Master server will verify it and if it matches the server IP address
it will be displayed instead of the IP address to clients
If you're editing this, it may be necessary to change the 'ip' setting above
to the IP address matching the IP address assigned to your hostname
(leave it empty if you want clients to simply connect to the server IP address) -->
<public_server_host_name></public_server_host_name>
</network>
<server>
<!-- Server name. Please keep it short (max 64 chars) -->
<name>AMP Powered CryoFall Server</name>
<!-- Server description.
Max length 600 chars (please keep it as short as possible).
Please note: edit this right in the game after connecting to this game server
(you need to be added to the server operators list)
- the "Edit" button is available in "Current Game" menu. -->
<description>AMP Powered CryoFall Server.</description>
<!-- Server welcome message. Will be displayed on login.
Write server rules here or anything you like.
Max length 4096 chars.
Please note: edit this right in the game after connecting to this game server
(you need to be added to the server operators list)
- the "Edit" button is available in "Current Game" menu. -->
<welcome_message>Welcome to my CryoFall server!</welcome_message>
<!-- Server framerate (server tick-rate)
(recommended 40; on low spec hardware can be set to 20;
for super-fast and/or low population servers can be set to 60) -->
<fps>40</fps>
<!-- How often physics updates are sent to players, per second.
Affects the game latency. Recommended 20, at least 10 for smooth movement required,
higher than 30 is not necessary but might be useful for fast-paced deathmatch game servers.
It's best to keep the value in an exact ratio to the FPS setting
(1:1, or 1:2 when every second server frame results in a physics network update). -->
<fps_network_physics_update>20</fps_network_physics_update>
<!-- Max online players count
(new clients will be unable to connect if the server is full) -->
<players_max_count>100</players_max_count>
<!-- Are client-side modifications prohibited?
Setting this value to 1 will disallow client modifications,
all client mods will be disabled for all players. (0/1)
(it's recommended for PvP servers to set it to 1) -->
<no_client_mods>0</no_client_mods>
<!-- Auto-save interval (in minutes) -->
<autosave_interval>60</autosave_interval>
<!-- How many backup copies should be stored for the savegame.
Please keep the number reasonable as every savegame usually takes about 20-40 MB!
Min number: 3. Max number: 100. -->
<save_backups_count>25</save_backups_count>
<!-- Slot ID (a number) for the savegame
(you can have multiple slots each one with the unique world) -->
<savegame_slot_id>0</savegame_slot_id>
<!-- Comma-separated list of server operators (users with admin access).
Add yourself first here (use your in-game username as written in the bottom right corner of the main menu).
Then you can add more players to this list by using the in-game /opAdd console command. -->
<server_operators_list></server_operators_list>
<!-- Comma-separated list of server moderators (users with moderator access).
No need to specify server operators here as they have moderators access anyway.
Server operators can extend this list by using the in-game /moderatorAdd console command. -->
<server_moderators_list></server_moderators_list>
<!-- Comma-separated list of whitelisted players. Use the in-game /mod console commands to manage this. -->
<access_whitelist></access_whitelist>
<!-- Is whitelist enabled? (1=yes, 0=no) Use the in-game /mod console commands to manage this. -->
<access_whitelist_enabled>0</access_whitelist_enabled>
<!-- Comma-separated list of blacklisted players. Use the in-game /mod console commands to manage this. -->
<access_blacklist></access_blacklist>
</server>
</settings>

50
cryofallupdates.json Normal file
View File

@ -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
}
]