diff --git a/sons-of-the-forest.kvp b/sons-of-the-forest.kvp new file mode 100644 index 0000000..8e26c2e --- /dev/null +++ b/sons-of-the-forest.kvp @@ -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 (?.+?)$ +Console.UserLeaveRegex=^Unregistering client 2 with steam id (?.+?)$ +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/sons-of-the-forestconfig.json b/sons-of-the-forestconfig.json new file mode 100644 index 0000000..a5f9b9e --- /dev/null +++ b/sons-of-the-forestconfig.json @@ -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 doesn’t 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 it’s 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 it’s 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" + } + } +] diff --git a/sons-of-the-forestdedicatedserver.cfg b/sons-of-the-forestdedicatedserver.cfg new file mode 100644 index 0000000..47c1af7 --- /dev/null +++ b/sons-of-the-forestdedicatedserver.cfg @@ -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 + } +} \ No newline at end of file diff --git a/sons-of-the-forestmetaconfig.json b/sons-of-the-forestmetaconfig.json new file mode 100644 index 0000000..8c2537c --- /dev/null +++ b/sons-of-the-forestmetaconfig.json @@ -0,0 +1,7 @@ +[ + { + "ConfigFile": "saves/dedicatedserver.cfg", + "AutoMap": true, + "ConfigType": "json" + } +] \ No newline at end of file diff --git a/sons-of-the-forestports.json b/sons-of-the-forestports.json new file mode 100644 index 0000000..4e78c52 --- /dev/null +++ b/sons-of-the-forestports.json @@ -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" + } +] \ No newline at end of file diff --git a/sons-of-the-forestupdates.json b/sons-of-the-forestupdates.json new file mode 100644 index 0000000..8c14471 --- /dev/null +++ b/sons-of-the-forestupdates.json @@ -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'" + } +] \ No newline at end of file