diff --git a/day-of-dragons.kvp b/day-of-dragons.kvp new file mode 100644 index 0000000..7057f2f --- /dev/null +++ b/day-of-dragons.kvp @@ -0,0 +1,88 @@ +Meta.DisplayName=Day of Dragons +Meta.Description=Day of Dragons Dedicated Server +Meta.OS=Windows, Linux +Meta.Arch=x86_64 +Meta.Author=Greelan +Meta.URL=https://dayofdragons.com/ +Meta.DisplayImageSource=steam:1088090 +Meta.EndpointURIFormat=steam://connect/{ip}:{GenericModule.App.Ports.$QueryPort} +Meta.ConfigManifest=day-of-dragonsconfig.json +Meta.MetaConfigManifest=day-of-dragonsmetaconfig.json +Meta.ConfigRoot=day-of-dragons.kvp +Meta.MinAMPVersion=2.4.0.2 +Meta.SpecificDockerImage= +Meta.DockerRequired=False +Meta.ContainerPolicy=Supported +Meta.ContainerPolicyReason= +Meta.Prerequsites=[] +Meta.ExtraContainerPackages=[] +Meta.ConfigReleaseState=NotSpecified +Meta.NoCommercialUsage=False +App.DisplayName=Day of Dragons +App.RootDir=./day-of-dragons/ +App.BaseDirectory=./day-of-dragons/1088320/ +App.ExecutableWin=1088320\Dragons\Binaries\Win64\DragonsServer-Win64-Shipping.exe +App.ExecutableLinux=1088320/Dragons/Binaries/Linux/DragonsServer-Linux-Shipping +App.WorkingDir=1088320 +App.LinuxCommandLineArgs= +App.WindowsCommandLineArgs= +App.CommandLineArgs=Dragons {{$PlatformArgs}} -log -Port={{$GamePort}} -QueryPort={{$QueryPort}} -SteamServerName="{{SteamServerName}}" {{$FormattedArgs}} +App.UseLinuxIOREDIR=False +App.AppSettings={} +App.EnvironmentVariables={"LD_LIBRARY_PATH":"{{$FullBaseDir}}linux64:%LD_LIBRARY_PATH%","SteamAppId":"1088090"} +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=[{"Protocol":"UDP","Port":7777,"Ref":"GamePort","Name":"Game Port","Description":"Port for game traffic"},{"Protocol":"UDP","Port":27015,"Ref":"QueryPort","Name":"Query Port","Description":"Port for query traffic"}] +App.AdminPortRef=0 +App.PrimaryApplicationPortRef=GamePort +App.UniversalSleepApplicationUDPPortRef=GamePort +App.UniversalSleepSteamQueryPortRef=QueryPort +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":"SteamCMD Download","UpdateSourcePlatform":"All","UpdateSource":"SteamCMD","UpdateSourceData":"1088320"},{"UpdateStageName":"SteamCMD Component Download","UpdateSourcePlatform":"Windows","UpdateSource":"SteamCMD","UpdateSourceData":"1007","UpdateSourceTarget":"{{$FullBaseDir}}Dragons/Binaries/Win64/"},{"UpdateStageName":"Create Config Directory","UpdateSourcePlatform":"Windows","UpdateSource":"CreateDirectory","UpdateSourceArgs":"{{$FullBaseDir}}Dragons/Saved/Config/WindowsServer"},{"UpdateStageName":"Create Config Directory","UpdateSourcePlatform":"Linux","UpdateSource":"CreateDirectory","UpdateSourceArgs":"{{$FullBaseDir}}Dragons/Saved/Config/LinuxServer"},{"UpdateStageName":"Game Config File Download","UpdateSourcePlatform":"Windows","UpdateSource":"FetchURL","UpdateSourceData":"https://raw.githubusercontent.com/CubeCoders/AMPTemplates/main/day-of-dragonsgame.ini","UpdateSourceArgs":"Game.ini","UpdateSourceTarget":"{{$FullBaseDir}}Dragons/Saved/Config/WindowsServer/","OverwriteExistingFiles":false},{"UpdateStageName":"Game Config File Download","UpdateSourcePlatform":"Linux","UpdateSource":"FetchURL","UpdateSourceData":"https://raw.githubusercontent.com/CubeCoders/AMPTemplates/main/day-of-dragonsgame.ini","UpdateSourceArgs":"Game.ini","UpdateSourceTarget":"{{$FullBaseDir}}Dragons/Saved/Config/LinuxServer/","OverwriteExistingFiles":false}] +App.Compatibility=None +App.SteamUpdateAnonymousLogin=True +App.SteamForceLoginPrompt=False +App.RapidStartup=False +App.MonitorChildProcess=False +App.MonitorChildProcessWaitMs=100 +App.MonitorChildProcessName= +App.SupportsUniversalSleep=True +App.WakeupMode=Any +App.ApplicationReadyMode=RegexMatch +App.TemplateMatchRegex={{(\$?[\w]+)}} +Console.FilterMatchRegex= +Console.FilterMatchReplacement= +Console.ThrowawayMessageRegex=^(WARNING|ERROR): Shader.+$ +Console.AppReadyRegex=^(?:\[[\d\.]+-[\d\.:]+\]\[[\d ]+\])?LogGameMode: Display: Match State Changed from WaitingToStart to InProgress$ +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/day-of-dragonsconfig.json b/day-of-dragonsconfig.json new file mode 100644 index 0000000..c472cf1 --- /dev/null +++ b/day-of-dragonsconfig.json @@ -0,0 +1,327 @@ +[ + { + "DisplayName":"Server Name", + "Category":"Server Settings", + "Description":"Name of the server as it appears publicly", + "Keywords":"name", + "FieldName":"SteamServerName", + "InputType":"text", + "IsFlagArgument":false, + "ParamFieldName":"SteamServerName", + "IncludeInCommandLine":false, + "DefaultValue":"AMP Powered Day of Dragons Server", + "EnumValues":{} + }, + { + "DisplayName":"Welcome Message", + "Category":"Server Settings", + "Description":"Welcome message when players join the server", + "Keywords":"welcome,message,motd", + "FieldName":"sServerMOTD", + "InputType":"text", + "IsFlagArgument":false, + "ParamFieldName":"/Game/_Dev/Runtime/Classes/DragonsGI.DragonsGI_C.sServerMOTD", + "IncludeInCommandLine":false, + "DefaultValue":"Welcome to this Day of Dragons server - powered by AMP!", + "EnumValues":{} + }, + { + "DisplayName":"Admin Password", + "Category":"Server Settings", + "Description":"Sets the password for admins to access the admin panel. Default is no password", + "Keywords":"admin,password", + "FieldName":"sServerPassword", + "InputType":"password", + "IsFlagArgument":false, + "ParamFieldName":"/Game/_Dev/Runtime/Classes/DragonsGI.DragonsGI_C.sServerPassword", + "IncludeInCommandLine":false, + "DefaultValue":"", + "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", + "MinValue":"1", + "MaxValue":"200", + "IsFlagArgument":false, + "ParamFieldName":"/Game/_Dev/Runtime/Classes/DragonsGI.DragonsGI_C.iMaxPlayers", + "IncludeInCommandLine":false, + "DefaultValue":"100", + "Suffix":"players", + "EnumValues":{} + }, + { + "DisplayName":"Enable Friends List", + "Category":"Server Settings", + "Description":"If enabled, only players with Steam IDs listed in Game.ini using \"sServerFriends\" can join the server. Other players will be kicked automatically", + "Keywords":"friends,list,whitelist", + "FieldName":"bUseFriendsList", + "InputType":"checkbox", + "IsFlagArgument":false, + "ParamFieldName":"/Game/_Dev/Runtime/Classes/DragonsGI.DragonsGI_C.bUseFriendsList", + "IncludeInCommandLine":false, + "DefaultValue":"False", + "EnumValues":{ + "True":"True", + "False":"False" + } + }, + { + "DisplayName":"Clan Size Limit", + "Category":"Server Settings", + "Description":"Maximum number of members of a clan", + "Keywords":"clan,size,limit", + "FieldName":"iMaxClanMembers", + "InputType":"number", + "MinValue":"8", + "MaxValue":"1024", + "IsFlagArgument":false, + "ParamFieldName":"/Game/_Dev/Runtime/Classes/DragonsGI.DragonsGI_C.iMaxClanMembers", + "IncludeInCommandLine":false, + "DefaultValue":"1024", + "Suffix":"members", + "EnumValues":{} + }, + { + "DisplayName":"Clan Number Limit", + "Category":"Server Settings", + "Description":"Maximum number of clans that can be created. Set to 0 to disable clan creation", + "Keywords":"clan,number,limit", + "FieldName":"iMaxClans", + "InputType":"number", + "MinValue":"0", + "MaxValue":"255", + "IsFlagArgument":false, + "ParamFieldName":"/Game/_Dev/Runtime/Classes/DragonsGI.DragonsGI_C.iMaxClans", + "IncludeInCommandLine":false, + "DefaultValue":"255", + "Suffix":"clans", + "EnumValues":{} + }, + { + "DisplayName":"Disable PvP", + "Category":"Server Settings", + "Description":"If enabled, server will be a PvE server and player on player fighting will be disabled", + "Keywords":"disable,pvp,pve", + "FieldName":"bDisablePVP", + "InputType":"checkbox", + "IsFlagArgument":false, + "ParamFieldName":"/Game/_Dev/Runtime/Classes/DragonsGI.DragonsGI_C.bDisablePVP", + "IncludeInCommandLine":false, + "DefaultValue":"False", + "EnumValues":{ + "True":"True", + "False":"False" + } + }, + { + "DisplayName":"Disable AI", + "Category":"Server Settings", + "Description":"If enabled, server will not spawn AI, allowing for a PvP only survival experience", + "Keywords":"disable,ai,pvp", + "FieldName":"bDisableAI", + "InputType":"checkbox", + "IsFlagArgument":false, + "ParamFieldName":"/Game/_Dev/Runtime/Classes/DragonsGI.DragonsGI_C.bDisableAI", + "IncludeInCommandLine":false, + "DefaultValue":"False", + "EnumValues":{ + "True":"True", + "False":"False" + } + }, + { + "DisplayName":"Corpse Despawn Time", + "Category":"Server Settings", + "Description":"Sets how long corpses remain before despawning. Recommended to keep this low to free up resources", + "Keywords":"corpse,despawn,time", + "FieldName":"iCorpseDespawnTime", + "InputType":"number", + "MinValue":"60", + "MaxValue":"86400", + "IsFlagArgument":false, + "ParamFieldName":"/Game/_Dev/Runtime/Classes/DragonsGI.DragonsGI_C.iCorpseDespawnTime", + "IncludeInCommandLine":false, + "DefaultValue":"300", + "Suffix":"seconds", + "EnumValues":{} + }, + { + "DisplayName":"Enable Roleplay Features", + "Category":"Server Settings", + "Description":"If enabled, the server browser type will be appended with the RP tag and roleplay features will be enabled, if available", + "Keywords":"roleplay", + "FieldName":"bRoleplay", + "InputType":"checkbox", + "IsFlagArgument":false, + "ParamFieldName":"/Game/_Dev/Runtime/Classes/DragonsGI.DragonsGI_C.bRoleplay", + "IncludeInCommandLine":false, + "DefaultValue":"False", + "EnumValues":{ + "True":"True", + "False":"False" + } + }, + { + "DisplayName":"Enable Group Damage", + "Category":"Server Settings", + "Description":"If enabled, group members will be allowed to damage each other when grouped", + "Keywords":"group,damage", + "FieldName":"bEnableGroupDamage", + "InputType":"checkbox", + "IsFlagArgument":false, + "ParamFieldName":"/Game/_Dev/Runtime/Classes/DragonsGI.DragonsGI_C.bEnableGroupDamage", + "IncludeInCommandLine":false, + "DefaultValue":"False", + "EnumValues":{ + "True":"True", + "False":"False" + } + }, + { + "DisplayName":"Show Admin Tags", + "Category":"Server Settings", + "Description":"If enabled, admin tags will always show to all players on the server. Recommended for servers that want people to easily identify the admins", + "Keywords":"admin,tags", + "FieldName":"bAlwaysShowAdminTags", + "InputType":"checkbox", + "IsFlagArgument":false, + "ParamFieldName":"/Game/_Dev/Runtime/Classes/DragonsGI.DragonsGI_C.bAlwaysShowAdminTags", + "IncludeInCommandLine":false, + "DefaultValue":"False", + "EnumValues":{ + "True":"True", + "False":"False" + } + }, + { + "DisplayName":"Show Player Tags", + "Category":"Server Settings", + "Description":"If enabled, player nametags will always show regardless if grouped or clanned. By default, nametags only show up on grouped or clanned players", + "Keywords":"player,tags,names", + "FieldName":"bAlwaysShowPlayerTags", + "InputType":"checkbox", + "IsFlagArgument":false, + "ParamFieldName":"/Game/_Dev/Runtime/Classes/DragonsGI.DragonsGI_C.bAlwaysShowPlayerTags", + "IncludeInCommandLine":false, + "DefaultValue":"False", + "EnumValues":{ + "True":"True", + "False":"False" + } + }, + { + "DisplayName":"Show Clan Tags", + "Category":"Server Settings", + "Description":"If enabled, clan tags will show in the chat box", + "Keywords":"clan,tags", + "FieldName":"bChatShowClanTags", + "InputType":"checkbox", + "IsFlagArgument":false, + "ParamFieldName":"/Game/_Dev/Runtime/Classes/DragonsGI.DragonsGI_C.bChatShowClanTags", + "IncludeInCommandLine":false, + "DefaultValue":"False", + "EnumValues":{ + "True":"True", + "False":"False" + } + }, + { + "DisplayName":"Flag Hatchling Killers", + "Category":"Server Settings", + "Description":"If enabled, adult or elder dragons that kill hatchlings will be flagged with red glowing eyes for 20 minutes. Safelog will be unavailable to them while flagged", + "Keywords":"flag,hatchling,killers", + "FieldName":"bFlagHatchlingKillers", + "InputType":"checkbox", + "IsFlagArgument":false, + "ParamFieldName":"/Game/_Dev/Runtime/Classes/DragonsGI.DragonsGI_C.bFlagHatchlingKillers", + "IncludeInCommandLine":false, + "DefaultValue":"False", + "EnumValues":{ + "True":"True", + "False":"False" + } + }, + { + "DisplayName":"Disable Desync/Hack Checks", + "Category":"Server Settings", + "Description":"If enabled, the server will not check for client desyncs or hacks. May be useful for personal servers, private servers experiencing frequent disconnects, or servers that allow cheating", + "Keywords":"disable,dd,desyncs,hacks,checks", + "FieldName":"bDisableDD", + "InputType":"checkbox", + "IsFlagArgument":false, + "ParamFieldName":"/Game/_Dev/Runtime/Classes/DragonsGI.DragonsGI_C.bDisableDD", + "IncludeInCommandLine":false, + "DefaultValue":"True", + "EnumValues":{ + "True":"True", + "False":"False" + } + }, + { + "DisplayName":"Autosave Interval", + "Category":"Server Settings", + "Description":"Sets the time interval between each automatic save", + "Keywords":"save,interval", + "FieldName":"iAutoSaveSeconds", + "InputType":"number", + "MinValue":"60", + "MaxValue":"3600", + "IsFlagArgument":false, + "ParamFieldName":"/Game/_Dev/Runtime/Classes/DragonsGI.DragonsGI_C.iAutoSaveSeconds", + "IncludeInCommandLine":false, + "DefaultValue":"300", + "Suffix":"seconds", + "EnumValues":{} + }, + { + "DisplayName":"Maximum Latency", + "Category":"Server Settings", + "Description":"Sets the maximum allowed latency on the server. Players who exceed this will be auto-kicked. Requires Desync/Hack Checks to be disabled", + "Keywords":"max,latency,ping", + "FieldName":"iMaxLatencyMS", + "InputType":"number", + "MinValue":"100", + "MaxValue":"800", + "IsFlagArgument":false, + "ParamFieldName":"/Game/_Dev/Runtime/Classes/DragonsGI.DragonsGI_C.iMaxLatencyMS", + "IncludeInCommandLine":false, + "DefaultValue":"800", + "Suffix":"milliseconds", + "EnumValues":{} + }, + { + "DisplayName":"Use Latency Hard Cap", + "Category":"Server Settings", + "Description":"If enabled, server will kick players who exceed the Maximum Latency. Otherwise, the server will use a soft cap and kick players only if the Maximum Latency is exceeded due to a lag spike. Requires Desync/Hack Checks to be disabled", + "Keywords":"latency,hard,cap", + "FieldName":"bUseLatencyHardCap", + "InputType":"checkbox", + "IsFlagArgument":false, + "ParamFieldName":"/Game/_Dev/Runtime/Classes/DragonsGI.DragonsGI_C.bUseLatencyHardCap", + "IncludeInCommandLine":false, + "DefaultValue":"False", + "EnumValues":{ + "True":"True", + "False":"False" + } + }, + { + "DisplayName":"Discord Server", + "Category":"Server Settings", + "Description":"Sets the link to a Discord server. Include the full URL", + "Keywords":"discord", + "FieldName":"sServerDiscord", + "InputType":"text", + "IsFlagArgument":false, + "ParamFieldName":"/Game/_Dev/Runtime/Classes/DragonsGI.DragonsGI_C.sServerDiscord", + "IncludeInCommandLine":false, + "DefaultValue":"", + "Placeholder":"https://discord.gg/mW2p4kr", + "EnumValues":{} + } +] diff --git a/day-of-dragonsgame.ini b/day-of-dragonsgame.ini new file mode 100644 index 0000000..7939052 --- /dev/null +++ b/day-of-dragonsgame.ini @@ -0,0 +1,21 @@ +[/Game/_Dev/Runtime/Classes/DragonsGI.DragonsGI_C] +iMaxPlayers=100 +iCorpseDespawnTime=300 +iAutoSaveSeconds=300 +iMaxClanMembers=1024 +iMaxClans=255 +iMaxLatencyMS=800 +bDisablePVP=False +bRoleplay=False +bEnableGroupDamage=False +bAlwaysShowAdminTags=False +bAlwaysShowPlayerTags=False +bChatShowClanTags=False +bUseFriendsList=False +bFlagHatchlingKillers=False +bDisableDD=True +bDisableAI=False +bUseLatencyHardCap=False +sServerMOTD=Welcome to this Day of Dragons server - powered by AMP! +sServerDiscord= +sServerPassword= \ No newline at end of file diff --git a/day-of-dragonsmetaconfig.json b/day-of-dragonsmetaconfig.json new file mode 100644 index 0000000..e99546e --- /dev/null +++ b/day-of-dragonsmetaconfig.json @@ -0,0 +1,14 @@ +[ + { + "ConfigFile":"Dragons/Saved/Config/WindowsServer/Game.ini", + "AutoMap":true, + "ConfigType":"ini", + "ConfigFormatRegex":"^(?.+?)=(?.*?)$" + }, + { + "ConfigFile":"Dragons/Saved/Config/LinuxServer/Game.ini", + "AutoMap":true, + "ConfigType":"ini", + "ConfigFormatRegex":"^(?.+?)=(?.*?)$" + } +]