aboutsummaryrefslogtreecommitdiff
path: root/docs/hosting-a-server-with-northstar
diff options
context:
space:
mode:
Diffstat (limited to 'docs/hosting-a-server-with-northstar')
-rw-r--r--docs/hosting-a-server-with-northstar/basic-listen-server.md32
-rw-r--r--docs/hosting-a-server-with-northstar/dedicated-server.md18
-rw-r--r--docs/hosting-a-server-with-northstar/prerequisites.md48
3 files changed, 98 insertions, 0 deletions
diff --git a/docs/hosting-a-server-with-northstar/basic-listen-server.md b/docs/hosting-a-server-with-northstar/basic-listen-server.md
new file mode 100644
index 0000000..c4e5a5b
--- /dev/null
+++ b/docs/hosting-a-server-with-northstar/basic-listen-server.md
@@ -0,0 +1,32 @@
+# Hosting a basic Listen Server
+
+## Instructions
+
+To host a listen server on Northstar, go to the lobby and press the `Private Match` button to begin a private match.
+While this does allow you to host a server, other people won't be able to join it, so you'll need to port forward 2 ports to allow other people to join.\
+The ports you'll need to forward are `37015` UDP, and `8081` TCP by default, if this works as it should, this should result in your server being displayed on the server browser, and other clients being able to connect to it.\
+![screenshot select private match](https://raw.githubusercontent.com/R2Northstar/Northstar/main/wiki/lobbyprivatematch.png)
+
+## Server Configuration
+Whether you're running a listen or dedicated server, you'll generally want to mess with the configuration at least a bit. While I do think the default configuration settings are pretty ok, being able to change your server's name or password, or increasing your server's tickrate is often something you'll want to do. Server configuration can be modified in the file `R2Northstar/mods/Northstar.CustomServers/mod/cfg/autoexec_ns_server.cfg`, which will be executed on server startup.
+
+Below are a series of variables and commands you can use for server configuration:
+| Name | Description | Default Value |
+| ---- | ----------- | ------------- |
+| `ns_server_name` | Your server's name on the server browser | `"Unnamed Northstar Server"` |
+| `ns_server_desc` | Your server's description on the server browser | `"Default server description"` |
+| `ns_server_password` | The password required to join your server, can be bypassed if clients directly connect and you are using insecure auth | `""` |
+| `ns_report_server_to_masterserver` | Whether your server should report itself to the masterserver, for use in auth and the serverbrowser | `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` |
+| `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` |
+| `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` |
+| `ns_player_auth_port` | The port used for the server's local authentication server, this is the TCP port we forwarded earlier | `8081` |
+| `everything_unlocked` | Whether all items, weapons, etc should be unlocked on the server | `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` |
+| `ns_should_log_unknown_clientcommands` | Whether unknown clientcommands should be printed in the console, worth disabling if they get on your nerves | `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` |
+| `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` |
+| `base_tickinterval_mp` | The delay between each tick ran on the server, your tickrate will be 1 divided by this value | `0.016666667` |
+| `sv_updaterate_mp` | The maximum number of times per second your server will send information to connected players, if a player's cl_updaterate_mp value is lower than this, their rate will be limited to it | `20` |
+| `sv_max_snapshots_multiplayer` | The number of snapshots stored locally for use in replays, this should be set to sv_updaterate_mp * 15 | `300` |
+| `host_skip_client_dll_crc` | Whether the server should allow clients with modified client.dll files to connect, these are used for visor colour edit mods | `1` |
diff --git a/docs/hosting-a-server-with-northstar/dedicated-server.md b/docs/hosting-a-server-with-northstar/dedicated-server.md
new file mode 100644
index 0000000..2c00297
--- /dev/null
+++ b/docs/hosting-a-server-with-northstar/dedicated-server.md
@@ -0,0 +1,18 @@
+# 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`.
+
+## 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.
+
+## Hosting on Linux
+
+> **TODO:** If you got experience with hosting a dedicated server on Linux as well as setting up a dedicated server in container environments please extend this section.
+
+[This issue thread on Github](https://github.com/R2Northstar/Northstar/issues/49) contains some instructions to succesfully host a dedicated server on Linux.
diff --git a/docs/hosting-a-server-with-northstar/prerequisites.md b/docs/hosting-a-server-with-northstar/prerequisites.md
new file mode 100644
index 0000000..e567340
--- /dev/null
+++ b/docs/hosting-a-server-with-northstar/prerequisites.md
@@ -0,0 +1,48 @@
+# Prerequisites
+
+**TL;DR:** Port forward `37015` (UDP) and `8081` (TCP)
+
+Make sure you already installed Northstar [as described here](../installing-northstar/basic-setup.md).
+
+## Check whether you can port forward:
+
+In order for others to join your game they need to be able to reach you. Most likely your router acts as a NAT so you need to port forward two ports to your PC for [NAT traversal](https://en.wikipedia.org/wiki/NAT\_traversal).
+
+## CGNAT
+
+First we want to make sure you're not behind a [CGNAT](https://en.wikipedia.org/wiki/Carrier-grade\_NAT) as this basically means you won't be able to host at all.
+
+For this find out your external IP address [by visiting this site](https://www.whatsmyip.org).
+
+Then [open CMD](https://www.lifewire.com/how-to-open-command-prompt-2618089#toc-open-command-prompt-in-windows-10) and type in:
+
+```
+tracert <your external IP address here>
+```
+
+if only your external IP address shows up when the commands exits you're good.
+
+If you get 2 entries or more you're likely behind a [CGNAT](https://en.wikipedia.org/wiki/Carrier-grade\_NAT). Your only options in this case are either to ask your ISP to give you a public IP address or check whether at least your IPv6 address is public.
+
+## Port forwarding
+
+Access your router via it's web interface and port forward
+
+* `37015` (UDP) for game logic
+* `8081` (TCP) for Northstar auth so your server shows up in server browser
+
+to your PC that you're running Northstar on.
+
+## Final checks
+
+To check whether you set everything up correctly, start the game via Northstar and go into a private match. Another Northstar user should now be able to see your server on the server browser.\
+Note that by default your server is called `Unnamed Northstar Server`. You can change this as described below.
+
+## Extras:
+
+Northstar uses a config file to set various settings for your custom server. The file is located at `Titanfall2\R2Northstar\mods\Northstar.CustomServers\mod\cfg\autoexec_ns_server.cfg`
+
+In particular:
+
+* `ns_server_name` sets the name of your server on the server browser. You probably want to change this to something the people you play with recognise.
+* `ns_auth_allow_insecure` decides whether to allow players not authenticated with Northstar master server. Change the value from `0` to `1` if you want to play with vanilla clients. To find out what else you need to do for vanilla clients to join, read [the instruction for setting up Northstar for PUGs](Northstar-PUGs-Setup/).