Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #Start Logging - Log @ path below.
- Start-Transcript -Path 'C:\Program Files\Steam\steamapps\arma3server\arma3server-primaryscript.log' -Append
- <#
- COPY THIS FILE BEFORE EDITING
- IF YOU BREAK THE SERVER, PLEASE DO NOT LEAVE IT BROKEN! COMMENT OUT YOUR NEW LINES!
- #>
- ## DEFAULT MODS
- #Mod Command Line
- #Ensure mod command line is cleared.
- $mod = ""
- #Mod By Load Order
- #Core Mods
- $mod = [pscustomobject]@(@{ModName="@CBA_A3";ModID="450814997"})
- $mod += [pscustomobject]@(@{ModName="@ace";ModID="463939057"})
- $mod += [pscustomobject]@(@{ModName="@ACEX";ModID="708250744"})
- $mod += [pscustomobject]@(@{ModName="@CUPTerrains_C";ModID="583496184"})
- $mod += [pscustomobject]@(@{ModName="@RHSAFRF";ModID="843425103"})
- $mod += [pscustomobject]@(@{ModName="@RHSUSAF";ModID="843577117"})
- $mod += [pscustomobject]@(@{ModName="@RHSGREF";ModID="843593391"})
- $mod += [pscustomobject]@(@{ModName="@tfar_beta";ModID="894678801"})
- #Mod Compats
- $mod += [pscustomobject]@(@{ModName="@ACEC-USAF";ModID="773125288"})
- $mod += [pscustomobject]@(@{ModName="@ACEC-AFRF";ModID="773131200"})
- $mod += [pscustomobject]@(@{ModName="@ACEC-GREF";ModID="884966711"})
- #Maps
- $mod += [pscustomobject]@(@{ModName="@CUPTerrains_M";ModID="583544987"})
- $mod += [pscustomobject]@(@{ModName="@Anizay";ModID="1537973181"})
- $mod += [pscustomobject]@(@{ModName="@Leskovets";ModID="855464203"})
- $mod += [pscustomobject]@(@{ModName="@Reshmaan";ModID="843362862"})
- $mod += [pscustomobject]@(@{ModName="@Kunduz";ModID="421620913"})
- #Vehicles
- $mod += [pscustomobject]@(@{ModName="@MELB";ModID="561177050"})
- $mod += [pscustomobject]@(@{ModName="@FA18";ModID="743099837"})
- $mod += [pscustomobject]@(@{ModName="@6X6";ModID="1190934425"})
- #Fancy Vehicle Mods
- $mod += [pscustomobject]@(@{ModName="@ITC";ModID="1321663083"})
- $mod += [pscustomobject]@(@{ModName="@ITCLand";ModID="1388192893"})
- $mod += [pscustomobject]@(@{ModName="@ITC-RHSUSAFCompat";ModID="1501132392"})
- $mod += [pscustomobject]@(@{ModName="@ITCLand-USAFCompat";ModID="1393769392"})
- #WTF I dunno
- $mod += [pscustomobject]@(@{ModName="@tfw_radios";ModID="873999690"})
- $mod += [pscustomobject]@(@{ModName="@MLO";ModID="823636749"})
- $mod += [pscustomobject]@(@{ModName="@SMA";ModID="699630614"})
- $mod += [pscustomobject]@(@{ModName="@ProjectOPFOR";ModID="735566597"})
- #UI Enhancements
- $mod += [pscustomobject]@(@{ModName="@EMove";ModID="333310405"})
- $mod += [pscustomobject]@(@{ModName="@DUI";ModID="1638341685"})
- #Propriatary
- $mod += [pscustomobject]@(@{ModName="@16thJSOC";ModID="1609947849"})
- #SERVER SHIT BELOW THIS LINE - SERVER SHIT BELOW THIS LINE - SERVER SHIT BELOW THIS LINE - SERVER SHIT BELOW THIS LINE - SERVER SHIT BELOW THIS LINE
- #SERVER SHIT BELOW THIS LINE - SERVER SHIT BELOW THIS LINE - SERVER SHIT BELOW THIS LINE - SERVER SHIT BELOW THIS LINE - SERVER SHIT BELOW THIS LINE
- #SERVER SHIT BELOW THIS LINE - SERVER SHIT BELOW THIS LINE - SERVER SHIT BELOW THIS LINE - SERVER SHIT BELOW THIS LINE - SERVER SHIT BELOW THIS LINE
- #!!!FUCK OFF DO NOT EDIT!!!
- #This is for Talven to screw with.
- $modNameList = ""
- $modAdded = 0
- foreach ($i in $mod) {
- $modAdded += 1
- if (-not ($modAdded -eq $mod.Count)) {
- $modNameList += $i.ModName + ";"
- } elseif ($modAdded -eq $mod.Count) {
- $modNameList += $i.ModName
- }
- }
- #Server Only Mods
- $serveronlymod='@VCOM;'
- ## STOP RUNNING SERVER
- Stop-Process -Name arma3server* -Force #We need to start doing this by process ID. -T
- #Let's update Arma 3!
- # http://media.steampowered.com/installer/steamcmd.zip
- #$SteamLogin="Anonymous"
- $SteamLogin="username"
- $SteamPass="password"
- $ServerBRANCH="233780 -beta"
- # For stable use 233780 -beta
- # For Dev use 233780 -beta development
- # Note, the missing qotation marks, these need to be wrapped around the entire "+app_data......"
- # There is no DEV branch data yet for Arma 3 Dedicated Server package !!!
- $ServerPath="C:\Program Files\Steam\steamapps\Arma3Server"
- $SteamPath="C:\Program Files\Steam"
- & $SteamPath\steamcmd.exe +login $SteamLogin $SteamPass +force_install_dir $ServerPath +"app_update $ServerBRANCH" validate +quit
- #Let's update mods!
- foreach ($i in $mod) {
- $WorkshopDownloadItem = '+workshop_download_item "107410 ' + $i.ModID + '"'
- CD $SteamPath
- & $SteamPath\steamcmd.exe +login $STEAMLOGIN $Steampass $WorkshopDownloadItem +quit
- if ($LASTEXITCODE -eq 0) {
- $ModName = $i.ModName
- $ModID = $i.ModID
- if (-not (test-path "$ServerPath\$ModName")) {
- md "$ServerPath\$ModName"
- }
- Write-Host 'Copying '$Modname' to arma directory.'
- $RoboCopyArgs = @("""$SteamPath\steamapps\workshop\content\107410\$ModID""","""$ServerPath\$ModName""")
- robocopy @RoboCopyArgs /E /PURGE /MIR /XO
- } else {
- Write-Host "ERROR $LASTEXITCODE DOWNLOADING: "$i.ModName
- }
- }
- <#
- $WorkshopDownloadItem = ""
- foreach ($i in $mod) {
- #$WorkshopDownloadItem += ' +workshop_download_item "107410 ' + $i.ModID + '"'
- $WorkshopDownloadItem += ' +workshop_download_item 107410 ' + $i.ModID + ''
- }
- CD $SteamPath
- & $SteamPath\steamcmd.exe +login $STEAMLOGIN $Steampass $WorkshopDownloadItem +quit
- DO {
- & $SteamPath\steamcmd.exe +login $STEAMLOGIN $Steampass $WorkshopDownloadItem validate +quit
- } Until ($LASTEXITCODE -eq 0)
- foreach ($i in $mod) {
- $ModName = $i.ModName
- $ModID = $i.ModID
- if (-not (test-path "$ServerPath\$ModName")) {
- md "$ServerPath\$ModName"
- }
- Write-Host 'Copying '$Modname' to arma directory.'
- $RoboCopyArgs = @("""$SteamPath\steamapps\workshop\content\107410\$ModID""","""$ServerPath\$ModName""")
- robocopy @RoboCopyArgs /E /PURGE /MIR /XO
- }
- #>
- ## SERVER COMMAND LINE
- $servermodcmd = ('"' + $modNameList + '"') #Wrap above mods in quotes so we don't confuse Bohemia.
- $serveronlymodcmd = ('"' + $serveronlymod + '"') #Wrap above mods in quotes so we don't confuse Bohemia.
- CD "C:\Program Files\Steam\steamapps\arma3server\"
- #Test with -netlog ensure all proper logging still happens.
- Write-Host "Staring Arma 3 server..."
- C:\Progra~1\Steam\steamapps\arma3server\arma3server_x64.exe "-profiles=C:\Progra~1\Steam\steamapps\arma3server\" -filepatching -port=2302 -config="server.cfg" -mod="$servermodcmd" -serverMod="$serveronlymodcmd"
- #Wait for server startup.
- Start-Sleep -s 10
- #Start headless client.
- #$headlessmodcmd = ('"' + $mod + $serveronlymod + '"') #Wrap above mods in quotes so we don't confuse Bohemia.
- #C:\Progra~1\Steam\steamapps\arma3server\arma3server_x64.exe "-profiles=C:\Progra~1\Steam\steamapps\arma3server\" -client -nosound -connect="127.0.0.1:2302" -mod="$headlessmodcmd"
- #Start-Sleep -s 60
- #Set Arma 3 Server Process to HIGH priority.
- Write-Host "Setting process to high priority..."
- $arma3process = (Get-Process Arma3Server_x64) #We need to do this by process ID eventually. -T
- foreach ($process in $arma3process) {
- $process.PriorityClass = "High"
- }
- #Stop Logging
- Write-Host "Startup complete."
- Stop-Transcript
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement