Guide: Dedicated Server: Difference between revisions
(added install info) |
(added dataPath info) |
||
Line 37: | Line 37: | ||
Optional: you can move/copy the shortcut, to your desktop and/or your new VintagestoryServer folder | Optional: you can move/copy the shortcut, to your desktop and/or your new VintagestoryServer folder | ||
While the following tutorial is for using different versions of the game on a single machine, the latter half deals with setting a dataPath: | While the following tutorial is for using different versions of the game on a single machine, the latter half deals with setting a dataPath; skip to 2:57: | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! | ! How do I...? by Shi No Hakobi-te | ||
|- | |- | ||
| <youtube width="200" height="120">lAeiF6ec6Sw?t=155</youtube> | | <youtube width="200" height="120">lAeiF6ec6Sw?t=155</youtube> | ||
|} | |} | ||
Line 79: | Line 79: | ||
=== Customize world === | === Customize world === | ||
See [[Preset_playstyles]] | |||
=== Add/remove mods === | === Add/remove mods === |
Revision as of 19:18, 11 July 2024
Note
When (default)
appears before a piece of information, it's a reminder that the instructions need to be adjusted if the reader did not use the default settings.
When (example)
appears before a piece of information, it's a reminder that if the reader used the example provided earlier, then they should have the outcome displayed at this point.
Dedicated server on Windows
Below is a detailed guide for creating a multiplayer server on a computer using Windows operating system.
Last verified for
Windows 11 Home
version 23H2
64-bit operating system
Install Vintage Story
When you install Vintage Story for singleplayer, you get more than one program file. Inside default path %AppData%/Vintagestory
should be both Vintagestory.exe and VintagestoryServer.exe.
Reminder: Forum and game accounts are currently separate. Log in to account.vintagestory.at rather than vintagestory.at to go directly to the downloads area.
Unless you specifically want to use an older version of the game, use the Recommended Download buttons. Presumably you already downloaded the game for singleplayer use and have updated to the latest version. If you intend to host from a machine separate than the one you play on, you also need to install the game on the host machine; the process is no different.
Set data path
If you intend to host from the same machine that you play on, it's highly advisable to designate a separate area for the server data, so it doesn't get mixed up with your singleplayer data (save files, settings, etc).
Shortcut method:
- Navigate to the location where you will store the server's data, such as a new VintagestoryServer folder created in
C:\Users\YourUsername\AppData\Roaming
- Create a folder for the server's data and give it a clear name, such as VSserverData
- Open that folder and copy the entire path from the address bar of File Explorer. (example:
C:\Users\YourUsername\AppData\Roaming\VintagestoryServer\VSserverData
) - Open the game's application folder; it is
%appdata%/VintageStory
by default. - Create a shortcut of
VintagestoryServer.exe
. This can usually be accomplished through the right-click menu; google instructions specific to your operating system version if needed. - Open the Properties of the new shortcut. This can usually be accomplished through the right-click menu.
- Click in the Target field of the shortcut's Properties, then go to the very end of what's written there. Add one space, then
--dataPath=
, then Paste the folder path you copied earlier, in quotes. The entire contents of the Target field should now be something like this:"C:\Users\YourUsername\AppData\Roaming\Vintagestory\VintagestoryServer.exe" --dataPath="C:\Users\YourUsername\AppData\Roaming\VintagestoryServer\VSserverData"
Optional: you can move/copy the shortcut, to your desktop and/or your new VintagestoryServer folder
While the following tutorial is for using different versions of the game on a single machine, the latter half deals with setting a dataPath; skip to 2:57:
How do I...? by Shi No Hakobi-te |
---|
Batch script method (functionally equivalent to the shortcut method above):
- To create a batch script, simply create a blank text document and rename it with the .bat file extension.
- You can edit it by right clicking and selecting edit. Then just type
%appdata%/Vintagestory/VintagestoryServer.exe --dataPath "[PATH]"
replacing [PATH] with the desired path for the server's data, then save and close.
Running the script will run the server with the alternate datapath, and will generate its own collection of config files there. This is functionally equivalent to the modified link.
Next:
- Run the shortcut you made of
VintagestoryServer.exe
or the batch script. This should create an array of subfolders (such as Mods) inside the VSserverData folder. - Close the server for now.
Configure router/firewall
A firewall is a device or program that controls the flow of network traffic involving different security levels. If you want the server to be accessible from outside of your local network
Permanently open ports, like a 24/7 Minecraft server are much more prone to port scanning bots and subject to brute attacks from bots. Those applications should be protected with some safeguard mechanism like fail2ban on linux to block after too frequent login attempts.
You might need to forward port 42420 on your internet router if you want the server to be accessible from outside of your local network (for example, anyone who isn't on the same WiFi as you). The process for this varies significantly; google instructions for your specific router model. only needs to happen before step 4 if you want to advertise to master server
Run VintagestoryServer.exe
Run VintagestoryServer.exe; if you set a new dataPath, instead run the shortcut you made of VintagestoryServer.exe or the batch script. Step 5) If Windows Firewall asks for permission, grant any necessary access.
Find your IP address, and give it to the people who will be joining (external IP or local IP)
Set protections
It's highly advisable to put measures in place to prevent people with bad intentions from being able to harm your world. See Guide: Anti-grief protections
Customize world
Add/remove mods
Assuming that you set a custom data path (such as %AppData%/VSserverData
) and launched the server, there should now be a Mods folder within %AppData%/VSserverData
.
Inside %AppData%/VSserverData
should also be a serverconfig.json file, which can be edited with a program such as Notepad++. The ModPaths key indicates where the server should look for mods to load. For instance,
"ModPaths": [
"Mods",
"\\AppData\\VSserverData\\Mods"
],/
Option 1) You can download/paste mod zip files into %AppData%/VSserverData/Mods
. This is best done while the server is offline. Change made will take effect when the server is re-launched.
Option 2) You can use commands to install/remove mods, or list currently-installed mods. See List_of_server_commands/moddb
When a player attempts to join your server, they will be prompted to download your list of mods.
Only mods that are tagged as Server-side or Universal will be auto-downloaded in this way. Client-side mods would need to be manually added by the player to the server-specific subfolder within (default) %AppData%/VintagestoryData/ModsByServer
.
Gain admin powers
See List_of_server_commands#Privilege_Control
Dedicated server on Linux
This describes how to set up the server as a service on Linux systems.
Note: This section only works for x64 processors; if using ARM, please refer to the following section.
Requirements
- .NET Runtime 7.0 This should be all needed to run a Vintagestory server. Everything else is just for convenience to start and manage it.
- install
pgrep
,screen
andwget
using your systems package manager.
Setup the server
1. Download the game
Advice: Create a separate directory for Vintage Story as the tar.gz does not contain a subfolder.
mkdir server && cd server
Goto http://account.vintagestory.at/downloads
Copy the link of the newest "vs_server_linux-x64_*.*.*.tar.gz" package (Linux Server (.tar.gz) under Show other available downloads of Vintage Story)
Download with "wget" via console (Vintage Story version 1.18.8 in this example).
wget https://cdn.vintagestory.at/gamefiles/stable/vs_server_linux-x64_1.18.8.tar.gz
2. Extract tar.gz package
tar xzf vs_server_linux-x64_*.*.*.tar.gz
3. Make server.sh script executable
chmod +x server.sh
4. Edit server.sh file
For security reasons you should not run the server as root user, so by default USERNAME is set to vintagestory. On most linux operating systems you can create a user with the command adduser.
adduser vintagestory
Then change these options for your needs:
USERNAME='<your-vs-server-username>'
VSPATH='<your-vs-directory>'
5. Open the port at the firewall (if needed)
firewalld
firewall-cmd --permanent --zone=public --add-port=42420/tcp firewall-cmd --reload
iptables
iptables -A INPUT -p tcp -m tcp --dport 42420 -j ACCEPT
6. Server start and first steps
./server.sh start Wait for the startup to finish, then you can give yourself OP with ./server.sh command "/op <youusername>"
7. Connect to your IP/Domain and have fun
Dedicated Servers on ARM64
Note: Please note the ARM64 version is EXPERIMENTAL please report any issues to the discord .
Currently (in game version 1.19.3 - 1.19.4, February 2024) no ARM64 .NET7 version of the Harmony patching library is available. Therefore coded mods which use Harmony will not work on an ARM64 server. If a beta of the Harmony library becomes available in future, server owners can try installing it for themselves.
The ARM64 version is available on GitHub
I recommend using the install script located on the GitHub. The following is a step by step guide on how to use the script on a Debian based system (Ubuntu, Debian, Rasbian, etc).
1. Install the required dependencies to use this script by doing apt -y install curl jq
2. Create a new file named arminstall.sh
by running vim arminstall.sh
or nano arminstall.sh
3. Copy the contents of the arminstall.sh
file from GitHub to your newly created file and save it by using :wq
with Vim or Ctrl + X
, then Y
, then Enter
with Nano.
4. Make the script executable by running chmod +x arminstall.sh
5. Run the script by doing ./arminstall.sh
6. Start the server by using ./VintagestoryServer
or dotnet VintagestoryServer.dll
This will download the latest version of Vintagestory to the current working directory, then replace the needed files to work with ARM.
If at any time you want to update to the latest version of Vintage Story, simply run the script again.