Add Skyrim Together Reborn (#454)

This commit is contained in:
Greelan 2023-09-16 07:33:59 +10:00 committed by GitHub
parent 38ec53b7b7
commit e8c66fd37a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 441 additions and 0 deletions

102
skyrim-together-reborn.kvp Normal file
View File

@ -0,0 +1,102 @@
Meta.DisplayName=Skyrim Together Reborn
Meta.Description=Skyrim Together Reborn Server
Meta.OS=Windows, Linux
Meta.AarchSupport=Unknown
Meta.Arch=x86_64
Meta.Author=RFrost619, Greelan
Meta.URL=https://skyrim-together.com/
Meta.DisplayImageSource=steam:489830
Meta.EndpointURIFormat=steam://connect/{0}
Meta.ConfigManifest=skyrim-together-rebornconfig.json
Meta.MetaConfigManifest=skyrim-together-rebornmetaconfig.json
Meta.ConfigRoot=skyrim-together-reborn.kvp
Meta.MinAMPVersion=2.4.6.6
Meta.SpecificDockerImage=cubecoders/ampbase:wine
Meta.DockerRequired=False
Meta.DockerBaseReadOnly=False
Meta.ContainerPolicy=SupportedOnWindows, RecommendedOnLinux
Meta.ContainerPolicyReason=The server requires Wine to run on Linux. Using a container avoids the need to install this dependency on the host.
Meta.ExtraSetupStepsURI=
Meta.Prerequsites=[]
Meta.ExtraContainerPackages=[]
Meta.ConfigReleaseState=NotSpecified
Meta.NoCommercialUsage=False
Meta.ConfigVersion=0.0.0.0
Meta.ReleaseNotes=
Meta.BreakingReleaseNotes=
Meta.OriginalSource=
App.DisplayName=Skyrim Together Reborn
App.RootDir=./skyrim-together-reborn/
App.BaseDirectory=./skyrim-together-reborn/server/
App.SteamWorkshopDownloadLocation=
App.ExecutableWin=server\SkyrimTogetherReborn\SkyrimTogetherServer.exe
App.ExecutableLinux=/usr/bin/wine
App.WorkingDir=server/SkyrimTogetherReborn
App.LinuxCommandLineArgs=./SkyrimTogetherServer.exe
App.WindowsCommandLineArgs=
App.CommandLineArgs={{$PlatformArgs}} {{$FormattedArgs}}
App.UseLinuxIOREDIR=False
App.AppSettings={}
App.EnvironmentVariables={"LD_LIBRARY_PATH":"{{$FullBaseDir}}linux64:%LD_LIBRARY_PATH%","SteamAppId":"489830","WINEPREFIX":"{{$FullRootDir}}.wine","WINEARCH":"win64","WINEDEBUG":"-all"}
App.CommandLineParameterFormat=+{0} {1}
App.CommandLineParameterDelimiter=
App.ExitMethod=OS_CLOSE
App.ExitTimeout=30
App.ExitString=/quit
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":"10578","Ref":"GamePort","Name":"Game Port","Description":"Port used for main game traffic"}]
App.AdminPortRef=0
App.PrimaryApplicationPortRef=GamePort
App.UniversalSleepApplicationUDPPortRef=GamePort
App.UniversalSleepSteamQueryPortRef=0
App.MaxUsers=8
App.UseRandomAdminPassword=False
App.PersistRandomPassword=False
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[skyrim-together-rebornupdates.json]
App.PreStartStages=[]
App.ForceUpdate=False
App.ForceUpdateReason=
App.Compatibility=None
App.SteamUpdateAnonymousLogin=True
App.SteamForceLoginPrompt=False
App.RapidStartup=False
App.MonitorChildProcess=True
App.DumpFullChildProcessTree=False
App.MonitorChildProcessWaitMs=100
App.MonitorChildProcessName=wine64
App.SupportsUniversalSleep=False
App.WakeupMode=Any
App.ApplicationReadyMode=RegexMatch
App.TemplateMatchRegex={{(\$?[\w]+)}}
Console.FilterMatchRegex=
Console.FilterMatchReplacement=
Console.ThrowawayMessageRegex=
Console.AppReadyRegex=^> Server started, type \/help for a list of commands\.$
Console.UserJoinRegex=^\[[\d:]+\] \[info\] New player '(?<username>.+?)' \[(?<sessionid>.+?)\] connected.*$
Console.UserLeaveRegex=^\[[\d:]+\] \[info\] Connection ended (?<sessionid>.+?) - '(?<username>.+?)' disconnected$
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,298 @@
[
{
"DisplayName":"Server Port",
"Category":"STR Settings",
"Description":"",
"Keywords":"",
"Hidden":true,
"FieldName":"$GamePort",
"InputType":"number",
"ParamFieldName":"GameServer.uPort"
},
{
"DisplayName":"Enable Console",
"Category":"STR Settings",
"Description":"",
"Keywords":"",
"Hidden":true,
"FieldName":"bConsole",
"InputType":"text",
"ParamFieldName":"general.bConsole",
"DefaultValue":"true",
"EnumValues":{}
},
{
"DisplayName":"Server Download URL",
"Category":"STR Settings",
"Description":"Sets the full URL to download the server from. [Login](https://www.nexusmods.com/skyrimspecialedition/mods/69993?tab=files) to Nexus Mods, select Manual Download for the required server version, and continue until the download begins. Then cancel the download and copy the \"click here\" download URL to AMP. Update the server before the URL expires",
"Keywords":"download,url",
"FieldName":"DownloadURL",
"InputType":"url",
"ParamFieldName":"DownloadURL",
"DefaultValue":"",
"EnumValues":{}
},
{
"DisplayName":"Server Name",
"Category":"STR Settings",
"Description":"Sets the name of the server as shown on the server list",
"Keywords":"name,server,sservername",
"FieldName":"sServerName",
"InputType":"text",
"ParamFieldName":"GameServer.sServerName",
"IncludeInCommandLine":false,
"DefaultValue":"AMP Powered Skyrim Together Reborn Server",
"Placeholder":"AMP Powered Skyrim Together Reborn Server"
},
{
"DisplayName":"Announce Server",
"Category":"STR Settings",
"Description":"If enabled, the server will show on the server list, assuming no password is set",
"Keywords":"announce,public,serverlist,bannounceserver",
"FieldName":"bAnnounceServer",
"InputType":"checkbox",
"ParamFieldName":"LiveServices.bAnnounceServer",
"IncludeInCommandLine":false,
"DefaultValue":"false",
"EnumValues":{
"False":"false",
"True":"true"
}
},
{
"DisplayName":"Server Password",
"Category":"STR Settings",
"Description":"Sets the password required for players to connect to the server. Blank = disabled. If a password is set, the server will not show on the server list, and players must connect manually",
"Keywords":"password,server,spassword",
"FieldName":"sPassword",
"InputType":"password",
"ParamFieldName":"GameServer.sPassword",
"DefaultValue":"",
"EnumValues":{}
},
{
"DisplayName":"Admin Password",
"Category":"STR Settings",
"Description":"Sets the admin password, for potential future admin panels. Default is a strong, random password. Currently unused",
"Keywords":"admin,password,sadminpassword",
"FieldName":"sAdminPassword",
"InputType":"password",
"ParamFieldName":"GameServer.sAdminPassword",
"DefaultValue":"{{newguid()}}",
"EnumValues":{}
},
{
"DisplayName":"Player Limit",
"Category":"STR Settings",
"Description":"Sets the maximum number of players that can connect to the server at one time",
"Keywords":"player,count,limit,maximum,umaxplayercount",
"FieldName":"uMaxPlayerCount",
"InputType":"number",
"ParamFieldName":"GameServer.uMaxPlayerCount",
"DefaultValue":"8",
"Placeholder":"8",
"Suffix":"players",
"EnumValues":{}
},
{
"DisplayName":"Difficulty Level",
"Category":"STR Settings",
"Description":"Sets the server difficulty level, which is enforced on all clients",
"Keywords":"difficulty,level,udifficulty",
"FieldName":"uDifficulty",
"InputType":"enum",
"ParamFieldName":"Gameplay.uDifficulty",
"DefaultValue":"4",
"EnumValues":{
"0":"Novice",
"1":"Apprentice",
"2":"Adept",
"3":"Expert",
"4":"Master (default)",
"5":"Legendary"
}
},
{
"DisplayName":"Enable PvP",
"Category":"STR Settings",
"Description":"If enabled, players can damage each other. Shouts on other players, like fus ro dah, also only work when this option is enabled",
"Keywords":"pvp,damage,benablepvp",
"FieldName":"bEnablePvp",
"InputType":"checkbox",
"ParamFieldName":"Gameplay.bEnablePvp",
"DefaultValue":"false",
"EnumValues":{
"False":"false",
"True":"true"
}
},
{
"DisplayName":"Time Scale",
"Category":"STR Settings",
"Description":"Sets how fast in-game time progresses",
"Keywords":"time,scale,utimescale",
"FieldName":"uTimeScale",
"InputType":"number",
"MinValue":"0",
"MaxValue":"1000",
"ParamFieldName":"Gameplay.uTimeScale",
"DefaultValue":"20",
"Placeholder":"20",
"EnumValues":{}
},
{
"DisplayName":"Gold Loss Factor",
"Category":"STR Settings",
"Description":"Sets how much gold a player loses when they die. 0 = no gold loss",
"Keywords":"gold,loss,die,death,fgoldlossfactor",
"FieldName":"fGoldLossFactor",
"InputType":"number",
"MinValue":"0",
"MaxValue":"1",
"ParamFieldName":"Gameplay.fGoldLossFactor",
"DefaultValue":"0",
"Placeholder":"0",
"EnumValues":{}
},
{
"DisplayName":"Enable Item Drops",
"Category":"STR Settings",
"Description":"If set, dropping items in the world will be synced. Recommended to be disabled, as otherwise server crashes can occur",
"Keywords":"item,drops,benableitemdrops",
"FieldName":"bEnableItemDrops",
"InputType":"checkbox",
"ParamFieldName":"Gameplay.bEnableItemDrops",
"DefaultValue":"false",
"EnumValues":{
"False":"false",
"True":"true"
}
},
{
"DisplayName":"Enable XP Sync",
"Category":"STR Settings",
"Description":"If set, the XP sync system will be enabled",
"Keywords":"xp,sync,benablexpsync",
"FieldName":"bEnableXpSync",
"InputType":"checkbox",
"ParamFieldName":"Gameplay.bEnableXpSync",
"DefaultValue":"true",
"EnumValues":{
"False":"false",
"True":"true"
}
},
{
"DisplayName":"Enable Death System",
"Category":"STR Settings",
"Description":"If set, the custom death system will be enabled. Only disable this if you know what you're doing, and if you have a suitable death mod that replaces the mechanics. Reloading old saves every time you die will cause issues",
"Keywords":"death,benabledeathsystem",
"FieldName":"bEnableDeathSystem",
"InputType":"checkbox",
"ParamFieldName":"Gameplay.bEnableDeathSystem",
"DefaultValue":"true",
"EnumValues":{
"False":"false",
"True":"true"
}
},
{
"DisplayName":"Sync Player Homes",
"Category":"STR Settings",
"Description":"If enabled, chests in player homes will be synced. This option is disabled by default to allow players to use their home chests for long term storage. Beware however that long term storage is not consistent in STR",
"Keywords":"home,bsyncplayerhomes",
"FieldName":"bSyncPlayerHomes",
"InputType":"checkbox",
"ParamFieldName":"Gameplay.bSyncPlayerHomes",
"DefaultValue":"false",
"EnumValues":{
"False":"false",
"True":"true"
}
},
{
"DisplayName":"Enable Greetings",
"Category":"STR Settings",
"Description":"If enabled, when a player walks close to an NPC, the NPC will start talking to the player with random dialogue. Enabling this setting can be annoying with dialogue sync implemented",
"Keywords":"greetings,npc,dialogue,benablegreetings",
"FieldName":"bEnableGreetings",
"InputType":"checkbox",
"ParamFieldName":"Gameplay.bEnableGreetings",
"DefaultValue":"false",
"EnumValues":{
"False":"false",
"True":"true"
}
},
{
"DisplayName":"Allow MO2",
"Category":"STR Settings",
"Description":"If enabled, clients will be allowed to use Mod Organizer 2",
"Keywords":"mod,policy,organizer,mo2,ballowmo2",
"FieldName":"bAllowMO2",
"InputType":"checkbox",
"ParamFieldName":"ModPolicy.bAllowMO2",
"DefaultValue":"true",
"EnumValues":{
"False":"false",
"True":"true"
}
},
{
"DisplayName":"Allow SKSE",
"Category":"STR Settings",
"Description":"If enabled, clients will be allowed to use SKSE",
"Keywords":"mod,policy,skse,ballowskse",
"FieldName":"bAllowSKSE",
"InputType":"checkbox",
"ParamFieldName":"ModPolicy.bAllowSKSE",
"DefaultValue":"true",
"EnumValues":{
"False":"false",
"True":"true"
}
},
{
"DisplayName":"Enable Mod Check",
"Category":"STR Settings",
"Description":"If set, enables the [mod policy feature](https://wiki.tiltedphoques.com/tilted-online/guides/server-guide/linux-setup/explaining-benablemodcheck), requiring all clients to have the same mods loaded in the same order. To use this, set the mod load order in SkyrimTogetherReborn/Data/loadorder.txt",
"Keywords":"mod,policy,benablemodcheck",
"FieldName":"bEnableModCheck",
"InputType":"checkbox",
"ParamFieldName":"ModPolicy.bEnableModCheck",
"DefaultValue":"false",
"EnumValues":{
"False":"false",
"True":"true"
}
},
{
"DisplayName":"Enable Premium Mode",
"Category":"STR Settings",
"Description":"If enabled, the server will run at a higher tickrate (60 instead of 30). Most networks should be able to run a server with this option enabled",
"Keywords":"premium,tick,rate,bpremiummode",
"FieldName":"bPremiumMode",
"InputType":"checkbox",
"ParamFieldName":"GameServer.bPremiumMode",
"DefaultValue":"true",
"EnumValues":{
"False":"false",
"True":"true"
}
},
{
"DisplayName":"Log Level",
"Category":"STR Settings",
"Description":"Sets the log level for the server console. Currently unused",
"Keywords":"log,level,sloglevel",
"FieldName":"sLogLevel",
"InputType":"enum",
"ParamFieldName":"general.sLogLevel",
"DefaultValue":"info",
"EnumValues":{
"info":"Display all logged information (default)",
"warn":"Display warnings and critical information only",
"error":"Display critical information only"
}
}
]

View File

@ -0,0 +1,7 @@
[
{
"ConfigFile":"SkyrimTogetherReborn/config/STServer.ini",
"AutoMap":true,
"ConfigType":"ini"
}
]

View File

@ -0,0 +1,34 @@
[
{
"UpdateStageName":"Server Download",
"UpdateSourcePlatform":"All",
"UpdateSource":"FetchURL",
"UpdateSourceData":"{{DownloadURL}}",
"UpdateSourceTarget":"{{$FullBaseDir}}",
"UpdateSourceArgs":"SkyrimTogetherReborn.zip",
"UnzipUpdateSource":true,
"OverwriteExistingFiles":true,
"DeleteAfterExtract":true
},
{
"UpdateStageName":"Create Data Directory",
"UpdateSourcePlatform":"All",
"UpdateSource":"CreateDirectory",
"UpdateSourceArgs":"{{$FullBaseDir}}SkyrimTogetherReborn/Data",
"OverwriteExistingFiles":false
},
{
"UpdateStageName":"Create loadorder.txt",
"UpdateSourcePlatform":"All",
"UpdateSource":"CreateFile",
"UpdateSourceArgs":"{{$FullBaseDir}}SkyrimTogetherReborn/Data/loadorder.txt",
"OverwriteExistingFiles":false
},
{
"UpdateStageName":"Initialise Wine",
"UpdateSourcePlatform":"Linux",
"UpdateSource":"Executable",
"UpdateSourceData":"/bin/bash",
"UpdateSourceArgs":"-c 'WINEPREFIX=\"{{$FullRootDir}}.wine\" WINEARCH=win64 WINEDEBUG=-all /usr/bin/wineboot --init --update'"
}
]