Merge pull request #92 from Greelan/theisle-legacy

Add The Isle (Legacy)
This commit is contained in:
PhonicUK 2022-03-25 18:22:25 +00:00 committed by GitHub
commit cdf40e2bf9
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 680 additions and 0 deletions

76
theisle-legacy.kvp Normal file
View File

@ -0,0 +1,76 @@
Meta.DisplayName=The Isle (Legacy)
Meta.Description=The Isle (Legacy) Dedicated Server
Meta.OS=Windows
Meta.Arch=x86_64
Meta.Author=Greelan
Meta.URL=https://survivetheisle.com/
Meta.DisplayImageSource=steam:376210
Meta.EndpointURIFormat=steam://connect/{ip}:{GenericModule.App.ApplicationPort2}
Meta.ConfigManifest=theisle-legacyconfig.json
Meta.MetaConfigManifest=theisle-legacymetaconfig.json
Meta.ConfigRoot=theisle-legacy.kvp
Meta.MinAMPVersion=2.3.2.8
Meta.SpecificDockerImage=
Meta.ContainerPolicy=Supported
Meta.Prerequsites=[]
Meta.ConfigReleaseState=NotSpecified
App.DisplayName=The Isle (Legacy)
App.RootDir=./theisle/
App.BaseDirectory=./theisle/412680/
App.ExecutableWin=412680/TheIsle/Binaries/Win64/TheIsleServer-Win64-Shipping.exe
App.ExecutableLinux=1580130/proton
App.WorkingDir=412680/TheIsle/Binaries/Win64
App.LinuxCommandLineArgs=run {{$FullBaseDir}}TheIsle/Binaries/Win64/TheIsleServer-Win64-Shipping.exe
App.WindowsCommandLineArgs=
App.CommandLineArgs={{$PlatformArgs}} {{Map}}?game={{GameMode}} -Port={{$ApplicationPort1}} -QueryPort={{$ApplicationPort2}} {{$FormattedArgs}} -log
App.AppSettings={}
App.EnvironmentVariables={"LD_LIBRARY_PATH":"{{$FullBaseDir}}linux64:%LD_LIBRARY_PATH%","SteamAppId":"376210","STEAM_COMPAT_DATA_PATH":"{{$FullRootDir}}1580130","STEAM_COMPAT_CLIENT_INSTALL_PATH":"{{$FullRootDir}}1580130"}
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.ApplicationPort1=7777
App.ApplicationPort2=7778
App.ApplicationPort3=0
App.RemoteAdminPort=0
App.MaxUsers=50
App.UseRandomAdminPassword=False
App.RemoteAdminPassword=Password123
App.AdminMethod=STDIO
App.AdminLoginTransform=None
App.RCONConnectDelaySeconds=5
App.RCONConnectRetrySeconds=5
App.UpdateSources=[{"UpdateStageName":"SteamCMD Download","UpdateSourcePlatform":"All","UpdateSource":"SteamCMD","UpdateSourceData":"412680","ForceDownloadPlatform":"Windows"},{"UpdateStageName":"Proton Compatibility Layer","UpdateSourcePlatform":"Linux","UpdateSource":"SteamCMD","UpdateSourceData":"1580130"},{"UpdateStageName":"Game Config File Download","UpdateSourcePlatform":"All","UpdateSource":"FetchURL","UpdateSourceData":"https://raw.githubusercontent.com/Greelan/AMPTemplates/theisle-legacy/theisle-legacygame.ini","UpdateSourceTarget":"../","OverwriteExistingFiles":true},{"UpdateStageName":"Config Directory Creation","UpdateSourcePlatform":"All","UpdateSource":"CreateDirectory","UpdateSourceArgs":"./theisle/412680/TheIsle/Saved/Config/WindowsServer"},{"UpdateStageName":"Game Config File Copy","UpdateSourcePlatform":"All","UpdateSource":"CopyFilePath","UpdateSourceData":"./theisle/412680/TheIsle/Saved/Config/WindowsServer/Game.ini","UpdateSourceArgs":"./theisle-legacygame.ini","OverwriteExistingFiles":false}]
App.Compatibility=None
App.SteamUpdateAnonymousLogin=True
App.SteamForceLoginPrompt=False
App.RapidStartup=False
App.SupportsUniversalSleep=False
App.UniversalSleepApplicationUDPPort=1
App.UniversalSleepSteamQueryPort=2
App.WakeupMode=Any
App.ApplicationReadyMode=RegexMatch
App.TemplateMatchRegex={{(\$?[\w]+)}}
Console.FilterMatchRegex=
Console.FilterMatchReplacement=
Console.ThrowawayMessageRegex=
Console.AppReadyRegex=^LogGameMode: Display: Match State Changed from WaitingToStart to InProgress$
Console.UserJoinRegex=
Console.UserLeaveRegex=
Console.UserChatRegex=^LogIChat: \[[\d:]+\] \(.*\) (?<username>.+?): (?<message>.+)$
Console.UpdateAvailableRegex=^\[\d\d:\d\d:\d\d\] \[INFO\] A new server update is available! v[\d\.]+.$
Console.SuppressLogAtStart=False
Console.ActivateLogRegex=
Console.UserActions={}
Limits.SleepMode=True
Limits.SleepOnStart=False
Limits.SleepDelayMinutes=5
Limits.DozeDelay=2
Limits.AutoRetryCount=5

