Wreckfest: add template

This commit is contained in:
Greelan 2022-07-09 20:41:23 +10:00
parent 01d405e4d7
commit 8b5b9d862b
3 changed files with 671 additions and 0 deletions

80
wreckfest.kvp Normal file
View File

@ -0,0 +1,80 @@
Meta.DisplayName=Wreckfest
Meta.Description=Wreckfest Dedicated Server
Meta.OS=Windows, Linux
Meta.Arch=x86_64
Meta.Author=Greelan
Meta.URL=https://order.wreckfestgame.com/
Meta.DisplayImageSource=steam:228380
Meta.EndpointURIFormat=steam://connect/{ip}:{GenericModule.App.Ports.$QueryPort}
Meta.ConfigManifest=wreckfestconfig.json
Meta.MetaConfigManifest=wreckfestmetaconfig.json
Meta.ConfigRoot=wreckfest.kvp
Meta.MinAMPVersion=2.3.3.4
Meta.SpecificDockerImage=cubecoders/ampbase:wine
Meta.DockerRequired=False
Meta.ContainerPolicy=Recommended
Meta.Prerequsites=[]
App.DisplayName=Wreckfest
App.RootDir=./wreckfest/
App.BaseDirectory=./wreckfest/361580/
App.ExecutableWin=361580\Wreckfest_x64.exe
App.ExecutableLinux=/usr/bin/xvfb-run
App.WorkingDir=361580
App.LinuxCommandLineArgs=-a wine "./Wreckfest_x64.exe"
App.WindowsCommandLineArgs=
App.CommandLineArgs={{$PlatformArgs}} -s server_config=server_config.cfg --save-dir={{$FullBaseDir}}saved -server_set game_port={{$GamePort}} steam_port={{$SteamPort}} query_port={{$QueryPort}} {{$FormattedArgs}}
App.AppSettings={}
App.EnvironmentVariables={"LD_LIBRARY_PATH":"./linux64:%LD_LIBRARY_PATH%","SteamAppId":"228380"}
App.CommandLineParameterFormat={0}={1}
App.CommandLineParameterDelimiter=
App.ExitMethod=OS_CLOSE
App.ExitTimeout=30
App.ExitString=exit
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":33540,"Ref":"GamePort","Name":"Game Port","Description":"Port for main game traffic"},{"Protocol":"Both","Port":27015,"Ref":"SteamPort","Name":"Steam Port","Description":"Port for extended server info"},{"Protocol":"UDP","Port":27016,"Ref":"QueryPort","Name":"Query Port","Description":"Port for server query"}]
App.PrimaryApplicationPortRef=GamePort
App.UniversalSleepApplicationUDPPortRef=GamePort
App.UniversalSleepSteamQueryPortRef=QueryPort
App.MaxUsers=24
App.UseRandomAdminPassword=False
App.RemoteAdminPassword=
App.AdminMethod=STDIO
App.AdminLoginTransform=None
App.RCONConnectDelaySeconds=5
App.RCONConnectRetrySeconds=5
App.TelnetLoginFormat={0}
App.UpdateSources=[{"UpdateStageName":"SteamCMD Download","UpdateSourcePlatform":"All","UpdateSource":"SteamCMD","UpdateSourceData":"361580","ForceDownloadPlatform":"Windows"},{"UpdateStageName":"Create Save Directory","UpdateSourcePlatform":"All","UpdateSource":"CreateDirectory","UpdateSourceArgs":"./wreckfest/361580/saved","OverwriteExistingFiles":false},{"UpdateStageName":"Create SteamAppID File","UpdateSourcePlatform":"All","UpdateSource":"CreateFile","UpdateSourceData":"228380","UpdateSourceArgs":"./wreckfest/361580/steam_appid.txt","OverwriteExistingFiles":false},{"UpdateStageName":"Copy Server Config","UpdateSourcePlatform":"All","UpdateSource":"CopyFilePath","UpdateSourceData":"./wreckfest/361580/server_config.cfg","UpdateSourceArgs":"./wreckfest/361580/initial_server_config.cfg","OverwriteExistingFiles":false}]
App.Compatibility=None
App.SteamUpdateAnonymousLogin=True
App.SteamForceLoginPrompt=False
App.RapidStartup=False
App.MonitorChildProcess=True
App.MonitorChildProcessWaitMs=2000
App.MonitorChildProcessName=wine64
App.SupportsUniversalSleep=False
App.WakeupMode=Any
App.ApplicationReadyMode=Immediate
App.TemplateMatchRegex={{(\$?[\w]+)}}
Console.FilterMatchRegex=
Console.FilterMatchReplacement=
Console.ThrowawayMessageRegex=^((WARNING|ERROR): Shader.+|\d+:err:ole:.*|Could not find Wine Gecko.*)$
Console.AppReadyRegex=^[\d:]+ Server connected to Steam\.$
Console.UserJoinRegex=^[\d:]+ Player (?<username>.+?) \((?<userid>.+?)\) connected\.$
Console.UserLeaveRegex=^[\d:]+ Player (?<username>.+?) \((?<userid>.+?)\) disconnected\.$
Console.UserChatRegex=^[\d:]+ (?<username>.+?): (?<message>.+)$
Console.UpdateAvailableRegex=
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

