Skip to content

Next generation server controller for Trackmania written in C# using modern .NET

License

Notifications You must be signed in to change notification settings

EvoEsports/EvoSC-sharp

Repository files navigation


GitHub Code smells Bugs Code coverage Security rating Discord

EvoSC#

EvoSC# (spoken: EvoSC Sharp) is a server controller for Trackmania 2020 dedicated servers.

It has been written from the ground up to be modular, performant and easy to use.

It is currently still in development, so expect braking changes to happen at any time.

Goals

The goal of this server controller is to replicate the functionality of the existing EvoSC and expand on it.

In general, we want to make it more user-friendly, more robust and generally also implement functionality that users have long wished for but we weren't able to implement in the older version due to Technical Debt.

For a roadmap of planned features and what we're currently working on, have a look at the Project board.

Support

  • WE WILL NOT BE RESPONSIBLE FOR ANY DAMAGE OR DATA LOST DUE TO USAGE OF THIS SOFTWARE.
  • DO NOT USE IN A PRODUCTION SCENARIO, THE SOFTWARE IS STILL HEAVILY IN DEVELOPMENT.
  • DO NOT ASK FOR ASSISTANCE IN USING THE SOFTWARE IN ITS UNFINISHED STATE.

Developing for EvoSC#

To setup a development environment for EvoSC#, we recommend having Docker installed and using the following Docker Compose template. It sets up a TM2020 dedicated server for you as well as all the required other services.

version: "3.8"
services:
  trackmania:
    image: evoesports/trackmania
    ports:
      - 2350:2350/udp
      - 2350:2350/tcp
      - "5001:5000/tcp" # Be careful opening XMLRPC! Only if you really need to.
    environment:
      MASTER_LOGIN: "CHANGEME :)" # Create server credentials at https://www.trackmania.com/player/dedicated-servers
      MASTER_PASSWORD: "CHANGEME :)" # Create server credentials at https://www.trackmania.com/player/dedicated-servers
      XMLRPC_ALLOWREMOTE: "True"
    volumes:
      - UserData:/server/UserData
  db:
    image: postgres
    restart: always
    ports:
      - "5432:5432"
    volumes:
      - PostgresData:/var/lib/postgresql/data 
    environment:
      - POSTGRES_PASSWORD=evosc
      #- POSTGRES_USER=CHANGEME :) for a production server please change those values!
      #- POSTGRES_DB=CHANGEME :)
  pgadmin:
    image: dpage/pgadmin4
    restart: always
    extra_hosts: 
        - "host.docker.internal:host-gateway"
    environment:
      PGADMIN_DEFAULT_EMAIL: [email protected]
      PGADMIN_DEFAULT_PASSWORD: CHANGEME
    ports:
      - "8081:80"
volumes:
  UserData: null
  PostgresData: null

We also have a documentation of the current code base available at https://evosc.io/.