522
theisle-legacyconfig.json Normal file
View File

@ -0,0 +1,522 @@
[
{
"DisplayName":"Server Port",
"Category":"Server Settings",
"Description":"",
"Keywords":"",
"FieldName":"$ApplicationPort1",
"InputType":"number",
"Hidden":true,
"IsFlagArgument":false,
"ParamFieldName":"url.Port",
"IncludeInCommandLine":false,
"EnumValues":{}
},
{
"DisplayName":"Query Port",
"Category":"Server Settings",
"Description":"",
"Keywords":"",
"FieldName":"$ApplicationPort2",
"InputType":"number",
"Hidden":true,
"IsFlagArgument":false,
"ParamFieldName":"url.PeerPort",
"IncludeInCommandLine":false,
"EnumValues":{}
},
{
"DisplayName":"Server Name",
"Category":"Server Settings",
"Description":"The name of the server as it appears publicly",
"Keywords":"name",
"FieldName":"ServerName",
"InputType":"text",
"IsFlagArgument":false,
"ParamFieldName":"/script/theisle.igamesession.ServerName",
"IncludeInCommandLine":false,
"DefaultValue":"The Isle Server - Powered by AMP",
"EnumValues":{}
},
{
"DisplayName":"Welcome Message",
"Category":"Server Settings",
"Description":"Welcome message when players join the server",
"Keywords":"welcome,message,motd",
"FieldName":"MOTD",
"InputType":"text",
"IsFlagArgument":false,
"ParamFieldName":"MOTD",
"IncludeInCommandLine":false,
"DefaultValue":"Welcome to The Isle Server - powered by AMP!",
"EnumValues":{}
},
{
"DisplayName":"Server Password",
"Category":"Server Settings",
"Description":"Password required to connect to the server. Default is no password",
"Keywords":"password",
"FieldName":"ServerPassword",
"InputType":"password",
"IsFlagArgument":false,
"ParamFieldName":"/script/theisle.igamesession.ServerPassword",
"IncludeInCommandLine":false,
"DefaultValue":"",
"EnumValues":{}
},
{
"DisplayName":"Server Steam Group (Whitelist)",
"Category":"Server Settings",
"Description":"Sets the required SteamGroup64ID membership for players to join (whitelist server). Default is none",
"Keywords":"whitelist,steam,group",
"FieldName":"ServerSteamGroup",
"InputType":"number",
"IsFlagArgument":false,
"ParamFieldName":"/script/theisle.igamesession.ServerSteamGroup",
"IncludeInCommandLine":false,
"DefaultValue":"",
"EnumValues":{}
},
{
"DisplayName":"Set MultiHome IP",
"Category":"Server Settings",
"Description":"If needed, set a private or public IP to bind the server to, or 0.0.0.0 for all IPs",
"Keywords":"multihome,ip",
"FieldName":"MultiHome",
"InputType":"text",
"IsFlagArgument":false,
"SkipIfEmpty":true,
"ParamFieldName":"MultiHome",
"IncludeInCommandLine":true,
"DefaultValue":"",
"EnumValues":{}
},
{
"DisplayName":"Enable Family Sharing",
"Category":"Server Settings",
"Description":"If enabled, Steam family account players can join the server",
"Keywords":"family,sharing",
"FieldName":"bFamilySharing",
"InputType":"checkbox",
"IsFlagArgument":false,
"ParamFieldName":"/script/theisle.igamesession.bFamilySharing",
"IncludeInCommandLine":false,
"DefaultValue":"true",
"EnumValues":{
"False":"false",
"True":"true"
}
},
{
"DisplayName":"Server Type",
"Category":"Server Settings",
"Description":"Server type as it appears in the Steam browser",
"Keywords":"server,game,type",
"FieldName":"ServerTag",
"InputType":"enum",
"IsFlagArgument":false,
"ParamFieldName":"/script/theisle.igamesession.ServerTag",
"IncludeInCommandLine":false,
"DefaultValue":"0",
"EnumValues":{
"0":"Standard",
"1":"Realism",
"2":"Roleplay",
"3":"Experimental"
}
},
{
"DisplayName":"Map",
"Category":"Server Settings",
"Description":"Sets the map",
"Keywords":"map",
"FieldName":"Map",
"InputType":"enum",
"IsFlagArgument":false,
"ParamFieldName":"Map",
"IncludeInCommandLine":false,
"DefaultValue":"/Game/TheIsle/Maps/Thenyaw_Island/Thenyaw_Island",
"EnumValues":{
"/Game/TheIsle/Maps/Thenyaw_Island/Thenyaw_Island":"Thenyaw Island",
"/Game/TheIsle/Maps/Landscape3/Isle_V3":"Isle V3",
"/Game/TheIsle/Maps/Developer/DV_TestLevel":"DV TestLevel"
}
},
{
"DisplayName":"Game Mode",
"Category":"Server Settings",
"Description":"Sets the game mode. Sandbox mode is usually used with the DV TestLevel map",
"Keywords":"game,mode,survival,sandbox",
"FieldName":"GameMode",
"InputType":"enum",
"IsFlagArgument":false,
"ParamFieldName":"GameMode",
"IncludeInCommandLine":false,
"DefaultValue":"Survival",
"EnumValues":{
"Survival":"Survival",
"Sandbox":"Sandbox"
}
},
{
"DisplayName":"Player Limit",
"Category":"Server Settings",
"Description":"Maximum number of players that may connect to the server",
"Keywords":"players,limit",
"FieldName":"$MaxUsers",
"InputType":"number",
"IsFlagArgument":false,
"ParamFieldName":"/script/engine.gamesession.MaxPlayers",
"IncludeInCommandLine":false,
"DefaultValue":"50",
"Suffix":"players",
"EnumValues":{}
},
{
"DisplayName":"Enable Player Name Tags",
"Category":"Server Settings",
"Description":"If enabled, name tags will be shown above players",
"Keywords":"name,tags",
"FieldName":"bServerNameTags",
"InputType":"checkbox",
"IsFlagArgument":false,
"ParamFieldName":"/script/theisle.igamesession.bServerNameTags",
"IncludeInCommandLine":false,
"DefaultValue":"true",
"EnumValues":{
"False":"false",
"True":"true"
}
},
{
"DisplayName":"Spectator Limit",
"Category":"Server Settings",
"Description":"Maximum number of spectators",
"Keywords":"spectators,limit",
"FieldName":"MaxSpectators",
"InputType":"number",
"IsFlagArgument":false,
"ParamFieldName":"/script/engine.gamesession.MaxSpectators",
"IncludeInCommandLine":false,
"DefaultValue":"0",
"Suffix":"spectators",
"EnumValues":{}
},
{
"DisplayName":"Enable Chat",
"Category":"Server Settings",
"Description":"If enabled, players will be able to chat",
"Keywords":"chat",
"FieldName":"bServerAllowChat",
"InputType":"checkbox",
"IsFlagArgument":false,
"ParamFieldName":"/script/theisle.igamesession.bServerAllowChat",
"IncludeInCommandLine":false,
"DefaultValue":"true",
"EnumValues":{
"False":"false",
"True":"true"
}
},
{
"DisplayName":"Enable Global Chat",
"Category":"Server Settings",
"Description":"If enabled, all players will be able to use the global chat channel, not just admins",
"Keywords":"chat,global",
"FieldName":"bServerGlobalChat",
"InputType":"checkbox",
"IsFlagArgument":false,
"ParamFieldName":"/script/theisle.igamesession.bServerGlobalChat",
"IncludeInCommandLine":false,
"DefaultValue":"true",
"EnumValues":{
"False":"false",
"True":"true"
}
},
{
"DisplayName":"Enable AI Dinosaurs",
"Category":"Server Settings",
"Description":"If enabled, AI dinosaurs will be spawned",
"Keywords":"AI,dinosaur",
"FieldName":"bServerAI",
"InputType":"checkbox",
"IsFlagArgument":false,
"ParamFieldName":"/script/theisle.igamesession.bServerAI",
"IncludeInCommandLine":false,
"DefaultValue":"true",
"EnumValues":{
"False":"false",
"True":"true"
}
},
{
"DisplayName":"AI Dinosaur Limit",
"Category":"Server Settings",
"Description":"Maximum number of AI dinosaurs that can spawn (if enabled)",
"Keywords":"AI,limit",
"FieldName":"ServerAIMax",
"InputType":"number",
"IsFlagArgument":false,
"ParamFieldName":"/script/theisle.igamesession.ServerAIMax",
"IncludeInCommandLine":false,
"DefaultValue":"100",
"Suffix":"dinosaurs",
"EnumValues":{}
},
{
"DisplayName":"AI Dinosaur Multiplier",
"Category":"Server Settings",
"Description":"Sets AI spawn multiplier around each player (if enabled)",
"Keywords":"AI,multiplier",
"FieldName":"ServerAIRate",
"InputType":"number",
"IsFlagArgument":false,
"ParamFieldName":"/script/theisle.igamesession.ServerAIRate",
"IncludeInCommandLine":false,
"DefaultValue":"1.0",
"EnumValues":{}
},
{
"DisplayName":"Enable AI Player Spawn Points",
"Category":"Server Settings",
"Description":"If enabled, allows the AI to use spawn points defined in the map for players and not only AI spawn points",
"Keywords":"AI,spawn,points",
"FieldName":"bServerAIPlayerSpawns",
"InputType":"checkbox",
"IsFlagArgument":false,
"ParamFieldName":"/script/theisle.igamesession.bServerAIPlayerSpawns",
"IncludeInCommandLine":false,
"DefaultValue":"false",
"EnumValues":{
"False":"false",
"True":"true"
}
},
{
"DisplayName":"Enable Player Name Tags",
"Category":"Server Settings",
"Description":"If enabled, name tags will be shown above players",
"Keywords":"name,tags",
"FieldName":"bServerNameTags",
"InputType":"checkbox",
"IsFlagArgument":false,
"ParamFieldName":"/script/theisle.igamesession.bServerNameTags",
"IncludeInCommandLine":false,
"DefaultValue":"true",
"EnumValues":{
"False":"false",
"True":"true"
}
},
{
"DisplayName":"Enable Dinosaur Growth",
"Category":"Server Settings",
"Description":"If enabled, dinosaurs will grow over time",
"Keywords":"dinosaur,growth",
"FieldName":"bServerGrowth",
"InputType":"checkbox",
"IsFlagArgument":false,
"ParamFieldName":"/script/theisle.igamesession.bServerGrowth",
"IncludeInCommandLine":false,
"DefaultValue":"true",
"EnumValues":{
"False":"false",
"True":"true"
}
},
{
"DisplayName":"Enable Nesting Dinosaurs",
"Category":"Server Settings",
"Description":"If enabled, nesting baby dinosaurs will be allowed",
"Keywords":"nesting,baby,dinosaur",
"FieldName":"bServerNesting",
"InputType":"checkbox",
"IsFlagArgument":false,
"ParamFieldName":"/script/theisle.igamesession.bServerNesting",
"IncludeInCommandLine":false,
"DefaultValue":"true",
"EnumValues":{
"False":"false",
"True":"true"
}
},
{
"DisplayName":"Enable Scent Tracking",
"Category":"Server Settings",
"Description":"Enables scent tracking",
"Keywords":"scent,tracking",
"FieldName":"bServerScent",
"InputType":"checkbox",
"IsFlagArgument":false,
"ParamFieldName":"/script/theisle.igamesession.bServerScent",
"IncludeInCommandLine":false,
"DefaultValue":"true",
"EnumValues":{
"False":"false",
"True":"true"
}
},
{
"DisplayName":"Enable Turning In Place",
"Category":"Server Settings",
"Description":"If enabled, dinosaurs can turn in place without moving forward",
"Keywords":"turning,place,dinosaur",
"FieldName":"bServerAllowTurnInPlace",
"InputType":"checkbox",
"IsFlagArgument":false,
"ParamFieldName":"/script/theisle.igamesession.bServerAllowTurnInPlace",
"IncludeInCommandLine":false,
"DefaultValue":"false",
"EnumValues":{
"False":"false",
"True":"true"
}
},
{
"DisplayName":"Enable Fall Damage",
"Category":"Server Settings",
"Description":"If enabled, falls cause damage",
"Keywords":"fall,damage",
"FieldName":"bServerFallDamage",
"InputType":"checkbox",
"IsFlagArgument":false,
"ParamFieldName":"/script/theisle.igamesession.bServerFallDamage",
"IncludeInCommandLine":false,
"DefaultValue":"true",
"EnumValues":{
"False":"false",
"True":"true"
}
},
{
"DisplayName":"Corpse Retention Period",
"Category":"Server Settings",
"Description":"Time period for corpses to remain before respawning. Recommended to keep below 1,200 seconds",
"Keywords":"corpse,respawn,period",
"FieldName":"ServerDeadBodyTime",
"InputType":"number",
"IsFlagArgument":false,
"ParamFieldName":"/script/theisle.igamesession.ServerDeadBodyTime",
"IncludeInCommandLine":false,
"DefaultValue":"10",
"Suffix":"seconds",
"EnumValues":{}
},
{
"DisplayName":"Player Respawn Interval",
"Category":"Server Settings",
"Description":"Time interval before players respawn after death",
"Keywords":"player,respawn,interval",
"FieldName":"ServerRespawnTime",
"InputType":"number",
"IsFlagArgument":false,
"ParamFieldName":"/script/theisle.igamesession.ServerRespawnTime",
"IncludeInCommandLine":false,
"DefaultValue":"45",
"Suffix":"seconds",
"EnumValues":{}
},
{
"DisplayName":"Minimum Player Logout Period",
"Category":"Server Settings",
"Description":"Time period before players can safely logout",
"Keywords":"player,logout,period",
"FieldName":"ServerLogoutTime",
"InputType":"number",
"IsFlagArgument":false,
"ParamFieldName":"/script/theisle.igamesession.ServerLogoutTime",
"IncludeInCommandLine":false,
"DefaultValue":"60",
"Suffix":"seconds",
"EnumValues":{}
},
{
"DisplayName":"Footprint Lifetime",
"Category":"Server Settings",
"Description":"Time period before footprints fade",
"Keywords":"footprint,fade,lifetime",
"FieldName":"ServerFootprintLifetime",
"InputType":"number",
"IsFlagArgument":false,
"ParamFieldName":"/script/theisle.igamesession.ServerFootprintLifetime",
"IncludeInCommandLine":false,
"DefaultValue":"60",
"Suffix":"seconds",
"EnumValues":{}
},
{
"DisplayName":"Server Starting Time",
"Category":"Server Settings",
"Description":"Time of day at which the server starts (military time)",
"Keywords":"starting,time",
"FieldName":"ServerStartingTime",
"InputType":"number",
"IsFlagArgument":false,
"ParamFieldName":"/script/theisle.igamemode.ServerStartingTime",
"IncludeInCommandLine":false,
"DefaultValue":"1350",
"Placeholder":"0000 - 2400",
"EnumValues":{}
},
{
"DisplayName":"Day Length",
"Category":"Server Settings",
"Description":"",
"Keywords":"day,length",
"FieldName":"ServerDayLength",
"InputType":"number",
"IsFlagArgument":false,
"ParamFieldName":"/script/theisle.igamemode.ServerDayLength",
"IncludeInCommandLine":false,
"DefaultValue":"45",
"Suffix":"minutes",
"EnumValues":{}
},
{
"DisplayName":"Enable Video Replay Recording",
"Category":"Server Settings",
"Description":"",
"Keywords":"video,replay,recording",
"FieldName":"bServerAllowReplayRecording",
"InputType":"checkbox",
"IsFlagArgument":false,
"ParamFieldName":"/script/theisle.igamesession.bServerAllowReplayRecording",
"IncludeInCommandLine":false,
"DefaultValue":"true",
"EnumValues":{
"False":"false",
"True":"true"
}
},
{
"DisplayName":"Enable Internal Database",
"Category":"Server Settings",
"Description":"If enabled, the internal database will be used, instead of an external SQL server",
"Keywords":"internal,database",
"FieldName":"ServerDatabase",
"InputType":"checkbox",
"IsFlagArgument":false,
"ParamFieldName":"/script/theisle.igamesession.ServerDatabase",
"IncludeInCommandLine":false,
"DefaultValue":"true",
"EnumValues":{
"False":"false",
"True":"true"
}
},
{
"DisplayName":"Discord Address",
"Category":"Server Settings",
"Description":"ID for a Discord server (the ID after \"discord.gg/\") to provide a link to",
"Keywords":"discord",
"FieldName":"ServerDiscord",
"InputType":"text",
"IsFlagArgument":false,
"ParamFieldName":"/script/theisle.igamesession.ServerDiscord",
"IncludeInCommandLine":false,
"DefaultValue":"",
"Placeholder":"78xKTd",
"EnumValues":{}
}
]

