Setting Up a Server: Difference between revisions

From Eco - English Wiki
[checked revision][unchecked revision]
No edit summary
→‎Package From Repositories: Add NixOS install/run instructions.
Line 112: Line 112:
</syntaxhighlight>
</syntaxhighlight>


NixOS:
steamcmd is packaged on NixOS.  You will also need a modified steam-run to actually run Eco.  Bring both into an ephemeral shell with:
nix-shell -p steamcmd '(steam.override {extraPkgs = pkgs: [ openssl libgdiplus ]; }).run'
And then run Eco with:
steam-run ./EcoServer
Docker:
Docker:



Revision as of 15:43, 13 December 2023

Eco servers are relatively easy to get running, and there are a couple of ways to set one up.

If you own the game through Steam, you can get the server files and run the server through Steam. If you have a Strange Loop Games account, you can download the server files directly through Eco's website.

There are many server hosting companies that offer to host for Eco servers if you don't want to or can't run an Eco server on your computer.

Server Through Steam

Installing

Eco server download location in Steam.

To run an Eco server through Steam, you must also own the game on Steam.

First, download and install the server. To do this, go to Steam -> Library -> Tools. There should be an entry in there called "Eco Server". Installing this will provide you with a copy of an Eco server that you can launch through Steam. The server is installed to:

Steam\steamapps\common\Eco Server

Running

The server can be launched like any other Steam game. It will show up in your recently played games if it has been run recently, or it can be launched through the Tools section of your Steam library.

You are also able to navigate to the server's install location and launch EcoServer.exe manually.

Automating Launch

Windows

Task Scheduler
  • Create a new task
  • Running as User whether Logged on or Not
  • Trigger at system start up
  • Create a bat program, update the directory to wherever you have it installed if different, with the following:
    cd "C:\Program Files (x86)\Steam\steamapps\common\Eco Server\"
    EcoServer.exe
    Setting the directory is important here as it will not start the server successfully if you try to do this using start /d "path" "executable" or by calling the executable directly.

Updating

Eco Servers installed through Steam will update automatically just like any other Steam game.

To use other versions besides the current release, you can opt into "betas" like other Steam games. This can be done by viewing the server in your Steam Library -> Tools, right-clicking the server and selecting the properties, click the "Betas" tab, and selecting a different version from the drop-down.

If the drop-down menu has no options available, leave the code blank in the box below the drop-down and click "Check Code". You might need to close out of the properties window and re-open it to see the betas list after entering the blank code.

Updating a Steam server will not wipe the world, but may wipe configurations. Make sure you back up your configuration files before updating.

Server Through SteamCMD

Installing

Another way to install the Eco Server is to download it through SteamCMD. Steam WIKI article about steamCMD

Download steamCMD, unpack and launch it.

Downloading SteamCMD

Windows

1. Create a folder for SteamCMD.

For example: D:\steamcmd 2. Download SteamCMD for Windows: https://steamcdn-a.akamaihd.net/client/installer/steamcmd.zip

3. Extract the contents of the zip to the folder.

Linux

Create a user account named steam to run SteamCMD safely, isolating it from the rest of the operating system.

Warning: Do not run steamcmd while operating as the root user. Doing so is a security risk.

1. As the root user, create the steam user:

sudo useradd -m steam # Add a new user named 'steam'
sudo passwd steam

2. Go into its home folder:

sudo -u steam -s
cd /home/steam
Package From Repositories

1. It's recommended to install the SteamCMD package from your distribution repositories, if available:

Ubuntu/Debian:

sudo apt update
sudo apt install steamcmd

Note: If you are using a 64-bit machine, you will need to add multiverse:

Dont forget to update, if you add multiverse before installing.

sudo add-apt-repository multiverse
sudo apt install software-properties-common
sudo dpkg --add-architecture i386
sudo apt update
sudo apt install lib32gcc-s1 steamcmd

RedHat/CentOS:

yum install steamcmd

Arch Linux:

git clone https://aur.archlinux.org/steamcmd.git
cd steamcmd
makepkg -si

Note: You will need to have the base-devel package installed to execute makepkg:

sudo pacman -Syy base-devel

2. Link the steamcmd executable:

sudo ln -s /usr/games/steamcmd /home/steam/steamcmd

NixOS:

steamcmd is packaged on NixOS. You will also need a modified steam-run to actually run Eco. Bring both into an ephemeral shell with:

nix-shell -p steamcmd '(steam.override {extraPkgs = pkgs: [ openssl libgdiplus ]; }).run'

And then run Eco with:

steam-run ./EcoServer

