Skip to content

Latest commit

 

History

History
99 lines (75 loc) · 5.4 KB

USAGE.adoc

File metadata and controls

99 lines (75 loc) · 5.4 KB

GSRI server manager: usage guide

Requirements

Softwares

  • Pwsh 7+: appliction runtime

  • Steamcmd: used for arma 3 server and workshop items download

  • GitHub CLI: used for Github repositories release content download

All 3 softwares should be accessible from the system PATH environment variable.

Accounts

Installation

  1. Login to your Steam account using the steamcmd command line utility

  2. Login to your GitHub account using the gh command line utility

  3. Set the STEAM_USERNAME to the steam account username used previously

Server configuration

All configuration regarding your server must go into a configuration file. This file is expected to use PSD1 format.

Exemple file:

@{
    Port             = 2302                                # main port used by the server
    ServerAffinity   = 5                                   # bitmask for CPU affinity of the server
    HeadlessAffinity = 10                                  # bitmask for CPU affinity of the headless client

    Hostname         = '[FR] SERVER NAME | www.gsri.team'  # name of the server visible on the launcher
    DefaultMission   = 'CONT_Orion.Malden'                 # name of the mission the server will load at start
    Password         = 'bouh!'                             # password for client connection
    Players          = 32                                  # max players for the server
    VerifySignatures = $true                               # wether the server should verify clients pbo signatures
    Headless         = $true                               # wether to start a headless client with the server
    DisableChannels  = @(0, 1, 2, 3, 4, 5)                 # radio channels to disable, see https://community.bistudio.com/wiki/enableChannel

    Admins           = @(
        76561197967609383 # Arwyn                          # steamid of players allowed to login as admin on the server
    )

    Mods             = @(                                  # list of mods used both on clients and server
        450814997                                          # - workshop item id
        'C:\mods\@GSRI'                                    # - absolute path to local mod
    )
    ClientMods       = @(                                  # list of mods whose keys get added to the server
        463939057
    )
    ServerMods       = @(                                  # list of mods used on the server but not by clients
        894678801
    )

    # Select one of below options, depending on how you want to obtain the mission pbo file:

    Missions         = @{                                  # the mission that will run on the server
        'team-gsri/Orion'                                  # - github repository
        'C:\Arma3\missions\custom'                         # - absolute path to pbo mission files
    }

    WorkshopPath     = 'C:\Arma3'                          # Path where workshop mods get downloaded
    MasterPath       = 'C:\Arma3\instances\abcd\master'    # Path for the Arma3 server executable
    ConfigPath       = 'C:\Arma3\instances\abcd\config'    # Path for server.cfg, basic.cfg, and pid files
    ProfilePath      = 'C:\Arma3\instances\abcd\profile'   # Path for the server profile
}
Caution
Server and Headless affinity are bitmasks, allowing each process to run on different CPU cores for performance purpose. See Microsoft documentation

Usage

Note
All commands require administrator privileges

The following commands are available:

  • Install-ArmaServer: This command will install the server:

    • Download Arma 3 dedicated server binaries and workshop content

    • Download missions from GitHub releases

    • Install BI Keys, mission files, and config files

  • Start-ArmaServer: Starts the server using the current user’s context

    • If the server is already running, it will try to stop it first

    • It will also run Install-ArmaServer before running the server

  • Stop-ArmaServer: Stops the currently running server

  • Register-ArmaServerTask: This command will register a scheduled task that will restart the server every day

    • -UserId the user which will run the server (default: LocalService)

    • -At time of the day for the server restart (default: 5AM)

    • -Force overwrite the existing task

  • Get-ArmaServerTask: shorthand command to get the server’s scheduled task:

    • Get-ArmaServerTask -ConfigFilename argon.psd1 | Unregister-ScheduledTask

Important
Due to a bug in steamcmd, download of larger mods will timeout. In that case, you can use Start-Download.ps1. This script will start the download and yield an error. Then you can wait despite the error and the download will actually continue in the background. Watch your network bandwidth for completion, then use quit to exit steamcmd.