# Getting Started

<p class="callout info">If you have not installed EvoSC already, you can follow [this guide](https://wiki.evotm.com/books/evosc/page/download-installation "Download & Installation").</p>

### Bugs, issues or suggestions

If you found a bug or have a issue with EvoSC, please make a report in the Github issues: [https://github.com/EvoTM/EvoSC/issues](https://github.com/EvoTM/EvoSC/issues)

If you also have a suggestion or improvement to the controller, you can post them there as well. Any other general questions can be asked in our Discord server.

### The directory structure

In the EvoSC installation there are three noteworthy directories:

- **config** - Contains all the configuration files for the controller and its modules.
- **logs** - In this directory the auto-generated logs will be placed. This is the place to look for figuring out issues with the controller.
- **modules** - This is where you can install any third-party modules you may find desirable.

It may happen at times that you would find the **cache** folder interesting as you may need to clear or modify the cache in order to fix some problems.

### Add yourself as master admin

Before you do anything, you may want to add yourself as a master admin so that you have access to all the features in-game. To do this you can run the command:

**NOTE:** For TM2020, your login is NOT your Ubisoft Connect username. To find your login, go to [https://trackmania.io](https://trackmania.io), look up your Ubisoft Account in the "Players" tab and go to your profile. Copy the value listed in the Login field.

```shell
php esc add:admin YourLoginHere
```

If you are already on your server, you will have to rejoin for the rights to take effect.

### The server configuration

You can find the server configuration in the file **config/server.config.json**. This file might be useful to know about to edit some the behavior of the controller and connection to the dedicated server. Here are explanation for some of options:

<table border="1" id="bkmrk-option-description-l" style="border-collapse: collapse; width: 100%; height: 290px;"><tbody><tr style="height: 29px;"><td class="align-center" style="width: 28.7654%; height: 29px;">**Option**</td><td class="align-center" style="width: 71.2346%; height: 29px;">**Description**</td></tr><tr style="height: 29px;"><td style="width: 28.7654%; height: 29px;">`login`</td><td style="width: 71.2346%; height: 29px;">The login of your dedicated server account.</td></tr><tr style="height: 29px;"><td style="width: 28.7654%; height: 29px;">`ip`</td><td style="width: 71.2346%; height: 29px;">The host/IP address of your dedicated server.</td></tr><tr style="height: 29px;"><td style="width: 28.7654%; height: 29px;">`port`</td><td style="width: 71.2346%; height: 29px;">This is the XMLRPC port of your dedicated server.</td></tr><tr style="height: 29px;"><td style="width: 28.7654%; height: 29px;">`rpc.login`</td><td style="width: 71.2346%; height: 29px;">The super admin username of your dedicated server.</td></tr><tr style="height: 29px;"><td style="width: 28.7654%; height: 29px;">`rpc.password`</td><td style="width: 71.2346%; height: 29px;">The super admin password of your dedicated server.</td></tr><tr style="height: 29px;"><td style="width: 28.7654%; height: 29px;">`default-matchsettings`</td><td style="width: 71.2346%; height: 29px;">This is the file that will be the default MatchSettings file of your server.</td></tr><tr style="height: 29px;"><td style="width: 28.7654%; height: 29px;">`map-cooldown`</td><td style="width: 71.2346%; height: 29px;">This option controls how often a map can be played. The numnber indicates how many maps must be played before a map can be played again.</td></tr><tr style="height: 29px;"><td style="width: 28.7654%; height: 29px;">`afk-timeout`</td><td style="width: 71.2346%; height: 29px;">How long a player must stay afk for them to be forced into spectator mode.</td></tr><tr><td style="width: 28.7654%;">`echoes.join`</td><td style="width: 71.2346%;">If enabled, the controller will show player join messages in the chat.</td></tr><tr style="height: 29px;"><td style="width: 28.7654%; height: 29px;">`echoes.leave`</td><td style="width: 71.2346%; height: 29px;">If enabled, the controller will show message of players leaving the server.</td></tr></tbody></table>

### Customizing the theme

The file **config/theme.config.json** contains options for customizing the colors of your EvoSC installation.

- Under the `chat` option, you can find several colors for modying a message.  
    
    - The `text` option controls the color of messages from players in the chat.
    - The other options controls the colors for informational messages like info or error messages.
- The options under the `hud` part is used for controlling the color of the widgets and windows of the controller. 
    - `accent` - This is the general color of the controller, the header of the widgets and windows will have the color of this option.
    - The `text-*` options controls the colors of the text in the widget and windows.
    - `bg-*` options controls the background colors of the windows and widgets.

All the colors are based on the HTML HEX color format. You can find a color picker that generates these HEX values [here](https://www.google.com/search?q=color+picker).

<p class="callout info">The colors under the chat option uses a slightly different format. The general text formatting of the Trackmania games uses a three digit hex code instead of six. You can find some colors and read more about it [here](https://doc.maniaplanet.com/client/text-formatting).</p>

### Enabling and Disabling modules

The modules are what gives EvoSC it's features and functionality in general. Every module has a configuration file attached to them. You can find these under the **config/** directory.

In a module config file there is always a option called `enabled`. You can enable a module by setting this to `true` and disable it by setting it to `false`.

### Adding maps from Trackmania Exchange

You can find a bunch of maps from the exchange websites, there are two exchange websites in concern for this controller:

For Trackmania 2020 use [https://trackmania.exchange](https://trackmania.exchange)  
For Trackmania 2 use [https://mx.mania-exchange.com](https://mx.mania-exchange.com)

You can easily add maps from TMX/MX with the add command. In order to add a map, find your map on the exchange website and note down the **Track ID**. Then add the map with the command:

```
//add track-id
```

Where **track-id** is the numeric id you noted down.