Docker:

If your server is running Docker, you can simply use:

docker run -it --name=steamcmd cm2network/steamcmd bash

steamcmd.sh is located at /home/steam/steamcmd.

This image can be used as a base image for Steam-based dedicated servers. Example: [2]

You can find the associated Docker Hub page here: [3]

Manually

1. Before you begin, you must first install the dependencies required to run SteamCMD:

Ubuntu/Debian (x86-64):

sudo apt-get install lib32gcc-s1

RedHat/CentOS (x86-64):

yum install glibc.i686 libstdc++.i686

2. As the root user, escalate to the steam user:

su - steam

If you're not logging in as root and you instead use sudo to perform administration, escalate to the steam user as follows:

sudo -iu steam

3. Create a directory for SteamCMD and switch to it.

mkdir ~/Steam && cd ~/Steam

4. Download and extract SteamCMD for Linux.

curl -sqL "https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz" | tar zxvf -

5. Install tmux and/or screen for easy server management.

sudo apt-get install tmux screen -y;

Manually

Set the install directory by typing:

force_install_dir ./Eco_Server

Guide to downloading the server manually through SteamCMD: Double Click the steamcmd.exe Wait until it finishes updating and deploying SteamCMD Once loaded login by typing in:

login anonymous

This will install the server in a subdirectory within the SteamCMD directory called "Eco_Server". Finally to download the server itself type:

app_update 739590 validate

This will download the server. Or when you want to update the server will start downloading the latest version overwriting all the files of the downloaded server.

(Please make sure you do not run your server from the same directory just in case you decide to use this method to update and forget to back up your data.)

With a bat file

If you want to use a batch file (.bat) make a batch file and put one of the following codes into the file. These commands assume the .bat file is located inside the SteamCMD directory or pointing towards it.

Suggestion A:

steamcmd.exe +login anonymous +force_install_dir "./Eco Server" +app_update 739590 validate +quit

Suggestion B:

steamcmd.exe +@ShutdownOnFailedCommand 1 +@NoPromptForPassword 1 +login anonymous +force_install_dir "./Eco Server" +app_update 739590 validate +quit

These commands will automatically download the eco-server and place it in a folder named "Eco Server". (Inside the SteamCMD folder). Please copy the new folder and the server data in it to the location you want to host your server from.

When needing to update that server just run the .bat file again and it will update the base game server files inside the SteamCMD then you can follow the other update instructions to update your game server.

Do not run the downloaded server inside the SteamCMD folder itself. You want to keep that version as a backup and reference to an unedited server.

Server Without Steam

Installing

Eco server download location on Strange Loop Games website.

To run a server locally without Steam, you first need to grab the server files from Strange Loop Game's website under "Account". This requires you to sign in to your SLG account and to have purchased Eco through that account or a linked Steam account. On the account page, there is a section that lists the current version of Eco and the current staging release with download links for both. Clicking on the "Server" link for the version you want will download a .zip file of the server.

When the server is done downloading, move the .zip file to wherever you want to install the server. It is recommended to install the server into an empty folder. When you have the .zip file in the location where you want to install the server, unzip it using whichever compression program you prefer (common programs include WinRar, 7-zip, and WinZip).

At this point, your install folder should have a handful of folders with various files and the EcoServer.exe. You are now able to run your server but to make the server publicly visible, you need to do port forwarding. The process for port forwarding is different for different routers, and there are plenty of detailed tutorials on how to this process around the internet. The ports you need to open are 3000 UDP and 3001 TCP.

IMPORTANT If you are installing a dedicated server on the same computer you have or will be running the client from, Network.eco will need to use 2 different ports other then 3000 and 3001. [Example = 4000 and 4001] Port Forward these two new ports.

Running

To run the server, you just have to launch the EcoServer.exe file in the server's install.

The first time the server is run it may take a while for the world to generate. This is normal. Some settings, such as the world's size, can make this a longer or shorter wait. The main server UI won't appear until the world is done generating and loading.

Updating

Updating the server must be done manually. This will require you to go back to SLG's website and download the new version of the server files. You can replace the older version of the server files with the newer version's files. But if you want to keep the same world and the same configuration settings, you have to make sure not to overwrite those files (the Storage and Configs folders).

It is a good idea to always back up your server files before updating. That way you can revert to the old version if the install gets messed up or if there is some issue with the new version.

See Updating a Server for more details on updating your server manually.

Configuring

Template:Main There are tons of options for configuring your server and your playing experience. You can edit these options by directly changing the files in the Configs folder of the server with any text editor. But doing the edits manually, you will need to restart the server to see the changes in-game. Most of these configurations can be changed from the server UI as well, and changes made in the UI don't require a restart from the server.

