Add Sons of the Forest (#406)

* Add Sons of the Forest

This adds Sons of the Forest. There are no known limitations, but one bug with the game server that if the ports aren't declared as command line args, it fails to start since the ports are not able to be read from the config file. This template caters to both so it should not be an issue.

* Update sons-of-the-forestupdates.json

* Update sons-of-the-forest.kvp

* Update sons-of-the-forestconfig.json

* Update sons-of-the-forest.kvp

* Update sons-of-the-forestconfig.json

* Update sons-of-the-forestconfig.json

* Update sons-of-the-forestconfig.json

* Update sons-of-the-forestconfig.json

* Update sons-of-the-forestconfig.json

* Update sons-of-the-forestconfig.json

* Update sons-of-the-forestconfig.json

---------

Co-authored-by: Greelan <53196309+Greelan@users.noreply.github.com>
This commit is contained in:
IceOfWraith 2023-06-25 23:03:06 -05:00 committed by GitHub
parent 440daf46e2
commit 5971d1851a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 782 additions and 0 deletions

90
sons-of-the-forest.kvp Normal file
View File

@ -0,0 +1,90 @@
Meta.DisplayName=Sons Of The Forest
Meta.Description=Sons Of The Forest Dedicated Server
Meta.OS=Windows, Linux
Meta.AarchSupport=Unknown
Meta.Arch=x86_64
Meta.Author=IceOfWraith
Meta.URL=https://store.steampowered.com/app/1326470/Sons_Of_The_Forest/
Meta.DisplayImageSource=steam:1326470
Meta.EndpointURIFormat=steam://connect/{ip}:{GenericModule.App.Ports.$SteamQueryPort}
Meta.ConfigManifest=sons-of-the-forestconfig.json
Meta.MetaConfigManifest=sons-of-the-forestmetaconfig.json
Meta.ConfigRoot=sons-of-the-forest.kvp
Meta.MinAMPVersion=2.4.5.0
Meta.SpecificDockerImage=cubecoders/ampbase:wine8
Meta.DockerRequired=False
Meta.ContainerPolicy=RecommendedOnLinux
Meta.ContainerPolicyReason=The server requires Wine 8 (or later) and Xvfb to run on Linux. Using a container avoids the need to install these dependencies on the host.
Meta.ConfigReleaseState=NotSpecified
Meta.NoCommercialUsage=False
App.DisplayName=Sons Of The Forest
App.RootDir=./sons-of-the-forest/
App.BaseDirectory=./sons-of-the-forest/2465200/
App.SteamWorkshopDownloadLocation=
App.ExecutableWin=2465200\SonsOfTheForestDS.exe
App.ExecutableLinux=/usr/bin/xvfb-run
App.WorkingDir=2465200
App.LinuxCommandLineArgs=-a wine "./SonsOfTheForestDS.exe"
App.WindowsCommandLineArgs=
App.CommandLineArgs={{$PlatformArgs}} -dedicatedserver.IpAddress "{{$ApplicationIPBinding}}" -dedicatedserver.GamePort "{{$GamePort}}" -dedicatedserver.QueryPort "{{$SteamQueryPort}}" -dedicatedserver.BlobSyncPort "{{$BlobSyncPort}}" -userdatapath "{{$FullBaseDir}}saves" {{$FormattedArgs}}
App.UseLinuxIOREDIR=False
App.EnvironmentVariables={"LD_LIBRARY_PATH":"./linux64:%LD_LIBRARY_PATH%","SteamAppId":"1326470","WINEPREFIX":"{{$FullRootDir}}.wine","WINEARCH":"win64","WINEDEBUG":"-all"}
App.CommandLineParameterFormat=-{0} "{1}"
App.CommandLineParameterDelimiter=
App.ExitMethod=OS_CLOSE
App.ExitTimeout=30
App.ExitString=stop
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=@IncludeJson[sons-of-the-forestports.json]
App.AdminPortRef=0
App.PrimaryApplicationPortRef=GamePort
App.UniversalSleepApplicationUDPPortRef=GamePort
App.UniversalSleepSteamQueryPortRef=SteamQueryPort
App.MaxUsers=8
App.UseRandomAdminPassword=True
App.PersistRandomPassword=False
App.RemoteAdminPassword=
App.AdminMethod=STDIO
App.AdminLoginTransform=None
App.LoginTransformPrefix=
App.RCONConnectDelaySeconds=30
App.RCONConnectRetrySeconds=15
App.RCONHeartbeatMinutes=0
App.RCONHeartbeatCommand=ping
App.TelnetLoginFormat={0}
App.UpdateSources=@IncludeJson[sons-of-the-forestupdates.json]
App.PreStartStages=[]
App.Compatibility=None
App.SteamUpdateAnonymousLogin=True
App.SteamForceLoginPrompt=False
App.RapidStartup=False
App.MonitorChildProcess=True
App.MonitorChildProcessWaitMs=1000
App.MonitorChildProcessName=wine64
App.SupportsUniversalSleep=False
App.WakeupMode=Any
App.ApplicationReadyMode=RegexMatch
App.TemplateMatchRegex={{(\$?[\w]+)}}
Console.FilterMatchRegex=
Console.FilterMatchReplacement=
Console.ThrowawayMessageRegex=^(WARNING|ERROR): Shader.+|Couldn't create a Convex Mesh from source mesh.*|No mesh data available for mesh.*|ALSA lib.*$
Console.AppReadyRegex=^Game Activation Sequence step 7 : End of Sequence|\[Self-Tests\] Please restart the server.$
Console.UserJoinRegex=^ValidateAuthTicketResponse success for (?<userid>.+?)$
Console.UserLeaveRegex=^Unregistering client 2 with steam id (?<userid>.+?)$
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

View File

@ -0,0 +1,580 @@
[
{
"DisplayName": "GamePort",
"Category": "Server Settings",
"Description": "UDP port used for gameplay netcode (Bolt).",
"Keywords": "",
"FieldName": "$GamePort",
"InputType": "number",
"IsFlagArgument": false,
"ParamFieldName": "$.GamePort",
"IncludeInCommandLine": false,
"Hidden": true,
"EnumValues": {}
},
{
"DisplayName": "QueryPort",
"Category": "Server Settings",
"Description": "UDP port used by Steam to list the server and enable the discovery services.",
"Keywords": "",
"FieldName": "$SteamQueryPort",
"InputType": "number",
"IsFlagArgument": false,
"ParamFieldName": "$.QueryPort",
"IncludeInCommandLine": false,
"Hidden": true,
"EnumValues": {}
},
{
"DisplayName": "BlobSyncPort",
"Category": "Server Settings",
"Description": "BlobSyncPort UDP port used by the BlobSync system to initialize game systems and exchange data.",
"Keywords": "",
"FieldName": "$BlobSyncPort",
"InputType": "number",
"IsFlagArgument": false,
"ParamFieldName": "$.BlobSyncPort",
"IncludeInCommandLine": false,
"Hidden": true,
"EnumValues": {}
},
{
"DisplayName": "Server Name",
"Category": "SotF - Server Settings",
"Description": "Name of the server visible in the server list, and in the Steam contacts.",
"Keywords": "server,name",
"FieldName": "ServerName",
"InputType": "text",
"IsFlagArgument": false,
"ParamFieldName": "$.ServerName",
"IncludeInCommandLine": false,
"DefaultValue": "AMP Powered Sons Of The Forest Server",
"Placeholder": "AMP Powered Sons Of The Forest Server",
"EnumValues": {}
},
{
"DisplayName": "Max Players",
"Category": "SotF - Server Settings",
"Description": "The maximum number of players allowed simultaneously on the server.",
"Keywords": "max,players",
"FieldName": "$MaxUsers",
"InputType": "number",
"IsFlagArgument": false,
"ParamFieldName": "$.MaxPlayers",
"IncludeInCommandLine": false,
"DefaultValue": "8",
"Placeholder": "8",
"Suffix": "players",
"EnumValues": {}
},
{
"DisplayName": "Password",
"Category": "SotF - Server Settings",
"Description": "Adds a password to make your server \"private\". Upon connection, this password will be requested before the client can proceed.",
"Keywords": "password",
"FieldName": "Password",
"InputType": "password",
"IsFlagArgument": false,
"ParamFieldName": "$.Password",
"IncludeInCommandLine": false,
"DefaultValue": "",
"EnumValues": {}
},
{
"DisplayName": "LAN Only",
"Category": "SotF - Server Settings",
"Description": "Allows or restricts the server visibility to LAN only.",
"Keywords": "lan,only",
"FieldName": "LanOnly",
"InputType": "checkbox",
"IsFlagArgument": false,
"ParamFieldName": "$.LanOnly",
"IncludeInCommandLine": false,
"DefaultValue": "false",
"EnumValues": {
"True": "true",
"False": "false"
}
},
{
"DisplayName": "Save Slot",
"Category": "SotF - Server Settings",
"Description": "When creating a new save, this number will be the id of the save.",
"Keywords": "save,slot",
"FieldName": "SaveSlot",
"InputType": "number",
"IsFlagArgument": false,
"ParamFieldName": "$.SaveSlot",
"IncludeInCommandLine": false,
"DefaultValue": "1",
"Placeholder": "1",
"EnumValues": {}
},
{
"DisplayName": "Save Mode",
"Category": "SotF - Server Settings",
"Description": "\"Continue\" will create a new save if it doesnt exist, or load it if it exists. \"New\" will create a new game and overwrite any game save on the SaveSlot. The save will be overwritten as long as the mode is set to \"New\".",
"Keywords": "save,mode",
"FieldName": "SaveMode",
"InputType": "enum",
"IsFlagArgument": false,
"ParamFieldName": "$.SaveMode",
"IncludeInCommandLine": false,
"DefaultValue": "continue",
"EnumValues": {
"Continue": "Continue",
"New": "New"
}
},
{
"DisplayName": "Game Mode",
"Category": "SotF - Server Settings",
"Description": "Sets the game mode when creating a new save. This is ignored if loading a save. If set to \"custom\", the custom game mode settings will be read from \"SotF - Game Settings\".",
"Keywords": "game,mode",
"FieldName": "GameMode",
"InputType": "enum",
"IsFlagArgument": false,
"ParamFieldName": "$.GameMode",
"IncludeInCommandLine": false,
"DefaultValue": "normal",
"EnumValues": {
"Normal": "Normal",
"Hard": "Hard",
"Hardsurvival": "Hard Survival",
"Peaceful": "Peaceful",
"Custom": "Custom"
}
},
{
"DisplayName": "Save Interval",
"Category": "SotF - Server Settings",
"Description": "How often the game server automatically saves the game to SaveSlot, in seconds.",
"Keywords": "save,interval",
"FieldName": "SaveInterval",
"InputType": "number",
"IsFlagArgument": false,
"ParamFieldName": "$.SaveInterval",
"IncludeInCommandLine": false,
"DefaultValue": "600",
"Placeholder": "600",
"Suffix": "seconds",
"EnumValues": {}
},
{
"DisplayName": "Idle Day Cycle Speed",
"Category": "SotF - Server Settings",
"Description": "A multiplier to how quickly the time passes compared to normal gameplay when the server is considered idle (no player connected).",
"Keywords": "idle,day,cycle,speed",
"FieldName": "IdleDayCycleSpeed",
"InputType": "number",
"IsFlagArgument": false,
"ParamFieldName": "$.IdleDayCycleSpeed",
"IncludeInCommandLine": false,
"DefaultValue": "0.0",
"Placeholder": "0.0",
"Suffix": "multiplier",
"EnumValues": {}
},
{
"DisplayName": "Idle Target Framerate",
"Category": "SotF - Server Settings",
"Description": "Target framerate of the server when its considered idle (no player connected).",
"Keywords": "idle,target,framerate",
"FieldName": "IdleTargetFramerate",
"InputType": "number",
"IsFlagArgument": false,
"ParamFieldName": "$.IdleTargetFramerate",
"IncludeInCommandLine": false,
"DefaultValue": "5",
"Placeholder": "5",
"Suffix": "fps",
"EnumValues": {}
},
{
"DisplayName": "Active Target Framerate",
"Category": "SotF - Server Settings",
"Description": "Target framerate of the server when its NOT considered idle (one or more player connected).",
"Keywords": "active,target,framerate",
"FieldName": "ActiveTargetFramerate",
"InputType": "number",
"IsFlagArgument": false,
"ParamFieldName": "$.ActiveTargetFramerate",
"IncludeInCommandLine": false,
"DefaultValue": "60",
"Placeholder": "60",
"Suffix": "fps",
"EnumValues": {}
},
{
"DisplayName": "Log Files Enabled",
"Category": "SotF - Server Settings",
"Description": "Defines if the logs will be written to files.",
"Keywords": "log,files,enabled",
"FieldName": "LogFilesEnabled",
"InputType": "checkbox",
"IsFlagArgument": false,
"ParamFieldName": "$.LogFilesEnabled",
"IncludeInCommandLine": false,
"DefaultValue": "true",
"EnumValues": {
"True": "true",
"False": "false"
}
},
{
"DisplayName": "Timestamp Log Filenames",
"Category": "SotF - Server Settings",
"Description": "Every server start will create a new timestamped file. If disabled, the previous log will be overwritten.",
"Keywords": "timestamp,log,filenames",
"FieldName": "TimestampLogFilenames",
"InputType": "checkbox",
"IsFlagArgument": false,
"ParamFieldName": "$.TimestampLogFilenames",
"IncludeInCommandLine": false,
"DefaultValue": "true",
"EnumValues": {
"True": "true",
"False": "false"
}
},
{
"DisplayName": "Timestamp Log Entries",
"Category": "SotF - Server Settings",
"Description": "Enables each log entry written to file to be timestamped.",
"Keywords": "timestamp,log,entries",
"FieldName": "TimestampLogEntries",
"InputType": "checkbox",
"IsFlagArgument": false,
"ParamFieldName": "$.TimestampLogEntries",
"IncludeInCommandLine": false,
"DefaultValue": "true",
"EnumValues": {
"True": "true",
"False": "false"
}
},
{
"DisplayName":"Server Owners",
"Category":"SotF - Server Settings",
"Description":"Add the Steam64 IDs of every server owner, one steam id per line. Use # to comment out a line to keep track of SteamIDs. Include their name in the line above. [Find Steam64 IDs](https://steamidfinder.com/)",
"Keywords":"server,owners,admins",
"FieldName":"ServerOwners",
"InputType":"list",
"IsFlagArgument":false,
"ParamFieldName":"ServerOwners",
"IncludeInCommandLine":false,
"DefaultValue":"",
"Special":"listfile:./sons-of-the-forest/2465200/saves/ownerswhitelist.txt",
"EnumValues": {}
},
{
"DisplayName": "Server IP Binding",
"Category": "SotF - Server Settings",
"Description": "If required, you can change the binding of the server to an internal interface IP by editing App.ApplicationIPBinding in GenericModule.kvp for the instance. Stop the instance (not just the server) first.",
"Keywords": "binding,ip",
"FieldName": "$ApplicationIPBinding",
"InputType": "hidden",
"IsFlagArgument": false,
"ParamFieldName": "$.IpAddress",
"IncludeInCommandLine": false,
"EnumValues": {}
},
{
"DisplayName": "Game Mode Info",
"Category": "SotF - Game Settings",
"Description": "In order for these settings to take effect, you should choose \"Custom\" for the Gmae Mode in \"SotF - Server Settings\".",
"Keywords": "game,mode,info",
"FieldName": "GameModeInfo",
"InputType": "hidden",
"IsFlagArgument": false,
"ParamFieldName": "$.GameModeInfo",
"IncludeInCommandLine": false,
"EnumValues": {}
},
{
"DisplayName": "Tree Regrowth",
"Category": "SotF - Game Settings",
"Description": "Enable automatic tree regrowth, triggered when sleeping.",
"Keywords": "tree,regrowth",
"FieldName": "TreeRegrowth",
"InputType": "checkbox",
"IsFlagArgument": false,
"ParamFieldName": "$.GameSettings['Gameplay.TreeRegrowth']",
"IncludeInCommandLine": false,
"DefaultValue": "true",
"EnumValues": {
"True": "true",
"False": "false"
}
},
{
"DisplayName": "Structure Damage",
"Category": "SotF - Game Settings",
"Description": "Allow buildings to be damaged.",
"Keywords": "structure,damage",
"FieldName": "StructureDamage",
"InputType": "checkbox",
"IsFlagArgument": false,
"ParamFieldName": "$.GameSettings['Structure.Damage']",
"IncludeInCommandLine": false,
"DefaultValue": "true",
"EnumValues": {
"True": "true",
"False": "false"
}
},
{
"DisplayName": "Enemy Spawn",
"Category": "SotF - Game Settings",
"Description": "Enable enemies spawning.",
"Keywords": "enemy,spawn",
"FieldName": "EnemySpawn",
"InputType": "checkbox",
"IsFlagArgument": false,
"ParamFieldName": "$.CustomGameModeSettings['GameSetting.Vail.EnemySpawn']",
"IncludeInCommandLine": false,
"DefaultValue": "true",
"EnumValues": {
"True": "true",
"False": "false"
}
},
{
"DisplayName": "Enemy Health",
"Category": "SotF - Game Settings",
"Description": "Adjust enemy starting health.",
"Keywords": "enemy,health",
"FieldName": "EnemyHealth",
"InputType": "enum",
"IsFlagArgument": false,
"ParamFieldName": "$.CustomGameModeSettings['GameSetting.Vail.EnemyHealth']",
"IncludeInCommandLine": false,
"DefaultValue": "Normal",
"EnumValues": {
"Low": "Low",
"Normal": "Normal",
"High": "High"
}
},
{
"DisplayName": "Enemy Damage",
"Category": "SotF - Game Settings",
"Description": "Adjust damage enemies can do.",
"Keywords": "enemy,damage",
"FieldName": "EnemyDamage",
"InputType": "enum",
"IsFlagArgument": false,
"ParamFieldName": "$.CustomGameModeSettings['GameSetting.Vail.EnemyDamage']",
"IncludeInCommandLine": false,
"DefaultValue": "Normal",
"EnumValues": {
"Low": "Low",
"Normal": "Normal",
"High": "High"
}
},
{
"DisplayName": "Enemy Armour",
"Category": "SotF - Game Settings",
"Description": "Adjust enemies armour strength.",
"Keywords": "enemy,armour,armor",
"FieldName": "EnemyArmour",
"InputType": "enum",
"IsFlagArgument": false,
"ParamFieldName": "$.CustomGameModeSettings['GameSetting.Vail.EnemyArmour']",
"IncludeInCommandLine": false,
"DefaultValue": "Normal",
"EnumValues": {
"Low": "Low",
"Normal": "Normal",
"High": "High"
}
},
{
"DisplayName": "Enemy Aggression",
"Category": "SotF - Game Settings",
"Description": "Adjust enemy aggression level.",
"Keywords": "enemy,aggression",
"FieldName": "EnemyAggression",
"InputType": "enum",
"IsFlagArgument": false,
"ParamFieldName": "$.CustomGameModeSettings['GameSetting.Vail.EnemyAggression']",
"IncludeInCommandLine": false,
"DefaultValue": "Normal",
"EnumValues": {
"Low": "Low",
"Normal": "Normal",
"High": "High"
}
},
{
"DisplayName": "Animal Spawn Rate",
"Category": "SotF - Game Settings",
"Description": "Adjust animal spawn rate.",
"Keywords": "animal,spawn,rate",
"FieldName": "AnimalSpawnRate",
"InputType": "enum",
"IsFlagArgument": false,
"ParamFieldName": "$.CustomGameModeSettings['GameSetting.Vail.AnimalSpawnRate']",
"IncludeInCommandLine": false,
"DefaultValue": "Normal",
"EnumValues": {
"Low": "Low",
"Normal": "Normal",
"High": "High"
}
},
{
"DisplayName": "Starting Season",
"Category": "SotF - Game Settings",
"Description": "Set environmental starting season.",
"Keywords": "starting,season",
"FieldName": "StartingSeason",
"InputType": "enum",
"IsFlagArgument": false,
"ParamFieldName": "$.CustomGameModeSettings['GameSetting.Environment.StartingSeason']",
"IncludeInCommandLine": false,
"DefaultValue": "Spring",
"EnumValues": {
"Spring": "Spring",
"Summer": "Summer",
"Autumn": "Autumn",
"Winter": "Winter"
}
},
{
"DisplayName": "Season Length",
"Category": "SotF - Game Settings",
"Description": "Adjust season length.",
"Keywords": "season,length",
"FieldName": "SeasonLength",
"InputType": "enum",
"IsFlagArgument": false,
"ParamFieldName": "$.CustomGameModeSettings['GameSetting.Environment.SeasonLength']",
"IncludeInCommandLine": false,
"DefaultValue": "Default",
"EnumValues": {
"Short": "Short",
"Default": "Default",
"Long": "Long",
"Realistic": "Realistic"
}
},
{
"DisplayName": "Day Length",
"Category": "SotF - Game Settings",
"Description": "Adjust day length.",
"Keywords": "day,length",
"FieldName": "DayLength",
"InputType": "enum",
"IsFlagArgument": false,
"ParamFieldName": "$.CustomGameModeSettings['GameSetting.Environment.DayLength']",
"IncludeInCommandLine": false,
"DefaultValue": "Default",
"EnumValues": {
"Short": "Short",
"Default": "Default",
"Long": "Long",
"Realistic": "Realistic"
}
},
{
"DisplayName": "Precipitation Frequency",
"Category": "SotF - Game Settings",
"Description": "Adjust the frequency of rain and snow.",
"Keywords": "precipitation,frequency",
"FieldName": "PrecipitationFrequency",
"InputType": "enum",
"IsFlagArgument": false,
"ParamFieldName": "$.CustomGameModeSettings['GameSetting.Environment.PrecipitationFrequency']",
"IncludeInCommandLine": false,
"DefaultValue": "Default",
"EnumValues": {
"Low": "Low",
"Default": "Default",
"High": "High"
}
},
{
"DisplayName": "Consumable Effects",
"Category": "SotF - Game Settings",
"Description": "Enable damage taken when low hydration and low fullness.",
"Keywords": "consumable,effects",
"FieldName": "ConsumableEffects",
"InputType": "enum",
"IsFlagArgument": false,
"ParamFieldName": "$.CustomGameModeSettings['GameSetting.Survival.ConsumableEffects']",
"IncludeInCommandLine": false,
"DefaultValue": "Normal",
"EnumValues": {
"Normal": "Normal",
"Hard": "Hard"
}
},
{
"DisplayName": "Player Stats Damage",
"Category": "SotF - Game Settings",
"Description": "Enable damage from each bad or rotten food and drink.",
"Keywords": "player,stats,damage",
"FieldName": "PlayerStatsDamage",
"InputType": "enum",
"IsFlagArgument": false,
"ParamFieldName": "$.CustomGameModeSettings['GameSetting.Survival.PlayerStatsDamage']",
"IncludeInCommandLine": false,
"DefaultValue": "Normal",
"EnumValues": {
"Off": "Off",
"Normal": "Normal",
"Hard": "Hard"
}
},
{
"DisplayName": "Cold Penalties",
"Category": "SotF - Game Settings",
"Description": "Adjusts the severity that cold will affect health and stamina regeneration.",
"Keywords": "cold,penalties",
"FieldName": "ColdPenalties",
"InputType": "enum",
"IsFlagArgument": false,
"ParamFieldName": "$.CustomGameModeSettings['GameSetting.Survival.ColdPenalties']",
"IncludeInCommandLine": false,
"DefaultValue": "Normal",
"EnumValues": {
"Off": "Off",
"Normal": "Normal",
"Hard": "Hard"
}
},
{
"DisplayName": "Reduced Food In Containers",
"Category": "SotF - Game Settings",
"Description": "Reduces the amount of food found in containers.",
"Keywords": "reduced,food,in,containers",
"FieldName": "ReducedFoodInContainers",
"InputType": "checkbox",
"IsFlagArgument": false,
"ParamFieldName": "$.CustomGameModeSettings['GameSetting.Survival.ReducedFoodInContainers']",
"IncludeInCommandLine": false,
"DefaultValue": "false",
"EnumValues": {
"True": "true",
"False": "false"
}
},
{
"DisplayName": "Single Use Containers",
"Category": "SotF - Game Settings",
"Description": "Containers can only be opened once.",
"Keywords": "single,use,containers",
"FieldName": "SingleUseContainers",
"InputType": "checkbox",
"IsFlagArgument": false,
"ParamFieldName": "$.CustomGameModeSettings['GameSetting.Survival.SingleUseContainers']",
"IncludeInCommandLine": false,
"DefaultValue": "false",
"EnumValues": {
"True": "true",
"False": "false"
}
}
]

View File

@ -0,0 +1,41 @@
{
"IpAddress": "0.0.0.0",
"GamePort": 8766,
"QueryPort": 27016,
"BlobSyncPort": 9700,
"ServerName": "AMP Powered Sons Of The Forest Server",
"MaxPlayers": 8,
"Password": "",
"LanOnly": false,
"SaveSlot": 1,
"SaveMode": "Continue",
"GameMode": "Normal",
"SaveInterval": 600,
"IdleDayCycleSpeed": 0.0,
"IdleTargetFramerate": 5,
"ActiveTargetFramerate": 60,
"LogFilesEnabled": false,
"TimestampLogFilenames": true,
"TimestampLogEntries": true,
"GameSettings": {
"Gameplay.TreeRegrowth": true,
"Structure.Damage": true
},
"CustomGameModeSettings": {
"GameSetting.Vail.EnemySpawn": true,
"GameSetting.Vail.EnemyHealth": "Normal",
"GameSetting.Vail.EnemyDamage": "Normal",
"GameSetting.Vail.EnemyArmour": "Normal",
"GameSetting.Vail.EnemyAggression": "Normal",
"GameSetting.Vail.AnimalSpawnRate": "Normal",
"GameSetting.Environment.StartingSeason": "Summer",
"GameSetting.Environment.SeasonLength": "Default",
"GameSetting.Environment.DayLength": "Default",
"GameSetting.Environment.PrecipitationFrequency": "Default",
"GameSetting.Survival.ConsumableEffects": "Normal",
"GameSetting.Survival.PlayerStatsDamage": "Off",
"GameSetting.Survival.ColdPenalties": "Off",
"GameSetting.Survival.ReducedFoodInContainers": false,
"GameSetting.Survival.SingleUseContainers": false
}
}

View File

@ -0,0 +1,7 @@
[
{
"ConfigFile": "saves/dedicatedserver.cfg",
"AutoMap": true,
"ConfigType": "json"
}
]

View File

@ -0,0 +1,23 @@
[
{
"Protocol": "UDP",
"Port": "8766",
"Name": "Game Port",
"Description": "UDP port used for gameplay netcode (Bolt).",
"Ref": "GamePort"
},
{
"Protocol": "UDP",
"Port": "27016",
"Name": "Steam Query Port",
"Description": "UDP port used by Steam to list the server and enable the discovery services.",
"Ref": "SteamQueryPort"
},
{
"Protocol": "UDP",
"Port": "9700",
"Name": "Blob Sync Port",
"Description": "BlobSyncPort UDP port used by the BlobSync system to initialize game systems and exchange data.",
"Ref": "BlobSyncPort"
}
]

View File

@ -0,0 +1,41 @@
[
{
"UpdateStageName": "SteamCMD Download",
"UpdateSourcePlatform": "All",
"UpdateSource": "SteamCMD",
"UpdateSourceData": "2465200",
"UpdateSourceArgs": "1326470",
"UpdateSourceVersion": "",
"UpdateSourceTarget": "",
"UnzipUpdateSource": false,
"OverwriteExistingFiles": false,
"ForceDownloadPlatform": "Windows",
"UpdateSourceConditionSetting": null,
"UpdateSourceConditionValue": null,
"DeleteAfterExtract": true,
"OneShot": false
},
{
"UpdateStageName":"Create Config Directory",
"UpdateSourcePlatform":"All",
"UpdateSource":"CreateDirectory",
"UpdateSourceArgs":"{{$FullBaseDir}}saves",
"OverwriteExistingFiles":false
},
{
"UpdateStageName":"Base Config Download",
"UpdateSourcePlatform":"All",
"UpdateSource":"FetchURL",
"UpdateSourceData":"https://github.com/CubeCoders/AMPTemplates/raw/main/sons-of-the-forestdedicatedserver.cfg",
"UpdateSourceTarget":"{{$FullBaseDir}}saves",
"UpdateSourceArgs":"dedicatedserver.cfg",
"OverwriteExistingFiles":false
},
{
"UpdateStageName":"Initialise Wine",
"UpdateSourcePlatform":"Linux",
"UpdateSource":"Executable",
"UpdateSourceData":"/bin/bash",
"UpdateSourceArgs":"-c 'WINEPREFIX=\"{{$FullRootDir}}.wine\" WINEARCH=win64 /usr/bin/wineboot --init --update'"
}
]