Add Arma 3 (generic) (#203)
This commit is contained in:
parent
c62be0ac90
commit
89fb007715
91
arma3.kvp
Normal file
91
arma3.kvp
Normal file
@ -0,0 +1,91 @@
|
||||
Meta.DisplayName=Arma 3
|
||||
Meta.Description=Arma 3 Dedicated Server
|
||||
Meta.OS=Windows, Linux
|
||||
Meta.Arch=x86_64
|
||||
Meta.Author=Greelan
|
||||
Meta.URL=https://arma3.com/
|
||||
Meta.DisplayImageSource=steam:107410
|
||||
Meta.EndpointURIFormat=steam://connect/{ip}:{GenericModule.App.Ports.$QueryPort}
|
||||
Meta.ConfigManifest=arma3config.json
|
||||
Meta.MetaConfigManifest=arma3metaconfig.json
|
||||
Meta.ConfigRoot=arma3.kvp
|
||||
Meta.MinAMPVersion=2.4.2.0
|
||||
Meta.SpecificDockerImage=
|
||||
Meta.DockerRequired=False
|
||||
Meta.ContainerPolicy=Supported
|
||||
Meta.ContainerPolicyReason=
|
||||
Meta.ExtraSetupStepsURI=https://discourse.cubecoders.com/t/arma-3-generic-guide/3475
|
||||
Meta.Prerequsites=[]
|
||||
Meta.ExtraContainerPackages=[]
|
||||
Meta.ConfigReleaseState=NotSpecified
|
||||
Meta.NoCommercialUsage=False
|
||||
App.DisplayName=Arma 3
|
||||
App.RootDir=./arma3/
|
||||
App.BaseDirectory=./arma3/233780/
|
||||
App.ExecutableWin=233780\ArmA3Server_x64.exe
|
||||
App.ExecutableLinux=233780/arma3server_x64
|
||||
App.WorkingDir=233780
|
||||
App.LinuxCommandLineArgs=
|
||||
App.WindowsCommandLineArgs=
|
||||
App.CommandLineArgs={{$PlatformArgs}} -name=AMPServer "-profiles={{$FullBaseDir}}A3Master" "-bepath={{$FullBaseDir}}battleye" -port={{$GamePort}} -config=server.cfg -cfg=basic.cfg -world=empty -ip={{$ApplicationIPBinding}} {{autoInit}}{{$FormattedArgs}} {{parfile}}{{CustomServerArgs}}
|
||||
App.UseLinuxIOREDIR=False
|
||||
App.AppSettings={}
|
||||
App.EnvironmentVariables={"LD_LIBRARY_PATH":"{{$FullBaseDir}}linux64:%LD_LIBRARY_PATH%","SteamAppId":"107410"}
|
||||
App.CommandLineParameterFormat="-{0}={1}"
|
||||
App.CommandLineParameterDelimiter=
|
||||
App.ExitMethod=String
|
||||
App.ExitTimeout=30
|
||||
App.ExitString=#shutdown
|
||||
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":2302,"Ref":"GamePort","Name":"Game Port","Description":"Port for game traffic"},{"Protocol":"UDP","Port":2303,"Ref":"QueryPort","Name":"Query Port","Description":"Port for Steam query traffic"},{"Protocol":"UDP","Port":2304,"Ref":"SteamPort","Name":"Steam Port","Description":"Port for Steam traffic"},{"Protocol":"UDP","Port":2305,"Ref":"ReservedPort","Name":"Reserved Port","Description":"Port reserved for VON traffic"},{"Protocol":"UDP","Port":2306,"Ref":"BattlEyePort","Name":"BattlEye Port","Description":"Port for BattlEye traffic"},{"Protocol":"UDP","Port":2307,"Ref":"RCONPort","Name":"RCON Port","Description":"Port for RCON traffic"}]
|
||||
App.AdminPortRef=RCONPort
|
||||
App.PrimaryApplicationPortRef=GamePort
|
||||
App.UniversalSleepApplicationUDPPortRef=GamePort
|
||||
App.UniversalSleepSteamQueryPortRef=QueryPort
|
||||
App.MaxUsers=64
|
||||
App.UseRandomAdminPassword=True
|
||||
App.PersistRandomPassword=True
|
||||
App.RemoteAdminPassword=
|
||||
App.AdminMethod=BattlEyeRCON
|
||||
App.AdminLoginTransform=None
|
||||
App.RCONConnectDelaySeconds=5
|
||||
App.RCONConnectRetrySeconds=5
|
||||
App.RCONHeartbeatMinutes=0.5
|
||||
App.RCONHeartbeatCommand=ping
|
||||
App.TelnetLoginFormat={0}
|
||||
App.UpdateSources=@IncludeJson[arma3updates.json]
|
||||
App.PreStartStages=[{"UpdateStageName":"Delete Active File","UpdateSourcePlatform":"Linux","UpdateSource":"Executable","UpdateSourceData":"/bin/bash","UpdateSourceArgs":"-c 'rm -f {{$FullBaseDir}}battleye/beserver_x64_active_*.cfg'"},{"UpdateStageName":"Delete Active File","UpdateSourcePlatform":"Windows","UpdateSource":"Executable","UpdateSourceData":"cmd.exe","UpdateSourceArgs":"/C del /Q /F {{$FullBaseDir}}battleye\\beserver_x64_active_*.cfg"}]
|
||||
App.Compatibility=None
|
||||
App.SteamUpdateAnonymousLogin=False
|
||||
App.SteamForceLoginPrompt=True
|
||||
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=^((WARNING|ERROR): Shader.+|Unknown command)$
|
||||
Console.AppReadyRegex=^RCon admin #\d+ \([\d\.:]+\) logged in$
|
||||
Console.UserJoinRegex=^[\d:]+ BattlEye Server: Player #(?<sessionid>.+?) (?<username>.+( \(\d+\))?) \((?<endpoint>.+?):(?:\d+)\) connected$
|
||||
Console.UserLeaveRegex=^[\d:]+ BattlEye Server: Player #(?<sessionid>.+?) (?<username>.+( \(\d+\))?) disconnected$
|
||||
Console.UserChatRegex=^$
|
||||
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
|
17
arma3basic.cfg
Normal file
17
arma3basic.cfg
Normal file
@ -0,0 +1,17 @@
|
||||
// basic.cfg
|
||||
|
||||
// This file is to fine-tune network performance.
|
||||
|
||||
// Full information on relevant settings is available at https://community.bistudio.com/wiki/Arma_3:_Basic_Server_Config_File
|
||||
|
||||
//MinBandwidth = 131072; // Bandwidth the server is guaranteed to have (in bps). This value helps server to estimate bandwidth available. Increasing it to too optimistic values can increase lag and CPU load, as too many messages will be sent but discarded. Default: 131072
|
||||
//MaxBandwidth = 10000000000; // Bandwidth the server is guaranteed to never have. This value helps the server to estimate bandwidth available.
|
||||
|
||||
//MaxMsgSend = 128; // Maximum number of messages that can be sent in one simulation cycle. Increasing this value can decrease lag on high upload bandwidth servers. Default: 128
|
||||
//MaxSizeGuaranteed = 512; // Maximum size of guaranteed packet in bytes (without headers). Small messages are packed to larger frames. Guaranteed messages are used for non-repetitive events like shooting. Default: 512
|
||||
//MaxSizeNonguaranteed = 256; // Maximum size of non-guaranteed packet in bytes (without headers). Non-guaranteed messages are used for repetitive updates like soldier or vehicle position. Increasing this value may improve bandwidth requirement, but it may increase lag. Default: 256
|
||||
|
||||
//MinErrorToSend = 0.001; // Minimal error to send updates across network. Using a smaller value can make units observed by binoculars or sniper rifle to move smoother. Default: 0.001
|
||||
//MinErrorToSendNear = 0.01; // Minimal error to send updates across network for near units. Using larger value can reduce traffic sent for near units. Used to control client to server traffic as well. Default: 0.01
|
||||
|
||||
//MaxCustomFileSize = 0; // (bytes) Users with custom face or custom sound larger than this size are kicked when trying to connect.
|
1144
arma3config.json
Normal file
1144
arma3config.json
Normal file
File diff suppressed because it is too large
Load Diff
23
arma3metaconfig.json
Normal file
23
arma3metaconfig.json
Normal file
@ -0,0 +1,23 @@
|
||||
[
|
||||
{
|
||||
"ConfigFile":"server.cfg",
|
||||
"AutoMap":true,
|
||||
"ConfigType":"template",
|
||||
"ConfigFileTemplate":"./arma3/233780/AMP_server.cfg"
|
||||
},
|
||||
{
|
||||
"ConfigFile":"battleye/beserver_x64.cfg",
|
||||
"ConfigType":"kvp",
|
||||
"ConfigFormat":"{0} {1}",
|
||||
"Subsections":[
|
||||
{
|
||||
"Heading":"$root",
|
||||
"SettingMappings":{
|
||||
"RConPassword":"$RemoteAdminPassword",
|
||||
"RConPort":"$RCONPort",
|
||||
"RConIP":"$ApplicationIPBinding"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
6
arma3modscript.sh
Normal file
6
arma3modscript.sh
Normal file
@ -0,0 +1,6 @@
|
||||
#!/bin/bash
|
||||
find ./arma3/233780/steamapps/workshop/content/107410/ -type f -name "*[A-Z]*" -print0 |\
|
||||
xargs -0 -I {} bash -c "mv \"{}\" \"\`echo {} | sed 's,\(.*\)\/\(.*\),\1\/\L\2,'\`\"" &&\
|
||||
cd ./arma3/233780 &&\
|
||||
find ./steamapps/workshop/content/107410 -maxdepth 1 -mindepth 1 -type d -exec ln -sf -t ./ {} +
|
||||
exit 0
|
113
arma3server.cfg
Normal file
113
arma3server.cfg
Normal file
@ -0,0 +1,113 @@
|
||||
// DO NOT edit server.cfg directly
|
||||
// AMP_server.cfg controls server.cfg. Edit AMP_server.cfg if you want to add or change certain settings
|
||||
// NOTE:
|
||||
// - DO NOT change values in double curly braces, ie {{}}. They are set either via the AMP UI
|
||||
// or are controlled by AMP itself (in particular, ports)
|
||||
// - Other settings can be changed or added as needed - see the second section below
|
||||
|
||||
// Full information on settings is available at https://community.bistudio.com/wiki/Arma_3:_Server_Config_File
|
||||
|
||||
// *******
|
||||
// SETTINGS CONTROLLED BY AMP - DO NOT TOUCH THESE!!!
|
||||
// *******
|
||||
hostname = "{{hostname}}";
|
||||
password = "{{password}}";
|
||||
passwordAdmin = "{{passwordAdmin}}";
|
||||
serverCommandPassword = "{{serverCommandPassword}}";
|
||||
admins[] = { {{admins}} };
|
||||
headlessClients[] = { {{headlessClients}} };
|
||||
localClient[] = { {{localClient}} };
|
||||
logFile = "server_console.log";
|
||||
motd[] = { {{motd}} };
|
||||
motdInterval = {{motdInterval}};
|
||||
maxPlayers = {{maxPlayers}};
|
||||
kickDuplicate = {{kickDuplicate}};
|
||||
verifySignatures = {{verifySignatures}};
|
||||
allowedFilePatching = {{allowedFilePatching}};
|
||||
filePatchingExceptions[] = { {{filePatchingExceptions}} };
|
||||
requiredBuild = {{requiredBuild}};
|
||||
loopback = {{loopback}};
|
||||
upnp = {{upnp}};
|
||||
skipLobby = {{skipLobby}};
|
||||
voteMissionPlayers = {{voteMissionPlayers}};
|
||||
voteThreshold = {{voteThreshold}};
|
||||
forceRotorLibSimulation = {{forceRotorLibSimulation}};
|
||||
disableVoN = {{disableVoN}};
|
||||
vonCodec = {{vonCodec}};
|
||||
vonCodecQuality = {{vonCodecQuality}};
|
||||
persistent = {{persistent}};
|
||||
timeStampFormat = "{{timeStampFormat}}";
|
||||
BattlEye = 1;
|
||||
allowedLoadFileExtensions[] = { {{allowedLoadFileExtensions}} };
|
||||
allowedPreprocessFileExtensions[] = { {{allowedPreprocessFileExtensions}} };
|
||||
allowedHTMLLoadExtensions[] = { {{allowedHTMLLoadExtensions}} };
|
||||
enablePlayerDiag = {{enablePlayerDiag}};
|
||||
drawingInMap = {{drawingInMap}};
|
||||
allowProfileGlasses = {{allowProfileGlasses}};
|
||||
forcedDifficulty = "{{forcedDifficulty}}";
|
||||
disconnectTimeout = {{disconnectTimeout}};
|
||||
maxDesync = {{maxDesync}};
|
||||
maxPing = {{maxPing}};
|
||||
maxPacketLoss = {{maxPacketLoss}};
|
||||
kickClientsOnSlowNetwork[] = { {{kickPing}},{{kickLoss}},{{kickDesync}},{{kickTimeout}} };
|
||||
kickTimeout[] = { { 0,{{kickManual}} }, { 1,{{kickConnectivity}} }, { 2,{{kickBattlEye}} }, { 3,{{kickHarmless}} } };
|
||||
votingTimeOut[] = { {{votingTimeOut}} };
|
||||
roleTimeOut[] = { {{roleTimeOut}} };
|
||||
briefingTimeOut[] = { {{briefingTimeOut}} };
|
||||
debriefingTimeOut[] = { {{debriefingTimeOut}} };
|
||||
lobbyIdleTimeout = {{lobbyIdleTimeout}};
|
||||
armaUnitsTimeout = {{armaUnitsTimeout}};
|
||||
onUserConnected = "{{onUserConnected}}";
|
||||
onUserDisconnected = "{{onUserDisconnected}}";
|
||||
doubleIdDetected = "{{doubleIdDetected}}";
|
||||
onUserKicked = "{{onUserKicked}}";
|
||||
onUnsignedData = "{{onUnsignedData}}";
|
||||
onHackedData = "{{onHackedData}}";
|
||||
onDifferentData = "{{onDifferentData}}";
|
||||
autoSelectMission = {{autoSelectMission}};
|
||||
randomMissionOrder = {{randomMissionOrder}};
|
||||
statisticsEnabled = {{statisticsEnabled}};
|
||||
callExtReportLimit = {{callExtReportLimit}};
|
||||
zeusCompositionScriptLevel = {{zeusCompositionScriptLevel}};
|
||||
steamProtocolMaxDataSize = {{steamProtocolMaxDataSize}};
|
||||
class AdvancedOptions
|
||||
{
|
||||
LogObjectNotFound = {{LogObjectNotFound}};
|
||||
SkipDescriptionParsing = {{SkipDescriptionParsing}};
|
||||
ignoreMissionLoadErrors = {{ignoreMissionLoadErrors}};
|
||||
queueSizeLogG = {{queueSizeLogG}};
|
||||
};
|
||||
|
||||
// *******
|
||||
// USER CONFIGURABLE SETTINGS - CHANGE/ADD ADDITIONAL SETTINGS HERE
|
||||
// *******
|
||||
|
||||
// VOTING
|
||||
//allowedVoteCmds[] = { { "kick", false, false, 0.75 } };
|
||||
//allowedVotedAdminCmds[] = { { "mission", true, true } };
|
||||
|
||||
// INGAME SETTINGS
|
||||
//allowedHTMLLoadURIs[] = {};
|
||||
|
||||
// MISSIONS CYCLE
|
||||
//class Missions {}; // An empty Missions class means there will be no mission rotation
|
||||
// OR
|
||||
//class Missions // A full list of default missions is at https://community.bistudio.com/wiki/Arma_3:_MP_Mission_Names
|
||||
//{
|
||||
// class Mission01
|
||||
// {
|
||||
// template = MP_Marksmen_01.Altis;
|
||||
// difficulty = "Veteran";
|
||||
// class Params {};
|
||||
// };
|
||||
// class Mission02
|
||||
// {
|
||||
// template = MP_End_Game_01.Altis;
|
||||
// difficulty = "Veteran";
|
||||
// class Params {};
|
||||
// };
|
||||
//};
|
||||
//missionWhitelist[] = {}; // An empty whitelist means there is no restriction on what missions are available
|
||||
|
||||
// OTHER OPTIONS
|
||||
//disableChannels[] = {};
|
57
arma3updates.json
Normal file
57
arma3updates.json
Normal file
@ -0,0 +1,57 @@
|
||||
[
|
||||
{
|
||||
"UpdateStageName":"SteamCMD Download",
|
||||
"UpdateSourcePlatform":"All",
|
||||
"UpdateSource":"SteamCMD",
|
||||
"UpdateSourceData":"233780",
|
||||
"UpdateSourceArgs":"107410"
|
||||
},
|
||||
{
|
||||
"UpdateStageName":"Server Config Template Download",
|
||||
"UpdateSourcePlatform":"All",
|
||||
"UpdateSource":"FetchURL",
|
||||
"UpdateSourceData":"https://github.com/CubeCoders/AMPTemplates/raw/main/arma3server.cfg",
|
||||
"UpdateSourceArgs":"AMP_server.cfg",
|
||||
"UpdateSourceTarget":"{{$FullBaseDir}}",
|
||||
"OverwriteExistingFiles":false
|
||||
},
|
||||
{
|
||||
"UpdateStageName":"Basic Config File Download",
|
||||
"UpdateSourcePlatform":"All",
|
||||
"UpdateSource":"FetchURL",
|
||||
"UpdateSourceData":"https://github.com/CubeCoders/AMPTemplates/raw/main/arma3basic.cfg",
|
||||
"UpdateSourceArgs":"basic.cfg",
|
||||
"UpdateSourceTarget":"{{$FullBaseDir}}",
|
||||
"OverwriteExistingFiles":false
|
||||
},
|
||||
{
|
||||
"UpdateStageName":"Create Parameters File",
|
||||
"UpdateSourcePlatform":"All",
|
||||
"UpdateSource":"CreateFile",
|
||||
"UpdateSourceArgs":"{{$FullBaseDir}}parameters.txt",
|
||||
"OverwriteExistingFiles":false
|
||||
},
|
||||
{
|
||||
"UpdateStageName":"Modscript Download",
|
||||
"UpdateSourcePlatform":"Linux",
|
||||
"UpdateSource":"FetchURL",
|
||||
"UpdateSourceData":"https://github.com/CubeCoders/AMPTemplates/raw/main/arma3modscript.sh",
|
||||
"UpdateSourceArgs":"modscript.sh",
|
||||
"UpdateSourceTarget":"{{$FullInstanceDir}}",
|
||||
"OverwriteExistingFiles":true
|
||||
},
|
||||
{
|
||||
"UpdateStageName":"Convert and Symlink Mods",
|
||||
"UpdateSourcePlatform":"Linux",
|
||||
"UpdateSource":"Executable",
|
||||
"UpdateSourceData":"/bin/bash",
|
||||
"UpdateSourceArgs":"./modscript.sh"
|
||||
},
|
||||
{
|
||||
"UpdateStageName":"Link Mods",
|
||||
"UpdateSourcePlatform":"Windows",
|
||||
"UpdateSource":"Executable",
|
||||
"UpdateSourceData":"cmd.exe",
|
||||
"UpdateSourceArgs":"/C cd .\\arma3\\233780 && for /D %G in (.\\steamapps\\workshop\\content\\107410\\*) do mklink /J %~nxG %G"
|
||||
}
|
||||
]
|
Loading…
Reference in New Issue
Block a user