/EvoSC

EvoSC is a modern servercontroller for Trackmania² running on PHP/7.2 or newer.

Primary LanguagePHPGNU General Public License v3.0GPL-3.0

EvoSC

Status GitHub Discord Patreon Paypal

A server controller for Trackmania² based on PHP 7.2 with Maniaplanet 4.1 support.

⚠ WARNING: The controller is not ready to run stable on a live server in its current state.

Requirements

  • PHP 7.2+
  • MySQL or MariaDB Server

Installation (From GitHub)

Requirements
  • Composer
Clean installation
  1. Clone project git clone https://github.com/EvoTM/EvoSC.git.
  2. Switch to the new directory.
  3. Install required packages with composer install.
  4. Run EvoSC with php esc run.
⚠ If the cache and log folder are not created automatically, you need to create them and restart the controller.
Updating a github installation
  1. Go to the EvoSC directory you want to update and run git pull.

Music server installation

Download the music-server and extract it to your webserver with the ogg-files. Copy the music.config.json from the music-client-module directory to your config directory and set url to the URL of your webserver.


EvoSC CLI

Get all available commands php esc list

Action Description
Run EvoSC In terminal type php esc run (-v|-vv|-vvv)
Import data from UASECO In terminal type php esc import:uaseco {host} {database} {user} {password} optionally add {table_prefix}
Fix player scores and ranking Run php esc fix:scores to re-calculate all scores and fix the player ranks.
Creating a database migration Run php esc make:migration <MigrationClassName>. The migration is saved to to /Migrations. Copy it to your module if necessary.

Basic Documentation

Modules

Each module must contain a base class in the esc\Modules namespace and a module.json containing:

{
  "name": "",
  "description": "",
  "author": "",
  "version": 1.0
}

Modules can contain Templates, Classes, Models and Database-Migrations. The constructor of the base class is called on controller start, after all controllers have been started. Configs are in json format and are located at the base directory of your module. Name it as your-config-file.config.json, it will automatically be loaded on controller-start.