Hosting a Dedicated Server

Hosting a Dedicated Server

Setup

Dedicated servers allow you to host a Northstar server without having to use a full client, making them more lightweight and easier to host for longer periods of time. Dedicated servers are still in development for Northstar, so while they do work, expect some bugs and general jank. To start a dedicated server on Northstar, launch NorthstarLauncher.exe with the argument -dedicated, this can be done manually, but releases also provide the batch file r2ds.bat, which will also do this. When using a dedicated server, arguments are read from ns_startup_args_dedi.txt, rather than ns_startup_args.txt.

Useful configuration files

  • ns_startup_args_dedi.txt contains the startup arguments
  • R2Northstar\mods\Northstar.CustomServers\mod.json contains ConVars default values
  • R2Northstar\mods\Northstar.CustomServers\mod\cfg\autoexec_ns_server.cfg contains ConVars and overrides

Dedicated Server Caveats

At the moment, dedicated servers still require DirectX 11 to work, which typically requires a physical GPU, though they use almost no GPU processing power while in use, this can be an issue especially on GPU-less setups, so the launch argument -softwared3d11 can be used to force DirectX to run in software mode. While this is absolutely not ideal, it's the best solution for truely headless dedicated servers at the moment, and surprisingly hardly uses any CPU time, though it can use roughly up to 1GB of RAM. Regarding RAM usage, dedicated servers also use significant amounts of RAM at the moment, often requiring 1.5-2GB, though I expect this to lower as development continues.

Troubleshoot

Startup Arguments

