Just Cause 3 Multiplayer Game Support Draft (#185)

* Necesse Game Support

* Update necesse.kvp

Update necesse.kvp to point the config update path to the CubeCoders repo

* jc3mp Game Support

Just Cause 3 Multiplayer Mod

* jc3mp: fixes and enhhancements

added default package automatic installation
added server announce fixes
fixed some accidental typos and duplicate names

* updated per notes in PR 185

* Adjusted spelling.  Don't skip sleep, kids!

* updated config download path

Co-authored-by: DavidAtRoot <dgaither@rootintegration.com>
This commit is contained in:
Dragoon209 2022-09-29 00:40:59 -04:00 committed by GitHub
parent 96aa81e8c5
commit ddea198788
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 276 additions and 0 deletions

87
jc3mp.kvp Normal file
View File

@ -0,0 +1,87 @@
Meta.DisplayName=Just Cause 3 Multiplayer Mod
Meta.Description=Just Cause 3 Multiplayer Dedicated Server
Meta.OS=Windows, Linux
Meta.Arch=x86_64
Meta.Author=ThisIslandEarth
Meta.URL=https://just-cause.mp
Meta.DisplayImageSource=steam:619910
Meta.EndpointURIFormat=steam://connect/{ip}:{GenericModule.App.Ports.$queryPort}
Meta.ConfigManifest=jc3mpconfig.json
Meta.MetaConfigManifest=jc3mpmetaconfig.json
Meta.ConfigRoot=jc3mp.kvp
Meta.MinAMPVersion=2.4.0.2
Meta.SpecificDockerImage=
Meta.DockerRequired=False
Meta.ContainerPolicy=Supported
Meta.ContainerPolicyReason=
Meta.Prerequsites=[]
Meta.ConfigReleaseState=NotSpecified
Meta.NoCommercialUsage=False
App.DisplayName=Just Cause 3 Multiplayer Mod
App.RootDir=./jc3mp/
App.BaseDirectory=./jc3mp/619960/
App.ExecutableWin=619960\Server.exe
App.ExecutableLinux=619960/Server
App.WorkingDir=619960
App.LinuxCommandLineArgs=
App.WindowsCommandLineArgs=
App.CommandLineArgs=
App.UseLinuxIOREDIR=False
App.AppSettings={}
App.EnvironmentVariables={"LD_LIBRARY_PATH":"{{$FullBaseDir}}linux64:%LD_LIBRARY_PATH%","SteamAppId":"619960"}
App.CommandLineParameterFormat=-{0} "{1}"
App.CommandLineParameterDelimiter=
App.ExitMethod=String
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":"TCP","Port":4200,"Ref":"port","Name":"Game Port","Description":"Port for game traffic"}, {"Protocol":"Both","Port":4201,"Ref":"queryPort","Name":"Query Port","Description":"Server query port"}, {"Protocol":"Both","Port":4202,"Ref":"steamPort","Name":"Steam Port","Description":"Steam communication port"}, {"Protocol":"Both","Port":4203,"Ref":"httpPort","Name":"HTTP Port","Description":"Client mod download port"}]
App.AdminPortRef=
App.PrimaryApplicationPortRef=port
App.UniversalSleepApplicationUDPPortRef=port
App.UniversalSleepSteamQueryPortRef=queryPort
App.MaxUsers=20
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":"619960"},{"UpdateStageName":"Config Template Download","UpdateSourcePlatform":"All","UpdateSource":"FetchURL","UpdateSourceData":"https://github.com/CubeCoders/AMPTemplates/raw/main/jc3mpserverconfig.json","UpdateSourceTarget":"../","OverwriteExistingFiles":"true"},{"UpdateStageName":"Packages Directory Creation","UpdateSourcePlatform":"All","UpdateSource":"CreateDirectory","UpdateSourceArgs":"{{$FullBaseDir}}packages"},{"UpdateStageName":"Download Default Packages","UpdateSourcePlatform":"All","UpdateSource":"FetchURL","UpdateSourceData":"https://unlimitedjc.files.wordpress.com/2022/09/jc3mp-default-packages.zip","UpdateSourceArgs":"jc3mpdefaultpackages.zip","UpdateSourceTarget":"{{$FullBaseDir}}packages","UnzipUpdateSource":"true","OverwriteExistingFiles":"true","DeleteAfterExtract":"true"},{"UpdateStageName":"chat-master Extract","UpdateSourcePlatform":"Linux","UpdateSource":"Executable","UpdateSourceData":"/bin/bash","UpdateSourceArgs":"-c 'cd jc3mp/619960/packages && unzip -u chat-master.zip'"},{"UpdateStageName":"command-hints-master Extract","UpdateSourcePlatform":"Linux","UpdateSource":"Executable","UpdateSourceData":"/bin/bash","UpdateSourceArgs":"-c 'cd jc3mp/619960/packages && unzip -u command-hints-master.zip'"},{"UpdateStageName":"command-manager-master Extract","UpdateSourcePlatform":"Linux","UpdateSource":"Executable","UpdateSourceData":"/bin/bash","UpdateSourceArgs":"-c 'cd jc3mp/619960/packages && unzip -u command-manager-master.zip'"},{"UpdateStageName":"freeroam-master Extract","UpdateSourcePlatform":"Linux","UpdateSource":"Executable","UpdateSourceData":"/bin/bash","UpdateSourceArgs":"-c 'cd jc3mp/619960/packages && unzip -u freeroam-master.zip'"},{"UpdateStageName":"spawn-menu-master Extract","UpdateSourcePlatform":"Linux","UpdateSource":"Executable","UpdateSourceData":"/bin/bash","UpdateSourceArgs":"-c 'cd jc3mp/619960/packages && unzip -u spawn-menu-master.zip'"},{"UpdateStageName":"chat-master Extract Windows","UpdateSourcePlatform":"Windows","UpdateSource":"Executable","UpdateSourceData":"cmd.exe","UpdateSourceArgs":"/C cd jc3mp\\619960\\packages && tar -xf chat-master.zip"},{"UpdateStageName":"command-hints-master Extract Windows","UpdateSourcePlatform":"Windows","UpdateSource":"Executable","UpdateSourceData":"cmd.exe","UpdateSourceArgs":"/C cd jc3mp\\619960\\packages && tar -xf command-hints-master.zip"},{"UpdateStageName":"command-manager-master Extract Windows","UpdateSourcePlatform":"Windows","UpdateSource":"Executable","UpdateSourceData":"cmd.exe","UpdateSourceArgs":"/C cd jc3mp\\619960\\packages && tar -xf command-manager-master.zip"},{"UpdateStageName":"freeroam-master Extract Windows","UpdateSourcePlatform":"Windows","UpdateSource":"Executable","UpdateSourceData":"cmd.exe","UpdateSourceArgs":"/C cd jc3mp\\619960\\packages && tar -xf freeroam-master.zip"},{"UpdateStageName":"spawn-menu-master Extract Windows","UpdateSourcePlatform":"Windows","UpdateSource":"Executable","UpdateSourceData":"cmd.exe","UpdateSourceArgs":"/C cd jc3mp\\619960\\packages && tar -xf spawn-menu-master.zip"}]
App.Compatibility=None
App.SteamUpdateAnonymousLogin=True
App.SteamForceLoginPrompt=False
App.RapidStartup=False
App.MonitorChildProcess=False
App.MonitorChildProcessWaitMs=100
App.MonitorChildProcessName=
App.SupportsUniversalSleep=False
App.WakeupMode=Any
App.ApplicationReadyMode=RegexMatch
App.TemplateMatchRegex={{(\$?[\w]+)}}
Console.FilterMatchRegex=
Console.FilterMatchReplacement=
Console.ThrowawayMessageRegex=
Console.AppReadyRegex=^\[[\d\-]+ [\d:]+\]: Server successfully started up, awaiting connects\.\.\.$
Console.UserJoinRegex=^(?<username>.+?) has joined\.$
Console.UserLeaveRegex=^(?<username>.+?) has left\.$
Console.UserChatRegex=^(?<username>.+?): (?<message>.+)$
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

165
jc3mpconfig.json Normal file
View File

@ -0,0 +1,165 @@
[
{
"DisplayName": "Game Port",
"Category": "Server Settings",
"Description": "",
"FieldName": "$port",
"InputType": "number",
"IsFlagArgument": false,
"ParamFieldName": "gport",
"IncludeInCommandLine": false,
"Hidden": true,
"DefaultValue": "4200",
"EnumValues": {}
},
{
"DisplayName": "Host IP",
"Category": "Server Settings",
"Description": "",
"FieldName": "$ApplicationIPBinding",
"InputType": "text",
"IsFlagArgument": false,
"ParamFieldName": "hostip",
"IncludeInCommandLine": false,
"Hidden": true,
"DefaultValue": "0.0.0.0",
"EnumValues": {}
},
{
"DisplayName": "HTTP Port",
"Category": "Server Settings",
"Description": "HTTP Port",
"FieldName": "$httpPort",
"InputType": "number",
"IsFlagArgument": false,
"ParamFieldName": "hport",
"IncludeInCommandLine": false,
"Hidden": true,
"DefaultValue": "4203",
"EnumValues": {}
},
{
"DisplayName": "Query Port",
"Category": "Server Settings",
"Description": "Query Port",
"FieldName": "$queryPort",
"InputType": "number",
"IsFlagArgument": false,
"ParamFieldName": "qport",
"IncludeInCommandLine": false,
"Hidden": true,
"DefaultValue": "4201",
"EnumValues": {}
},
{
"DisplayName": "Steam Port",
"Category": "Server Settings",
"Description": "Steam Port",
"FieldName": "$steamPort",
"InputType": "number",
"IsFlagArgument": false,
"ParamFieldName": "sport",
"IncludeInCommandLine": false,
"Hidden": true,
"DefaultValue": "4202",
"EnumValues": {}
},
{
"DisplayName": "Players",
"Category": "Server Settings",
"Description": "Number of players allowed to join.",
"Keywords": "players",
"FieldName": "$MaxUsers",
"InputType": "number",
"IsFlagArgument": false,
"Required": true,
"ParamFieldName": "maxPlayers",
"IncludeInCommandLine": false,
"DefaultValue": "20",
"EnumValues": {},
"Suffix":"players"
},
{
"DisplayName": "Password",
"Category": "Server Settings",
"Description": "Password to join the server.",
"Keywords": "password",
"FieldName": "password",
"InputType": "password",
"IsFlagArgument": false,
"ParamFieldName": "password",
"IncludeInCommandLine": false,
"DefaultValue": "",
"EnumValues": {}
},
{
"DisplayName": "Description",
"Category": "Server Settings",
"Description": "Displayed in the server browser.",
"Keywords": "description",
"FieldName": "description",
"InputType": "text",
"IsFlagArgument": false,
"ParamFieldName": "description",
"IncludeInCommandLine": false,
"DefaultValue": "Powered By Amp",
"EnumValues": {}
},
{
"DisplayName": "Tick Rate",
"Category": "Server Settings",
"Description": "Maxium FPS for the server (default is 60).",
"Keywords": "tickrate",
"FieldName": "tickrate",
"InputType": "number",
"IsFlagArgument": false,
"ParamFieldName": "maxTickRate",
"IncludeInCommandLine": false,
"DefaultValue": "60",
"Suffix":"ticks per second",
"EnumValues": {}
},
{
"DisplayName": "Name",
"Category": "Server Settings",
"Description": "Displayed in the server browser.",
"Keywords": "name",
"FieldName": "name",
"InputType": "text",
"IsFlagArgument": false,
"ParamFieldName": "name",
"IncludeInCommandLine": false,
"DefaultValue": "JC3MP-AMP",
"EnumValues": {}
},
{
"DisplayName": "Server Announce",
"Category": "Server Settings",
"Description": "Add a check here if you want to announce your server on the master server browser list.",
"Keywords": "Server Announce",
"FieldName": "announce",
"InputType": "checkbox",
"IsFlagArgument": false,
"ParamFieldName": "announce",
"IncludeInCommandLine": false,
"DefaultValue": "false",
"EnumValues": {
"False": "false",
"True": "true"
}
},
{
"DisplayName": "Required DLCs",
"Category": "Server Settings",
"Description": "Comma separated list of owned DLC IDs required to join. [A list is available here](https://just-cause.mp/docs/general/information/Server%20Configuration) Leave this blank to not require any DLCs to join.",
"Keywords": "dlcs",
"FieldName": "requiredDLC",
"InputType": "text",
"IsFlagArgument": false,
"ParamFieldName": "requiredDLC",
"IncludeInCommandLine": false,
"DefaultValue": "",
"Placeholder": "400551,400490,442051,401850,348880,388294,442050,488293,388290,388291,388292,442052",
"EnumValues": {}
}
]

8
jc3mpmetaconfig.json Normal file
View File

@ -0,0 +1,8 @@
[
{
"ConfigFile": "config.json",
"AutoMap": true,
"ConfigType": "template",
"ConfigFileTemplate": "jc3mpserverconfig.json"
}
]

16
jc3mpserverconfig.json Normal file
View File

@ -0,0 +1,16 @@
{
"announce": {{announce}},
"description": "{{description}}",
"host": {{hostip}},
"httpPort": {{hport}},
"logLevel": 7,
"logo": "",
"maxPlayers": {{maxPlayers}},
"maxTickRate": {{maxTickRate}},
"name": "{{name}}",
"password": "{{password}}",
"port": {{gport}},
"queryPort": {{qport}},
"requiredDLC": [{{requiredDLC}}],
"steamPort": {{sport}}
}