If you are going to be playing on the same PC as the PC you are hosting the server from please change your ports to something else. The recommended ports are:

- Game Server Port: 3000 UDP (or UDP/TCP)

- Web Server Port: 3001 TCP (or UDP/TCP)

See Setting Up a Server (advanced) for more details on configuring your server.

Configuration Notes

  1. Edits to WorldGenerator.eco require a server wipe to take effect.
  2. Whitelisting allows whitelisted players to ignore the requirement for a password but for whitelisting to work you must set a password.
  3. When changing the map size keep the map values divisible by 4 or risk severe issues.
  4. When changing map height and depth you will have to do the maths to keep issues away, it is not recommended.
  5. When setting up whitelists/admins you must use either an SLG id or Steam64 id, just writing the username does not work. Here is a link to find your steam64id: http://www.steam64.com

Server Folder Breakdown

  • Configs — Files in this folder contain the configurable settings for the server. You can edit any of the .eco files with a text editor but be careful doing so. Keep in mind none of your edits here will take effect unless you restart your game server (Turn it off and on again.)
  • doc — Contains a single file with definitions for the webserver.
  • Logs — This folder only appears if you've installed a mod that has crashed. It contains mod crash logs.
  • Dump — Contains crash dump files for when the server crashes.
  • Mods — Contains server game data. This is also the folder where you should place any mods you've made or downloaded.
  • Storage — This folder contains a backups folder, a file named "Game.db" and a file named "Game.eco". This is where your current game saves is. When wiping the server data/map this is where you will have to go.
  • Web Client — The web server files are found here.

Eco Server UI

Eco server configuration GUI

The server UI provides access to a wide variety of configuration options. Changes made to config options in the UI will apply to the server without needing to restart the server. However, with any changes you make (such as adding an admin), you must click "File" and "Save" or else you will lose the changes upon reloading the server.

If you are renting a server through a server hosting company, you most likely do not have access to the default server UI. These companies usually provide a custom UI or other options for easily editing the server's configs.

Commands

See Chat Commands for a complete list of commands that are available to both admins and regular users in a default server.

Server UI Notes

(Please do check the normal configuration notes too.)

1. Changing world generator settings won't take effect until you wipe and regenerate the map. This includes map sizes.

2. When making a change to your settings through the Server UI remember to click on file -> save to save the edit to the config files.

Connecting to your server

LAN

When first attempting to connect to your server, make sure it is running, then enter your game and visit the server browser.

Your server should appear in the server list under "LAN". If the server is public, you should be able to see it in the server browser.

Note: The latest server versions don't require you to forward your ports, but server versions before 0.7.4 require manual port forwarding. If you are using an older server version you will have to manually forward.

Getting others to connect to your server

NOTE: Before giving others your IP please check that your server is visible with either of these websites:

Default ports to check are: 3000-UDP and 3001-TCP (Unless you changed them in the config phase.)

Gameport needs UDP and web port needs TCP (Both can be used for each if you want).
3000-TCP might be used when downloading mods from the server, but this is not totally confirmed.

Navigate to https://www.whatismyip.com/ and grab your public IP.

Now add the server's configured game port at the end. (Game Port not Web Port) It should look something like this: xxx.xx.xx.xx:3000

For example: 290.94.93.89:3000

Now that you have the server address. Give that to your friends and they should be able to connect if you've set up the server correctly.

Troubleshooting

See Setting Up a Server (advanced) for more details on server troubleshooting.

NAT and Network Settings

(NOTE: NAT Punchthrough has been added since version 0.7.4 of the server and NAT based settings have been removed)

You can view the NAT settings for your server in the Network tab of the server UI. When the Network tab is clicked (tab, not the menu option at the top of the UI) it will show 3 tabs, Config, Display, and Graphs. The Display tab will show the status of NAT, and the Config tab will allow you to enable or disable auto-detection for NAT.

The Network option in the top menu of the server UI has a button to refresh NAT. This will cause the server to recheck the NAT and can potentially solve some NAT issues.

Anti-Virus / Firewall

Some Anti-Virus solutions will block your server from talking and subsequently prevent players from seeing it online.

Either allow the game ports to function through the Anti-Virus.

When it comes to firewalls and NAT your router may not be working correctly with NAT or not have it at all so you may have to manually port forward your ports. On both your pc firewall and the router. See Setting Up a Server (advanced) for more details.

For Further Help

Join the Template:Eco Discord and visit the #server-help channel for support.