Startup arguments can be added in the ns_startup_args_dedi.txt file. Example: +setplaylist private_match +mp_gamemode ps
Arguments
Accepted Values
Description
+setplaylist
see Gamemodes (Should be the same as mp_gamemode unless you want a private match)
Set the server type (If it is not private_match, make sure you have also included +map and NOT mp_lobby or else you can't search your server in the game)
+setplaylistvaroverrides
Edits the behaviour of the server
-port
int beteween 1-65535
Determines which UDP port the server will listen to
+mp_gamemode
see Gamemodes
Forces the gamemode of the server
+map
see Maps (mp_lobby is the default if not included)
Forces the map of the server at the first start
Flags
Description
-maxplayersplaylist
Allows PlaylistOverrides to override max player count
-enablechathooks
Allows send the commands using in-game chat
-allowdupeaccounts
Allows the same account joining multiple times

Playlist overrides

Playlist overrides determines the behaviour of the server. PlaylistOverrides can be added using the +setplaylistvaroverrides argument in the ns_startup_args_dedi.txt file.
The list of playlist overrides needs to be quoted and separated by spaces. Example: +setplaylistvaroverrides "run_epilogue 0 featured_mode_amped_tacticals 1"
PlaylistOverrides
Accepted Values
Default Value
Description
max_players
int
Needs to be in combination with the -maxplayersplaylist flag
custom_air_accel_pilot
pilot_health_multiplier
run_epilogue
0-1
1
Enables escape dropship
respawn_delay
Delay before respawn
boosts_enabled
0-1
0
Disable boosts. Doesn't disable Titanmeter. Note that unlike the name suggests 1 disables boosts
earn_meter_pilot_overdrive
0-1
earn_meter_pilot_multiplier
earn_meter_titan_multiplier
aegis_upgrades
0-1
0
Enable titan aegis upgrades
infinite_doomed_state
0-1
titan_shield_regen
0-1
0
Enable regenerating titan shields
scorelimit
roundscorelimit
timelimit
oob_timer_enabled
0-1
Out of bounds timer enable
roundtimelimit
classic_rodeo
0-1
classic_mp
0-1
1
Enables intro dropship
fp_embark_enabled
First person embark and terminations

Convars

Convars are located inside the R2Northstar\mods\Northstar.CustomServers\mod\cfg\autoexec_ns_server.cfg file.
They allow the server admin to set server's properties like the name, TCP port, and description.
Name
Description
Default Value
Accepted Values
ns_server_name
Your server's name on the server browser
"Unnamed Northstar Server"
string
ns_server_desc
Your server's description on the server browser
"Default server description"
string
ns_server_password
The password required to join your server, can be bypassed if clients directly connect and you are using insecure auth
""
string
ns_report_server_to_masterserver
Whether your server should report itself to the masterserver, for use in auth and the serverbrowser
1
0-1
ns_report_sp_server_to_masterserver
Whether your server should report itself to the masterserver if started on a singleplayer map, for use in auth and the serverbrowser
0
0-1
ns_auth_allow_insecure
Allows clients to join your server without authenticating with the masterserver, currently required to allow clients to connect directly to your IP, rather than through the server browser
0
0-1
ns_erase_auth_info
Whether your server should erase authentication information after it is used, this is useful for development but should normally be kept at 1
1
0-1
ns_player_auth_port
The port used for the server's local authentication server, this is the TCP port we forwarded earlier
8081
1-65535
everything_unlocked
Whether all items, weapons, etc should be unlocked on the server
1
0-1
ns_should_return_to_lobby
Whether the server should return to private match lobby after completing a game, if 0, this will go to the next map/mode in the playlist
1
0-1
ns_private_match_only_host_can_change_settings
If 0 Players can change all match settings. If 1 Players can only change map and gamemode. If 2 Players can change nothing
0
0-2
ns_private_match_countdown_length
Length is seconds before the match is started after the start button in the lobby
15
int
ns_private_match_last_mode
Forces the lobby to a specifig Gamemode
tdm
Any Gamemode
ns_private_match_last_map
Forces the lobby to a specifig map
mp_forwardbase_kodai
Any Map
ns_disallowed_weapons
Blacklists weapons
List of Weapons separated by a comma
ns_disallowed_weapon_primary_replacement
Replaces blacklisted weapons by one weapon
a Weapon
ns_should_log_unknown_clientcommands
Whether unknown clientcommands should be printed in the console, worth disabling if they get on your nerves
1
0-1
net_chan_limit_mode
If 0, don't limit the netchannel processing time individual clients are allowed. If 1, kick clients that go over the limit. If 2, log clients that go over the limit in console
2
0-2
net_chan_limit_msec_per_sec
The number of milliseconds of server netchan processing time clients can use per second before triggering the response set in net_chan_limit_mode
30
int
base_tickinterval_mp
The delay between each tick ran on the server, your tickrate will be 1 divided by this value
0.016666667
float

Gamemodes

Gamemodes can be forced by the server using the +mp_gamemode startup arg
If ran on a server with the ns_should_return_to_lobby 0 convar, one should also set gamemodes in ns_private_match_last_mode convar

Vanilla

Playlist
Title
private_match
Private Match
aitdm
Attrition
at
Bounty Hunt
coliseum
Coliseum
cp
Amped Hardpoint
ctf
Capture the Flag
fd_easy
Frontier Defense (Easy)
fd_hard
Frontier Defense (Hard)
fd_insane
Frontier Defense (Insane)
fd_master
Frontier Defense (Master)
fd_normal
Frontier Defense (Regular)
lf
Live Fire
lts
Last Titan Standing
mfd
Marked For Death
ps
Pilots vs. Pilots
solo
Campaign
tdm
Skirmish
ttdm
Titan Brawl
Playlist
Title
alts
Aegis Last Titan Standing
attdm
Aegis Titan Brawl
ffa
Free For All
fra
Free Agents
holopilot_lf
The Great Bamboozle
rocket_lf
Rocket Arena
turbo_lts
Turbo Last Titan Standing
turbo_ttdm
Turbo Titan Brawl

Northstar.Custom

Playlist
Title
chamber
One in the Chamber
ctf_comp
Competitive CTF
fastball
Fastball
gg
Gun Game
hidden
The Hidden
hs
Hide and Seek
inf
Infection
kr
Amped Killrace
sbox
Sandbox
sns
Sticks and Stones
tffa
Titan FFA
tt
Titan Tag

Northstar.Coop

Playlist
Title
sp_coop
Singleplayer Coop

Weapons

Weapon Code
Weapon name
mp_weapon_car
CAR
mp_weapon_alternator_smg
Alternator
mp_weapon_hemlok_smg
Volt
mp_weapon_r97
R-97
mp_weapon_hemlok
Hemlock rifle
mp_weapon_vinson
Flatline
mp_weapon_g2
G2
mp_weapon_rspn101
R-201
mp_weapon_rspn101_og
R-101
mp_weapon_esaw
Devotion
mp_weapon_lstar
L-STAR
mp_weapon_lmg
Spitfire
mp_weapon_shotgun
EVA-8 Auto
mp_weapon_mastiff
Mastiff
mp_weapon_dmr
DMR
mp_weapon_sniper
Kraber
mp_weapon_doubletake
Double Take
mp_weapon_pulse_lmg
Cold War
mp_weapon_smr
Sidewinder SMR
mp_weapon_softball
Softball

Maps

Maps can be set on autorotation using ns_should_return_to_lobby 0
First map of autorotation can be set using ns_private_match_last_map
A way to blacklist maps with autorotation do not exists.

Vanilla (mp)

Map
Title
mp_angel_city
Angel City
mp_black_water_canal
Black Water Canal
mp_box
Box
mp_coliseum
Coliseum
mp_coliseum_column
Pillars
mp_colony02
Colony
mp_complex3
Complex
mp_crashsite3
Crash Site
mp_drydock
Drydock
mp_eden
Eden
mp_forwardbase_kodai
Forwardbase Kodai
mp_glitch
Glitch
mp_grave
Boomtown
mp_homestead
Homestead
mp_lf_deck
Deck
mp_lf_meadow
Meadow
mp_lf_stacks
Stacks
mp_lf_township
Township
mp_lf_traffic
Traffic
mp_lf_uma
UMA

Vanilla (sp)

Map
Title
sp_training
The Pilot's Gauntlet
sp_crashsite
BT-7274
sp_sewers1
Blood and Rust
sp_boomtown_start
Into the Abyss - Part 1
sp_boomtown
Into the Abyss - Part 2
sp_boomtown_end
Into the Abyss - Part 2
sp_hub_timeshift
Effect and Cause - Part 1 or 3
sp_timeshift_spoke02
Effect and Cause - Part 2
sp_beacon
The Beacon - Part 1 or 3
sp_beacon_spoke0
The Beacon - Part 2
sp_tday
Trial by Fire
sp_s2s
The Ark
sp_skyway_v1
The Fold Weapon