583
wreckfestconfig.json Normal file
View File

@ -0,0 +1,583 @@
[
{
"DisplayName":"Game Port",
"Category":"Server Settings",
"Description":"",
"Keywords":"",
"FieldName":"$GamePort",
"InputType":"number",
"IsFlagArgument":false,
"Hidden":true,
"ParamFieldName":"game_port",
"IncludeInCommandLine":false,
"EnumValues":{}
},
{
"DisplayName":"Steam Port",
"Category":"Server Settings",
"Description":"",
"Keywords":"",
"FieldName":"$SteamPort",
"InputType":"number",
"IsFlagArgument":false,
"Hidden":true,
"ParamFieldName":"steam_port",
"IncludeInCommandLine":false,
"EnumValues":{}
},
{
"DisplayName":"Query Port",
"Category":"Server Settings",
"Description":"",
"Keywords":"",
"FieldName":"$QueryPort",
"InputType":"number",
"IsFlagArgument":false,
"Hidden":true,
"ParamFieldName":"query_port",
"IncludeInCommandLine":false,
"EnumValues":{}
},
{
"DisplayName":"Server Name",
"Category":"Server Settings",
"Description":"",
"Keywords":"server,name",
"FieldName":"server_name",
"InputType":"text",
"IsFlagArgument":false,
"ParamFieldName":"server_name",
"IncludeInCommandLine":false,
"DefaultValue":"Wreckfest Server - Powered by AMP",
"EnumValues":{}
},
{
"DisplayName":"Server Password",
"Category":"Server Settings",
"Description":"Password required to connect to the server. You should change this after first installing the server",
"Keywords":"server,password",
"FieldName":"password",
"InputType":"password",
"IsFlagArgument":false,
"ParamFieldName":"password",
"IncludeInCommandLine":false,
"DefaultValue":"wreckfest",
"EnumValues":{}
},
{
"DisplayName":"Welcome Message",
"Category":"Server Settings",
"Description":"Player welcome message",
"Keywords":"welcome,message",
"FieldName":"welcome_message",
"InputType":"text",
"IsFlagArgument":false,
"ParamFieldName":"welcome_message",
"IncludeInCommandLine":false,
"DefaultValue":"Welcome to Wreckfest. Hosted using AMP by CubeCoders",
"EnumValues":{}
},
{
"DisplayName":"Player Limit",
"Category":"Server Settings",
"Description":"Maximum number of players that may connect to the server at one time",
"Keywords":"players,limit",
"FieldName":"$MaxUsers",
"InputType":"number",
"IsFlagArgument":false,
"ParamFieldName":"max_players",
"IncludeInCommandLine":false,
"DefaultValue":"24",
"Suffix":"players",
"EnumValues":{}
},
{
"DisplayName":"Exclude Quick Match Users",
"Category":"Server Settings",
"Description":"When enabled, users entering Quick Match cannot join the server",
"Keywords":"quick,match,exclude",
"FieldName":"exclude_from_quickplay",
"InputType":"checkbox",
"IsFlagArgument":false,
"ParamFieldName":"exclude_from_quickplay",
"IncludeInCommandLine":false,
"DefaultValue":"0",
"EnumValues":{
"False":"0",
"True":"1"
}
},
{
"DisplayName":"Clear User Privileges On Launch",
"Category":"Server Settings",
"Description":"When enabled, clears previous user privileges when launching the server",
"Keywords":"user,privileges",
"FieldName":"clear_users",
"InputType":"checkbox",
"IsFlagArgument":false,
"ParamFieldName":"clear_users",
"IncludeInCommandLine":false,
"DefaultValue":"0",
"EnumValues":{
"False":"0",
"True":"1"
}
},
{
"DisplayName":"No Owner Privileges For First User",
"Category":"Server Settings",
"Description":"When enabled, owner privileges are not given to the first user who joins",
"Keywords":"first,owner,privileges",
"FieldName":"owner_disabled",
"InputType":"checkbox",
"IsFlagArgument":false,
"ParamFieldName":"owner_disabled",
"IncludeInCommandLine":false,
"DefaultValue":"0",
"EnumValues":{
"False":"0",
"True":"1"
}
},
{
"DisplayName":"Admin Controls Countdown",
"Category":"Server Settings",
"Description":"When enabled, admin starts the countdown by setting themselves ready. Otherwise the countdown is automatic",
"Keywords":"admin,control,countdown",
"FieldName":"admin_control",
"InputType":"checkbox",
"IsFlagArgument":false,
"ParamFieldName":"admin_control",
"IncludeInCommandLine":false,
"DefaultValue":"0",
"EnumValues":{
"False":"0",
"True":"1"
}
},
{
"DisplayName":"Countdown Duration",
"Category":"Server Settings",
"Description":"Duration of the countdown",
"Keywords":"countdown,duration",
"FieldName":"lobby_countdown",
"InputType":"number",
"IsFlagArgument":false,
"ParamFieldName":"lobby_countdown",
"IncludeInCommandLine":false,
"DefaultValue":"30",
"Placeholder":"30 - 127",
"Suffix":"seconds",
"EnumValues":{}
},
{
"DisplayName":"Required Players for Automatic Countdown",
"Category":"Server Settings",
"Description":"Percentage of players required to be ready to initiate automatic countdown, if enabled",
"Keywords":"players,countdown",
"FieldName":"ready_players_required",
"InputType":"number",
"IsFlagArgument":false,
"ParamFieldName":"ready_players_required",
"IncludeInCommandLine":false,
"DefaultValue":"50",
"EnumValues":{}
},
{
"DisplayName":"Admins",
"Category":"Server Settings",
"Description":"Comma separated list of [Steam64 IDs](https://steamidfinder.com/) of players automatically granted admin privileges",
"Keywords":"admin,privileges,automatic",
"FieldName":"admin_steam_ids",
"InputType":"text",
"IsFlagArgument":false,
"ParamFieldName":"admin_steam_ids",
"IncludeInCommandLine":false,
"DefaultValue":"",
"Placeholder":"76561198035765683,68475837697026445",
"EnumValues":{}
},
{
"DisplayName":"Moderators",
"Category":"Server Settings",
"Description":"Comma separated list of [Steam64 IDs](https://steamidfinder.com/) of players automatically granted moderator privileges",
"Keywords":"moderator,privileges,automatic",
"FieldName":"op_steam_ids",
"InputType":"text",
"IsFlagArgument":false,
"ParamFieldName":"op_steam_ids",
"IncludeInCommandLine":false,
"DefaultValue":"",
"Placeholder":"76561198035765683,68475837697026445",
"EnumValues":{}
},
{
"DisplayName":"Session Mode",
"Category":"Server Settings",
"Description":"Sets the session mode for server side point counting across multiple events",
"Keywords":"session,mode",
"FieldName":"session_mode",
"InputType":"enum",
"IsFlagArgument":false,
"ParamFieldName":"session_mode",
"IncludeInCommandLine":false,
"DefaultValue":"normal",
"EnumValues":{
"normal":"Normal (single event, no cup mode)",
"qualify-sprint":"Qualifying sprint (finishing positions determine - needs \"Qualifying session\" grid order)",
"qualify-lap":"Qualifying lap (lap times determine - needs \"Qualifying session\" grid order)",
"30p-aggr":"Winner 30 (then 27, 25, 23, 20, followed by 1 point less per position)",
"25p-aggr":"Winner 25 (then 18, 15, 12, 10, 8, 6, 4, 2, 1, followed by no points)",
"25p-mod":"Winner 25 (then 20, 16, 11, followed by 1 point less per position up to position 15)",
"24p-lin":"Winner 24 (then 1 point less per position)",
"16p-lin":"Winner 16 (then 1 point less per position for next 15 positions)",
"10p-double":"Winner 20 (then 2 points less per position for next 10 positions)",
"10p-lin":"Winner 10 (then 1 point less per position for next 9 positions)",
"35p-folk":"Winner 35 (then 30, 25, 20, 18, 16, followed by one 1 point less per position up to position 21)",
"f1-1991":"Winner 10 (then 6, 4, 3, 2, 1, followed by no points)",
"f1-2003":"Winner 10 (then 8, 6, 5, 4, 3, 2, 1, followed by no points)",
"f1-2010":"Winner 25 (then 18, 15, 12, 10, 8, 6, 4, 2, 1, followed by no points)",
"player_count_1":"Winner [player count] (then 1 less point per position)"
}
},
{
"DisplayName":"Grid Order",
"Category":"Server Settings",
"Description":"Sets the method for sorting the grid order",
"Keywords":"grid,order",
"FieldName":"grid_order",
"InputType":"enum",
"IsFlagArgument":false,
"ParamFieldName":"grid_order",
"IncludeInCommandLine":false,
"DefaultValue":"perf_normal",
"EnumValues":{
"random":"Random",
"perf_normal":"Performance points (fastest at front)",
"perf_reverse":"Performance points (fastest at back)",
"qualifying":"Qualifying session",
"cup_normal":"Cup points (highest at front)",
"cup_reverse":"Cup points (highest at back)"
}
},
{
"DisplayName":"Enable Player Voting",
"Category":"Server Settings",
"Description":"When enabled, players will vote for the next event after previous event has ended (requires event rotation. Can be triggered by command \"startvote\" when players in unlocked lobby",
"Keywords":"event,voting",
"FieldName":"enable_track_vote",
"InputType":"checkbox",
"IsFlagArgument":false,
"ParamFieldName":"enable_track_vote",
"IncludeInCommandLine":false,
"DefaultValue":"1",
"EnumValues":{
"False":"0",
"True":"1"
}
},
{
"DisplayName":"Don't Kick Idling Players",
"Category":"Server Settings",
"Description":"When enabled, idling players will not be kicked while event is in progress",
"Keywords":"kick,idle,idling",
"FieldName":"disable_idle_kick",
"InputType":"checkbox",
"IsFlagArgument":false,
"ParamFieldName":"disable_idle_kick",
"IncludeInCommandLine":false,
"DefaultValue":"0",
"EnumValues":{
"False":"0",
"True":"1"
}
},
{
"DisplayName":"Track",
"Category":"Server Settings",
"Description":"Set track. List available track names with command \"tracks\"",
"Keywords":"track",
"FieldName":"track",
"InputType":"text",
"IsFlagArgument":false,
"ParamFieldName":"track",
"IncludeInCommandLine":false,
"DefaultValue":"speedway2_demolition_arena",
"Placeholder":"speedway2_demolition_arena",
"EnumValues":{}
},
{
"DisplayName":"Game Mode",
"Category":"Server Settings",
"Description":"",
"Keywords":"game,mode",
"FieldName":"gamemode",
"InputType":"enum",
"IsFlagArgument":false,
"ParamFieldName":"gamemode",
"IncludeInCommandLine":false,
"DefaultValue":"derby deathmatch",
"EnumValues":{
"racing":"Racing",
"derby":"Derby",
"derby deathmatch":"Derby Deathmatch",
"team derby":"Team Derby",
"team race":"Team Race",
"elimination race":"Elimination Race"
}
},
{
"DisplayName":"Bot Quantity",
"Category":"Server Settings",
"Description":"Pre-populate server with the set number of AI bots",
"Keywords":"bots",
"FieldName":"bots",
"InputType":"number",
"IsFlagArgument":false,
"ParamFieldName":"bots",
"IncludeInCommandLine":false,
"DefaultValue":"0",
"Placeholder":"0 - 24",
"Suffix":"bots",
"EnumValues":{}
},
{
"DisplayName":"AI Difficulty",
"Category":"Server Settings",
"Description":"Sets difficulty setting of AI bots",
"Keywords":"AI,difficulty",
"FieldName":"ai_difficulty",
"InputType":"enum",
"IsFlagArgument":false,
"ParamFieldName":"ai_difficulty",
"IncludeInCommandLine":false,
"DefaultValue":"amateur",
"EnumValues":{
"novice":"Novice",
"amateur":"Amateur",
"expert":"Expert"
}
},
{
"DisplayName":"Team Number",
"Category":"Server Settings",
"Description":"Number of teams in team racing and team deathmatch game modes",
"Keywords":"team,number",
"FieldName":"num_teams",
"InputType":"enum",
"IsFlagArgument":false,
"ParamFieldName":"num_teams",
"IncludeInCommandLine":false,
"DefaultValue":"2",
"EnumValues":{
"2":"2",
"3":"3",
"4":"4"
}
},
{
"DisplayName":"Lap Number",
"Category":"Server Settings",
"Description":"Number of laps in race game modes",
"Keywords":"laps",
"FieldName":"laps",
"InputType":"number",
"IsFlagArgument":false,
"ParamFieldName":"laps",
"IncludeInCommandLine":false,
"DefaultValue":"3",
"Placeholder":"1 - 60",
"Suffix":"laps",
"EnumValues":{}
},
{
"DisplayName":"Deathmatch Time Limit",
"Category":"Server Settings",
"Description":"",
"Keywords":"deathmatch,time,limit",
"FieldName":"time_limit",
"InputType":"number",
"IsFlagArgument":false,
"ParamFieldName":"time_limit",
"IncludeInCommandLine":false,
"DefaultValue":"5",
"Suffix":"minutes",
"EnumValues":{}
},
{
"DisplayName":"Elimination Interval Time",
"Category":"Server Settings",
"Description":"Elimination interval time for elimination race",
"Keywords":"elimination,interval,time",
"FieldName":"elimination_interval",
"InputType":"enum",
"IsFlagArgument":false,
"ParamFieldName":"elimination_interval",
"IncludeInCommandLine":false,
"DefaultValue":"0",
"EnumValues":{
"0":"Each Lap",
"20":"20",
"30":"30",
"45":"45",
"60":"60",
"90":"90",
"120":"120"
}
},
{
"DisplayName":"Vehicle Damage Level",
"Category":"Server Settings",
"Description":"",
"Keywords":"vehicle,damage",
"FieldName":"vehicle_damage",
"InputType":"enum",
"IsFlagArgument":false,
"ParamFieldName":"vehicle_damage",
"IncludeInCommandLine":false,
"DefaultValue":"normal",
"EnumValues":{
"normal":"Normal",
"intense":"Intense",
"realistic":"Realistic",
"extreme":"Extreme"
}
},
{
"DisplayName":"Maximum Vehicle Class",
"Category":"Server Settings",
"Description":"Allow only vehicles up to the class set",
"Keywords":"vehicle,class",
"FieldName":"car_class_restriction",
"InputType":"enum",
"IsFlagArgument":false,
"ParamFieldName":"car_class_restriction",
"IncludeInCommandLine":false,
"DefaultValue":"",
"EnumValues":{
"":"No Restriction",
"a":"Class A",
"b":"Class B",
"c":"Class C"
}
},
{
"DisplayName":"Specific Car Allowed",
"Category":"Server Settings",
"Description":"If set, allow only the specific car listed. Leave blank for no restriction. List available cars with command \"cars\"",
"Keywords":"car,allowed",
"FieldName":"car_restriction",
"InputType":"text",
"IsFlagArgument":false,
"ParamFieldName":"car_restriction",
"IncludeInCommandLine":false,
"DefaultValue":"",
"EnumValues":{}
},
{
"DisplayName":"Disallow Special Vehicles",
"Category":"Server Settings",
"Description":"",
"Keywords":"disallow,special,vehicles",
"FieldName":"special_vehicles_disabled",
"InputType":"checkbox",
"IsFlagArgument":false,
"ParamFieldName":"special_vehicles_disabled",
"IncludeInCommandLine":false,
"DefaultValue":"0",
"EnumValues":{
"False":"0",
"True":"1"
}
},
{
"DisplayName":"Disallow Car Reset",
"Category":"Server Settings",
"Description":"",
"Keywords":"disallow,car,reset",
"FieldName":"car_reset_disabled",
"InputType":"checkbox",
"IsFlagArgument":false,
"ParamFieldName":"car_reset_disabled",
"IncludeInCommandLine":false,
"DefaultValue":"0",
"EnumValues":{
"False":"0",
"True":"1"
}
},
{
"DisplayName":"Car Reset Delay",
"Category":"Server Settings",
"Description":"Set the car reset delay (0 - 20)",
"Keywords":"car,reset,delay",
"FieldName":"car_reset_delay",
"InputType":"number",
"IsFlagArgument":false,
"ParamFieldName":"car_reset_delay",
"IncludeInCommandLine":false,
"DefaultValue":"0",
"Placeholder":"0 - 20",
"Suffix":"seconds",
"EnumValues":{}
},
{
"DisplayName":"Disable Speed Limiter",
"Category":"Server Settings",
"Description":"If set, disable speed limiter for players that drive the wrong way",
"Keywords":"disallow,speed,limiter",
"FieldName":"wrong_way_limiter_disabled",
"InputType":"checkbox",
"IsFlagArgument":false,
"ParamFieldName":"wrong_way_limiter_disabled",
"IncludeInCommandLine":false,
"DefaultValue":"0",
"EnumValues":{
"False":"0",
"True":"1"
}
},
{
"DisplayName":"Weather",
"Category":"Server Settings",
"Description":"Set event weather. Leave blank for random weather. List available weather names with command \"weathers\"",
"Keywords":"weather",
"FieldName":"weather",
"InputType":"text",
"IsFlagArgument":false,
"ParamFieldName":"weather",
"IncludeInCommandLine":false,
"DefaultValue":"",
"EnumValues":{}
},
{
"DisplayName":"Server Update Frequency",
"Category":"Server Settings",
"Description":"",
"Keywords":"update,frequency",
"FieldName":"frequency",
"InputType":"enum",
"IsFlagArgument":false,
"ParamFieldName":"frequency",
"IncludeInCommandLine":false,
"DefaultValue":"high",
"EnumValues":{
"low":"Low",
"high":"High"
}
},
{
"DisplayName":"Enabled Mods",
"Category":"Server Settings",
"Description":"Comma separated list of folder names of enabled mods on the server. Mod folders need to be copied to server mods folder",
"Keywords":"mods",
"FieldName":"mods",
"InputType":"text",
"IsFlagArgument":false,
"ParamFieldName":"mods",
"IncludeInCommandLine":false,
"DefaultValue":"",
"Placeholder":"example,my_mod",
"EnumValues":{}
}
]

8
wreckfestmetaconfig.json Normal file
View File

@ -0,0 +1,8 @@
[
{
"ConfigFile":"server_config.cfg",
"AutoMap":true,
"ConfigType":"kvp",
"ConfigFormatRegex":"^#?(?<key>[^\\s]+?)=(?<value>.*?)$"
}
]