49
theisle-legacygame.ini Normal file
View File

@ -0,0 +1,49 @@
[/script/theisle.igamesession]
ServerName=The Isle Server - Powered by AMP
ServerPassword=
ServerSteamGroup=
bFamilySharing=true
ServerTag=0
ServerDatabase=true
bServerAllowChat=true
bServerGlobalChat=true
bServerNameTags=true
bServerExperimental=false
bServerAI=true
ServerAIMax=100
ServerAIRate=1.0
bServerAIPlayerSpawns=false
bServerGrowth=true
bServerNesting=true
bServerScent=true
bServerAllowTurnInPlace=false
bServerFallDamage=true
bServerAllowReplayRecording=true
ServerDeadBodyTime=10
ServerRespawnTime=45
ServerLogoutTime=60
ServerFootprintLifetime=60
ServerDiscord=
;ServerAdmins=
[/script/theisle.igamemode]
; Dinosaur Overrides
;ProgressionOverrides=(Row="Austro",Points=10)
;ProgressionOverrides=(Row="Spino",Points=20)
;DisabledDinosaurs=TrikeAdultS
;DisabledDinosaurs=Velo
; Time of Day / Weather Settings
ServerStartingTime=1350
ServerDayLength=45
; Supported Database Types: (None, SQLite, MariaDB)
;DatabaseType=SQLite
;DatabaseHost=127.0.0.127
;DatabasePort=3306
;DatabaseUser=root
;DatabasePass=
[/script/engine.gamesession]
MaxPlayers=50
MaxSpectators=0

View File

@ -0,0 +1,33 @@
[
{
"ConfigFile": "TheIsle/Saved/Config/WindowsServer/Game.ini",
"AutoMap": true,
"ConfigType": "ini",
"ConfigFormatRegex": "^(?<key>.+?)=(?<value>.*?)$"
},
{
"ConfigFile": "TheIsle/Saved/Config/WindowsServer/GameUserSettings.ini",
"AutoMap": true,
"ConfigType": "ini",
"ConfigFormatRegex": "^(?<key>.+?)=(?<value>.*?)$"
},
{
"ConfigFile": "TheIsle/Saved/Config/WindowsServer/Engine.ini",
"AutoMap": true,
"ConfigType": "ini",
"ConfigFormatRegex": "^(?<key>.+?)=(?<value>.*?)$"
},
{
"ConfigFile": "TheIsle/Saved/MOTD.txt",
"ConfigType": "kvp",
"ConfigFormat": "{0}{1}",
"Subsections": [
{
"Heading": "$root",
"SettingMappings": {
"": "MOTD"
}
}
]
}
]