Advertisement
Guest User

Untitled

a guest
Oct 17th, 2019
190
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #Start Logging - Log @ path below.
  2.     Start-Transcript -Path 'C:\Program Files\Steam\steamapps\arma3server\arma3server-primaryscript.log' -Append
  3.  
  4. <#
  5.     COPY THIS FILE BEFORE EDITING
  6.          
  7.     IF YOU BREAK THE SERVER, PLEASE DO NOT LEAVE IT BROKEN! COMMENT OUT YOUR NEW LINES!
  8.  
  9. #>
  10.  
  11. ## DEFAULT MODS
  12. #Mod Command Line
  13.  
  14.     #Ensure mod command line is cleared.
  15.             $mod = ""
  16.     #Mod By Load Order
  17.             #Core Mods
  18.             $mod = [pscustomobject]@(@{ModName="@CBA_A3";ModID="450814997"})
  19.             $mod += [pscustomobject]@(@{ModName="@ace";ModID="463939057"})
  20.             $mod += [pscustomobject]@(@{ModName="@ACEX";ModID="708250744"})
  21.             $mod += [pscustomobject]@(@{ModName="@CUPTerrains_C";ModID="583496184"})
  22.             $mod += [pscustomobject]@(@{ModName="@RHSAFRF";ModID="843425103"})
  23.             $mod += [pscustomobject]@(@{ModName="@RHSUSAF";ModID="843577117"})
  24.             $mod += [pscustomobject]@(@{ModName="@RHSGREF";ModID="843593391"})
  25.             $mod += [pscustomobject]@(@{ModName="@tfar_beta";ModID="894678801"})
  26.  
  27.             #Mod Compats
  28.             $mod += [pscustomobject]@(@{ModName="@ACEC-USAF";ModID="773125288"})
  29.             $mod += [pscustomobject]@(@{ModName="@ACEC-AFRF";ModID="773131200"})
  30.             $mod += [pscustomobject]@(@{ModName="@ACEC-GREF";ModID="884966711"})
  31.  
  32.             #Maps
  33.             $mod += [pscustomobject]@(@{ModName="@CUPTerrains_M";ModID="583544987"})
  34.             $mod += [pscustomobject]@(@{ModName="@Anizay";ModID="1537973181"})
  35.             $mod += [pscustomobject]@(@{ModName="@Leskovets";ModID="855464203"})
  36.             $mod += [pscustomobject]@(@{ModName="@Reshmaan";ModID="843362862"})
  37.             $mod += [pscustomobject]@(@{ModName="@Kunduz";ModID="421620913"})
  38.  
  39.             #Vehicles
  40.             $mod += [pscustomobject]@(@{ModName="@MELB";ModID="561177050"})
  41.             $mod += [pscustomobject]@(@{ModName="@FA18";ModID="743099837"})
  42.             $mod += [pscustomobject]@(@{ModName="@6X6";ModID="1190934425"})
  43.  
  44.             #Fancy Vehicle Mods
  45.             $mod += [pscustomobject]@(@{ModName="@ITC";ModID="1321663083"})
  46.             $mod += [pscustomobject]@(@{ModName="@ITCLand";ModID="1388192893"})
  47.             $mod += [pscustomobject]@(@{ModName="@ITC-RHSUSAFCompat";ModID="1501132392"})
  48.             $mod += [pscustomobject]@(@{ModName="@ITCLand-USAFCompat";ModID="1393769392"})
  49.  
  50.             #WTF I dunno
  51.             $mod += [pscustomobject]@(@{ModName="@tfw_radios";ModID="873999690"})
  52.             $mod += [pscustomobject]@(@{ModName="@MLO";ModID="823636749"})
  53.             $mod += [pscustomobject]@(@{ModName="@SMA";ModID="699630614"})
  54.             $mod += [pscustomobject]@(@{ModName="@ProjectOPFOR";ModID="735566597"})
  55.  
  56.             #UI Enhancements
  57.             $mod += [pscustomobject]@(@{ModName="@EMove";ModID="333310405"})
  58.             $mod += [pscustomobject]@(@{ModName="@DUI";ModID="1638341685"})
  59.  
  60.             #Propriatary
  61.             $mod += [pscustomobject]@(@{ModName="@16thJSOC";ModID="1609947849"})
  62.  
  63. #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
  64. #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
  65. #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
  66.  
  67. #!!!FUCK OFF DO NOT EDIT!!!
  68. #This is for Talven to screw with.
  69.  
  70.             $modNameList = ""
  71.             $modAdded = 0
  72.             foreach ($i in $mod) {
  73.                 $modAdded += 1
  74.                 if (-not ($modAdded -eq $mod.Count)) {
  75.                     $modNameList += $i.ModName + ";"
  76.                 } elseif ($modAdded -eq $mod.Count) {
  77.                     $modNameList += $i.ModName
  78.                 }
  79.             }
  80.  
  81.  
  82.     #Server Only Mods
  83.         $serveronlymod='@VCOM;'
  84.  
  85.  
  86.  
  87. ## STOP RUNNING SERVER
  88.     Stop-Process -Name arma3server* -Force  #We need to start doing this by process ID. -T
  89.  
  90. #Let's update Arma 3!
  91. # http://media.steampowered.com/installer/steamcmd.zip
  92.  
  93.     #$SteamLogin="Anonymous"
  94.     $SteamLogin="username"
  95.     $SteamPass="password"
  96.     $ServerBRANCH="233780 -beta"
  97.         # For stable use 233780 -beta
  98.         # For Dev use 233780 -beta development
  99.                 # Note, the missing qotation marks, these need to be wrapped around the entire "+app_data......"
  100.                 # There is no DEV branch data yet for Arma 3 Dedicated Server package !!!
  101.  
  102.     $ServerPath="C:\Program Files\Steam\steamapps\Arma3Server"
  103.     $SteamPath="C:\Program Files\Steam"
  104.  
  105. & $SteamPath\steamcmd.exe +login $SteamLogin $SteamPass +force_install_dir $ServerPath +"app_update $ServerBRANCH" validate +quit
  106.  
  107. #Let's update mods!
  108. foreach ($i in $mod) {
  109.     $WorkshopDownloadItem = '+workshop_download_item "107410 ' + $i.ModID + '"'
  110.     CD $SteamPath
  111.     & $SteamPath\steamcmd.exe +login $STEAMLOGIN $Steampass $WorkshopDownloadItem +quit
  112.     if ($LASTEXITCODE -eq 0) {
  113.         $ModName = $i.ModName
  114.         $ModID = $i.ModID
  115.         if (-not (test-path "$ServerPath\$ModName")) {
  116.             md "$ServerPath\$ModName"
  117.         }
  118.         Write-Host 'Copying '$Modname' to arma directory.'
  119.         $RoboCopyArgs = @("""$SteamPath\steamapps\workshop\content\107410\$ModID""","""$ServerPath\$ModName""")
  120.         robocopy @RoboCopyArgs /E /PURGE /MIR /XO
  121.     } else {
  122.         Write-Host "ERROR $LASTEXITCODE DOWNLOADING: "$i.ModName
  123.     }
  124. }
  125.  
  126. <#
  127. $WorkshopDownloadItem = ""
  128. foreach ($i in $mod) {
  129.     #$WorkshopDownloadItem += ' +workshop_download_item "107410 ' + $i.ModID + '"'
  130.     $WorkshopDownloadItem += ' +workshop_download_item 107410 ' + $i.ModID + ''
  131. }
  132.    
  133. CD $SteamPath
  134. & $SteamPath\steamcmd.exe +login $STEAMLOGIN $Steampass $WorkshopDownloadItem +quit
  135. DO {
  136.     & $SteamPath\steamcmd.exe +login $STEAMLOGIN $Steampass $WorkshopDownloadItem validate +quit
  137. } Until ($LASTEXITCODE -eq 0)
  138.  
  139. foreach ($i in $mod) {
  140.     $ModName = $i.ModName
  141.     $ModID = $i.ModID
  142.     if (-not (test-path "$ServerPath\$ModName")) {
  143.         md "$ServerPath\$ModName"
  144.     }
  145.     Write-Host 'Copying '$Modname' to arma directory.'
  146.     $RoboCopyArgs = @("""$SteamPath\steamapps\workshop\content\107410\$ModID""","""$ServerPath\$ModName""")
  147.     robocopy @RoboCopyArgs /E /PURGE /MIR /XO
  148. }
  149. #>
  150.  
  151. ## SERVER COMMAND LINE
  152.     $servermodcmd = ('"' + $modNameList + '"') #Wrap above mods in quotes so we don't confuse Bohemia.
  153.     $serveronlymodcmd = ('"' + $serveronlymod + '"') #Wrap above mods in quotes so we don't confuse Bohemia.
  154.     CD "C:\Program Files\Steam\steamapps\arma3server\"
  155. #Test with -netlog ensure all proper logging still happens.
  156.     Write-Host "Staring Arma 3 server..."
  157.     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"
  158.  
  159. #Wait for server startup.
  160.     Start-Sleep -s 10
  161.  
  162. #Start headless client.
  163.     #$headlessmodcmd = ('"' + $mod + $serveronlymod + '"') #Wrap above mods in quotes so we don't confuse Bohemia.
  164.     #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"
  165.     #Start-Sleep -s 60
  166.  
  167. #Set Arma 3 Server Process to HIGH priority.
  168.     Write-Host "Setting process to high priority..."
  169.     $arma3process = (Get-Process Arma3Server_x64) #We need to do this by process ID eventually. -T
  170.  
  171.     foreach ($process in $arma3process) {
  172.         $process.PriorityClass = "High"
  173.     }
  174.  
  175. #Stop Logging
  176. Write-Host "Startup complete."    
  177. Stop-Transcript
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement