Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
127 changes: 127 additions & 0 deletions riftbreaker.kvp
Original file line number Diff line number Diff line change
@@ -0,0 +1,127 @@
Meta.DisplayName=The Riftbreaker
Meta.Description=The Riftbreaker Dedicated Server
Meta.OS=Windows, Linux
Meta.AarchSupport=Unknown
Meta.Arch=x86_64
Meta.Author=CostcoFanboy
Meta.URL=https://store.steampowered.com/app/780310/The_Riftbreaker/
Meta.DisplayImageSource=steam:780310
Meta.EndpointURIFormat=
Meta.ConfigManifest=riftbreakerconfig.json
Meta.MetaConfigManifest=riftbreakermetaconfig.json
Meta.ConfigRoot=riftbreaker.kvp
Meta.MinAMPVersion=2.6.0.0
Meta.SpecificDockerImage=cubecoders/ampbase:wine-stable
Meta.DockerRequired=False
Meta.DockerBaseReadOnly=False
Meta.ContainerPolicy=SupportedOnWindows, RecommendedOnLinux
Meta.ContainerPolicyReason=The dedicated server is a Windows-only application that requires Wine (ideally the latest stable from winehq.org), the Visual C++ 2022 runtime and D3D compiler (installed via winetricks), and Xvfb to run on Linux. Using a container avoids the need for you to install these dependencies on the host.
Meta.ExtraSetupStepsURI=
Meta.Prerequisites=[]
Meta.ExtraContainerPackages=[]
Meta.ConfigReleaseState=NotSpecified
Meta.NoCommercialUsage=False
Meta.ConfigVersion=1
Meta.ReleaseNotes=
Meta.BreakingReleaseNotes=
Meta.AppConfigId=5393dee1-c3f9-424f-ae78-ca6f7a7e2ea2
Meta.ImportableExtensions=[]
Meta.AppIsMultiIPAware=False
App.DisplayName=The Riftbreaker
App.RootDir=./riftbreaker/
App.BaseDirectory=./riftbreaker/4114030/
App.SteamWorkshopDownloadLocation=
App.ExecutableWin=4114030\bin\DedicatedServer.exe
App.ExecutableLinux=/usr/bin/xvfb-run
App.WorkingDir=4114030/bin
App.LinuxCommandLineArgs=-a wine "./DedicatedServer.exe"
App.WindowsCommandLineArgs=
App.CommandLineArgs={{$PlatformArgs}} cli=1 config=config.cfg
App.UseLinuxIOREDIR=False
App.AppSettings={}
App.EnvironmentVariables={"WINEPREFIX":"{{$FullRootDir}}.wine","WINEARCH":"win64","WINEDEBUG":"-all","WINEDLLOVERRIDES":"mscoree,mshtml=","SteamAppId":"780310"}
App.CommandLineParameterFormat=-{0}={1}
App.CommandLineParameterDelimiter=
App.ExitMethod=OS_CLOSE
App.ExitMethodWindows=None
App.ExitTimeout=30
App.ExitString=exit
App.ExitFile=app_exit.lck
App.RestartDelaySeconds=0
App.HasWriteableConsole=False
App.HasReadableConsole=True
App.UDPLogger=False
App.SupportsLiveSettingsChanges=False
App.LiveSettingChangeCommandFormat=
App.ForceIPBinding=False
App.SupportsIPv6=False
App.ApplicationIPBinding=0.0.0.0
App.Ports=@IncludeJson[riftbreakerports.json]
App.AdminPortRef=0
App.PrimaryApplicationPortRef=GamePort
App.UniversalSleepApplicationUDPPortRef=0
App.UniversalSleepSteamQueryPortRef=0
App.MaxUsers=4
App.UseRandomAdminPassword=False
App.PersistRandomPassword=False
App.RemoteAdminPassword=
App.AdminMethod=STDIO
App.IgnoreSTDOUTAfterRCON=False
App.AdminLoginTransform=None
App.StripANSIControlCodes=True
App.LoginTransformPrefix=
App.RCONConnectDelaySeconds=5
App.RCONConnectRetrySeconds=5
App.RCONHeartbeatMinutes=0
App.RCONHeartbeatCommand=ping
App.RCONSelectIPMethod=Default
App.TelnetLoginFormat={0}
App.TelnetNewLineType=Default
App.TailLogFilePath={{$FullBaseDir}}userdata/exor_logs.txt
App.UpdateSources=@IncludeJson[riftbreakerupdates.json]
App.PreStartStages=[]
App.CommandTriggers={}
App.UserActions=[]
App.ForceUpdate=False
App.ForceUpdateReason=
App.Compatibility=None
App.SteamUpdateAnonymousLogin=True
App.SteamForceLoginPrompt=False
App.RapidStartup=False
App.SmartExcludeExemptions=[".cfg",".conf",".config",".ini",".json",".xml",".properties",".kvp",".yml",".yaml",".toml",".lua"]
App.SmartExcludeSupported=True
App.DumpFullChildProcessTree=False
App.MonitorChildProcessName=^{{$WineBaseDir}}bin\\DedicatedServer\.exe.*$
App.MonitorDirectChildOnly=False
App.SupportsUniversalSleep=False
App.UseSteamQueryForStatus=False
App.WakeupMode=Any
App.ApplicationReadyMode=RegexMatch
App.QuiesceCommand=
App.DequiesceCommand=
App.QuiesceSettleDelayMilliseconds=5000
Console.FilterMatchRegex=
Console.FilterMatchReplacement=
Console.ThrowawayMessageRegex=^\[[\d:.]+\] \[info\] ConfigVarRegistry\.cpp:\d+ - Warning: accessing undefined ConfigVariable:.*$
Console.AppReadyRegex=^\[[\d:.]+\] \[info\] ControllerState\.cpp:\d+ - \[ControllerState\] activating: ServerGameplayState$
Console.UserJoinRegex=
Console.UserLeaveRegex=
Console.UserChatRegex=
Console.UpdateAvailableRegex=
Console.PreConnectRegex=
Console.ConnectIPRegex=
Console.MetricsRegex=
Console.ServerInfoRegex=
Console.ServerAuthURLPromptRegex=
Console.ServerAuthAckRegex=
Console.ConsoleFormatRegex=
Console.DownloadProgressRegex=
Console.HideFromConsoleRegex=
Console.SuppressLogAtStart=False
Console.UserActions={}
Limits.SleepMode=False
Limits.SleepOnStart=False
Limits.SleepDelayMinutes=5
Limits.DozeDelay=2
Limits.AutoRetryCount=2
Limits.SleepStartThresholdSeconds=25
182 changes: 182 additions & 0 deletions riftbreakerconfig.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,182 @@
[
{
"DisplayName": "Server Name",
"Category": "The Riftbreaker:stadia_controller",
"Subcategory": "Server Settings:dns:1",
"Description": "Sets the server name shown to players in the server browser",
"Keywords": "server,name,servername,hostname",
"FieldName": "ServerName",
"InputType": "text",
"ParamFieldName": "ServerName",
"DefaultValue": "AMP Powered Riftbreaker Server",
"EnumValues": {}
},
{
"DisplayName": "Server Password",
"Category": "The Riftbreaker:stadia_controller",
"Subcategory": "Server Settings:dns:1",
"Description": "Sets the password required to join the server. Leave blank for no password",
"Keywords": "server,password,serverpassword",
"FieldName": "ServerPassword",
"InputType": "password",
"ParamFieldName": "ServerPassword",
"DefaultValue": "",
"EnumValues": {}
},
{
"DisplayName": "RCON Password",
"Category": "The Riftbreaker:stadia_controller",
"Subcategory": "Server Settings:dns:1",
"Description": "Sets the password for the game's in-game RCON. A client that sets the same value can run remote commands with 'rcon <command>'. Leave blank to disable. This RCON is handled by the game itself and is not driven by the AMP console",
"Keywords": "rcon,remote,console,command,password",
"FieldName": "RconPassword",
"InputType": "password",
"ParamFieldName": "RconPassword",
"DefaultValue": "",
"EnumValues": {}
},
{
"DisplayName": "Player Limit",
"Category": "The Riftbreaker:stadia_controller",
"Subcategory": "Server Settings:dns:1",
"Description": "Sets the maximum number of players. The officially supported maximum is 4; higher values can significantly affect performance",
"Keywords": "max,players,limit,count,slots,server_max_players_count",
"FieldName": "$MaxUsers",
"InputType": "number",
"MinValue": "1",
"MaxValue": "16",
"ParamFieldName": "MaxPlayers",
"DefaultValue": "4",
"Suffix": "players",
"EnumValues": {}
},
{
"DisplayName": "Networking Mode",
"Category": "The Riftbreaker:stadia_controller",
"Subcategory": "Server Settings:dns:1",
"Description": "Selects how players connect. Steam Server Browser uses Steam relay networking with no port forwarding, and players join from the in-game browser. LAN / Direct Connect disables Steam networking, and players join with connect \"<ip>\" on the Game Port",
"Keywords": "steam,lan,direct,connect,networking,mode,disable_steam,p2p,relay",
"FieldName": "DisableSteam",
"InputType": "enum",
"ParamFieldName": "DisableSteam",
"DefaultValue": "0",
"EnumValues": {
"0": "Steam Server Browser (no port forwarding)",
"1": "LAN / Direct Connect (Game Port 6321)"
}
},
{
"DisplayName": "List In Server Browser",
"Category": "The Riftbreaker:stadia_controller",
"Subcategory": "Server Settings:dns:1",
"Description": "If enabled, the server is listed publicly in the in-game server browser",
"Keywords": "broadcast,public,private,listed,visible,server_broadcast_enabled",
"FieldName": "Broadcast",
"InputType": "checkbox",
"ParamFieldName": "Broadcast",
"DefaultValue": "1",
"EnumValues": {
"False": "0",
"True": "1"
}
},
{
"DisplayName": "Pause When Empty",
"Category": "The Riftbreaker:stadia_controller",
"Subcategory": "Server Settings:dns:1",
"Description": "If enabled, the server pauses the game while no players are connected and resumes when someone joins",
"Keywords": "pause,empty,idle,afk,server_pause_game_when_empty",
"FieldName": "PauseWhenEmpty",
"InputType": "checkbox",
"ParamFieldName": "PauseWhenEmpty",
"DefaultValue": "1",
"EnumValues": {
"False": "0",
"True": "1"
}
},
{
"DisplayName": "Game Mode / Campaign",
"Category": "The Riftbreaker:stadia_controller",
"Subcategory": "Game Settings:videogame_asset:2",
"Description": "Sets the campaign type. Open Campaign and Survival also require a Starting Mission. Set the Difficulty to match the chosen mode",
"Keywords": "campaign,mode,story,open,survival,game",
"FieldName": "Campaign",
"InputType": "enum",
"ParamFieldName": "Campaign",
"DefaultValue": "mp_story/mp_story",
"EnumValues": {
"mp_story/mp_story": "Story Campaign",
"open/open": "Open Campaign",
"mp_survival/mp_survival": "Survival"
}
},
{
"DisplayName": "Starting Mission / Biome",
"Category": "The Riftbreaker:stadia_controller",
"Subcategory": "Game Settings:videogame_asset:2",
"Description": "Sets the starting mission. Required for Open Campaign and Survival, and left as None for the Story Campaign. The prefix must match the chosen campaign type",
"Keywords": "mission,biome,map,starting,start",
"FieldName": "Mission",
"InputType": "enum",
"ParamFieldName": "Mission",
"DefaultValue": "",
"EnumValues": {
"": "None (Story Campaign)",
"campaigns/open/headquarters_jungle": "Open Campaign: Jungle",
"campaigns/open/headquarters_desert": "Open Campaign: Desert",
"campaigns/open/headquarters_acid": "Open Campaign: Acid",
"campaigns/open/headquarters_ice": "Open Campaign: Ice",
"campaigns/open/headquarters_swamp": "Open Campaign: Swamp",
"campaigns/open/headquarters_caverns": "Open Campaign: Caverns",
"campaigns/open/headquarters_metallic": "Open Campaign: Metallic",
"survival/jungle": "Survival: Jungle",
"survival/acid": "Survival: Acid",
"survival/desert": "Survival: Desert",
"survival/magma": "Survival: Magma",
"survival/ice": "Survival: Ice",
"survival/metallic": "Survival: Metallic",
"survival/caverns": "Survival: Caverns",
"survival/swamp": "Survival: Swamp",
"survival/swamp_lakes": "Survival: Swamp Lakes"
}
},
{
"DisplayName": "Difficulty",
"Category": "The Riftbreaker:stadia_controller",
"Subcategory": "Game Settings:videogame_asset:2",
"Description": "Sets the difficulty. Choose the entry that matches the campaign type; a value from a different mode may be ignored by the game",
"Keywords": "difficulty,hard,easy,normal,brutal,coop",
"FieldName": "Difficulty",
"InputType": "enum",
"ParamFieldName": "Difficulty",
"DefaultValue": "coop_campaign_brutal",
"EnumValues": {
"coop_campaign_easy": "Story: Easy",
"coop_campaign_normal": "Story: Normal",
"coop_campaign_hard": "Story: Hard",
"coop_campaign_brutal": "Story: Brutal (default)",
"easy": "Open Campaign: Easy",
"normal": "Open Campaign: Normal",
"hard": "Open Campaign: Hard",
"brutal": "Open Campaign: Brutal",
"coop_easy": "Survival: Easy",
"coop_normal": "Survival: Normal",
"coop_hard": "Survival: Hard",
"coop_brutal": "Survival: Brutal"
}
},
{
"DisplayName": "Additional Server Settings",
"Category": "The Riftbreaker:stadia_controller",
"Subcategory": "Advanced:build:3",
"Description": "Additional config.cfg lines added as-is, one per line, such as set autosave_timer \"10\". To load an existing save, add set mission_save \"SAVE_NAME\". See the EXOR Studios dedicated server guide for the full parameter list",
"Keywords": "additional,custom,advanced,extra,settings,cvars,mission_save",
"FieldName": "UserSettings",
"InputType": "Textarea",
"IsFlagArgument": false,
"ParamFieldName": "UserSettings",
"DefaultValue": "",
"EnumValues": {}
}
]
8 changes: 8 additions & 0 deletions riftbreakermetaconfig.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
[
{
"ConfigFile": "config.cfg",
"AutoMap": true,
"ConfigType": "template",
"ConfigFileTemplate": "riftbreaker/AMP_config.cfg"
}
]
9 changes: 9 additions & 0 deletions riftbreakerports.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
[
{
"Protocol": "Both",
"Port": 6321,
"Ref": "GamePort",
"Name": "Game Port",
"Description": "Port used for direct/LAN game connections. Not required in Steam Server Browser mode, which uses Steam relay networking"
}
]
18 changes: 18 additions & 0 deletions riftbreakertemplatesettings.cfg
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
// This file is controlled by AMP
// Configure any additional settings via the AMP UI

set app_mode "server"

set server_name "{{ServerName}}"
set server_password "{{ServerPassword}}"
set server_rcon_password "{{RconPassword}}"
set server_max_players_count "{{MaxPlayers}}"
set server_broadcast_enabled "{{Broadcast}}"
set server_pause_game_when_empty "{{PauseWhenEmpty}}"
set disable_steam "{{DisableSteam}}"

set campaign "{{Campaign}}"
set mission "{{Mission}}"
set difficulty "{{Difficulty}}"

{{UserSettings}}
Loading