Game servers

**This is a Server / Client based game, even when playing solo. It means 2 programs must run in order to play, even when playing solo locally to your own PC: one is the client, with the game graphics and UI you interact with, and one is the server: the actual program running the game itself.**

## Game saves

The server is the program that actually loads and manages the save files.

```
Save files are located in: **\AppData\Local\Ymir\saves**

```

* To access AppData -which is a folder hidden by default in windows- you can type *%AppData%* in the explorer bar and it will take you straight to it.
* Otherwise, the full address should be: *C:\Users\[USERNAME]\AppData\Local\Ymir\saves*

### Game backups

If the autobackup server setting has been enabled, the program will create an automatic save backup whenever it is shut down. Combined with the daily auto restart, this can guarantee regular backups of your server to recover from if something goes wrong.

```
By default, backups are located in: **\AppData\Local\Ymir\backups**

```

The localisation of that backup folder can be customized in the server's game\_settings.ini file.

## Starting a server

The game client can auto-launch and setup a server via the "NEW GAME" menu. However on some setups, the auto-launch is blocked by the OS and the server needs to be manually launched by creating an Ymir shortcut with appropriate arguments.

### Through the Client

The most straightforward way to start and setup a server is through the client: by starting or loading any local game, the program actually setups a new server and auto-executes it. Other players may then join the game provided the game settings allow it and that networking is correctly setup to allow for connections (port forwarding)

1. launch game client
2. go to "NEW GAME" and setup an new game or load an existing local save in "LOAD GAME"
3. a server will auto-launch
4. if the server does not auto-launch, proceed to the shortcut method below.

### Through a shortcut

A practical way to start a game server is also to create a game shortcut and add specific arguments so that the program starts in server mode.

1. create a shortcut of ymir.exe
2. go to properties and in the "target" field, add at the end: -server -save "GAMENAME" where GAMENAME is replaced by your game's name. If it doesn't exist, a new game will be auto created with that name, using default game settings from *AppData\Local\Ymir\server\_settings.ini*

How to create a new game with custom settings (refer to 'Server Settings' section below for details):

1. go to your *AppData\Local\Ymir\saves* folder
2. create a new folder with the desired name of your new game
3. copy *AppData\Local\Ymir\server\_settings.ini* into this folder
4. open it and customize the desired settings
5. create a shortcut of ymir.exe
6. go to properties and in the "target" field, add at the end: -server -save "GAMENAME" where GAMENAME is replaced by your new game's chosen name.
7. execute shortcut and it will launch the server and initialize your new game

## Port forwarding

For other players to join your server, you need to ensure your local network allows for the connection on the appropriate networking "port". This is called "port forwarding" and must be checked on your networking router and on any software firewalls you might have on the device running the server (usually just the Windows firewall).

```
The default networking port used by the game is in 14804 in **UDP and TCP**

```

1. The default port used when a new game server starts is defined in AppData\Local\Ymir\server\_setting.ini
2. The port used by an already existing game save is defined in AppData\Local\Ymir\saves\GAMENAME\game\_settings.ini and it overrides the default setting for this specific game (useful if running multiple servers on the same device where you have to assign a port for each running server)

## Server settings

```
The default settings used by game servers are in AppData\Local\Ymir\server_settings.ini

The settings for a specific game server are in AppData\Local\Ymir\saves\GAMENAME\server_settings.ini

```

If none is provided, the game specific server\_settings.ini file will appear after the game server has been run once. You can edit it to modify settings specific to this server instance and they override the default settings of the global server\_settings.ini.

The "[network]" section contains settings related to networking and are applied every time the server is started.

* default\_port: the default networking port this server instance will try to use
* is\_offline: if enabled, the server will not try to check player authentication with the steam servers
* is\_private: if enabled, the server will not be publicly listed
* password: if non empty, that password will be required for clients to connect to the server

The "[options]" section contains settings that are applied every time the server is started.

* preset: game preset to use for balance. 1= realtime mode, 2= persistent mode
* max\_players: number of max active players allowed
* autobackups: enable/disable the creation of auto backups when server shuts down.
* backup\_folder: optionnal custom location for auto backups. otherwise they go into \AppData\Local\Ymir\backups
* enable\_anticheat: enable/disable anti-cheating system that autobans players for cheating
* limit\_devices: enable/disable device restrictions for players: will block 2 characters from using the same device
* autosaving: enable/disable autosaving
* autosaving\_frequency: frequency of autosaving in minuts
* admin\_tools: unlocks some "admin tools" that allow to manually ban players, but doing so will move the server to the "custom games" tab in lobby
* restart\_time: UTC time at which the server will auto restart if the option is enabled
* daily\_restart: enable/disable daily auto-restarting. useful to keep server more stable and to create daily backups if the option is enabled
* autowipe: enable/disable the autowipe feature. autowipe will restart a new game after the game is won.
* autowipe\_delay: number of days after game is won before it auto-wipes and restarts, if auto wipe is enabled
* op\_language: the language files the server will use
* autorestart\_normal: if enabled, server auto-restarts in normal conditions (ex: with daily restart option). should remain enabled by default unless using an external program crash manager.
* autorestart\_on\_crash: if enabled, server will attempt to self-restart when crashing. disable if using an external program crash manager.
* private\_seed: if non-empty, combines with the world seed to generate a server unique seed which players can't access in order to prevent them from reverse-engineering the map and its resources.

The "[default\_newgame]" section contains settings that are **only used once** when a new game is started for the first time. Therefore a server\_setting.ini copy with the desired modified settings must exist in the game save folder before it is first loaded or these settings will have no effect. If no local copy of server\_settings exists in the save folder, the ones from the global server\_settings.ini are used by default instead.

* seed: the world seed to use when generating the world map and its territories
* map\_custom: name of a custom map to use instead of procedural generation
* map\_width: if not using a custom map, world map width size
* map\_height: if not using a custom map, world map height size
* map\_cont: if not using a custom map, number of desired main continents
* map\_sea: if not using a custom map, proportion of seas O to 10
* map\_relief: if not using a custom map, amount of relief 0 to 10
* map\_temp: if not using a custom map, temperature level 0 to 10
* spawn\_nb: if not using a custom map, the target number of initial spawns (primitive tribes) the world generator will try to place
* spwn\_dist: if not using a custom map, the minimum distance between spawns. note: 1.5 means half the spawns will consider a distance of 2, and half 1, resulting in a mix of both.

## Connecting to the server

### Connecting to your own local server

If the server is started through the client, your game client will auto-connect to the server when starting a new game or loading an existing one.

### Connecting through server lobby

If the server is on a different device (dedicated server, or connecting to a friend's server), you will need to connect to it by going into "JOIN GAME" in the main menu and look for it in the different server lobbies tabs.

### Connecting by direct IP

If the server does not appear on the public server lobbies (private games), you will have to connect to it via "direct IP" (the last tab in "JOIN GAME"). You will need

1. the server IP (or URL address). If connecting to a friend's game, he can retrieve his IP by simply googling "my IP" and then send it to you. If connecting to your own server, you can type *localhost* instead.
2. the server port (14804 if server host left it by default)
3. eventual password (leave empty if none)

## Dedicated servers

You do not need 2 copies of the game to run a dedicated server: there is a separate free "Steam app" for dedicated servers which allows you to run a server without needing to have the steam client running and logged in with an account owning a copy of the game.

The dedicated server app has to be downloaded and installed with a steam tool called "*Steam cmd*".

```
The dedicated server Steam app id is: 749070

```

Documentation about how to use steam cmd can be found here: https://developer.valvesoftware.com/wiki/SteamCMD

Steam CMD UI is an easy way to search for the dedicated server app ID and download the necessary files:
https://developer.valvesoftware.com/wiki/SteamCMDui

## Custom game settings

By default when creating a game, one of the 3 balance settings has to be selected: solo, realtime, or persistent but it is also possible to customize the game balance settings by adding a *balance\_settings.ini* file in the game save folder.