Skip to content

Setup server from scratch (TS)

This is a step by step guide for creating a colyseus server with typescript.



Create a new empty directory.

mkdir colyseusServer

Go into the directory.

cd colyseusServer

Initialise npm with default options

npm init

Change the "main" and "scripts" property of the package.json.

  "main": "dist/main.js",
  "scripts": {
    "build": "tsc",
    "start": "ts-node src/main.ts",
    "start:dev": "ts-node-dev --watch \"src/**/*\" --respawn --transpile-only src/main.ts ",
    "start:prod": "node dist/main.js",
    "test": "echo \"Error: no test specified\" && exit 1"

Install Dependencies

npm i colyseus

Install Dev Dependencies

npm i --save-dev typescript ts-node-dev

Create a new file called tsconfig.json in the root of the project

    "compilerOptions": {
        "outDir": "./dist",
        "module": "commonjs",
        "lib": ["es6"],
        "target": "es2016",
        "declaration": true,
        "removeComments": true,
        "noImplicitAny": false,
        "experimentalDecorators": true,
        "sourceMap": true,
        "esModuleInterop": true,
        "strict": true,
        "allowJs": true,
        "strictNullChecks": false,
        "forceConsistentCasingInFileNames": true
    "include": [

Create a new src directory

mkdir src

Create a new file called main.ts in the src directory

import { Server } from "colyseus"
const port = parseInt(process.env.PORT, 10) || 3000

const gameServer = new Server()
console.log(`[GameServer] Listening on Port: ${port}`)

Congrats you finished the setup for a colyseus server.


Now you can start the server with:

npm start

For development you can use the start:dev command. It automatically restarts the server when you change a file.

npm run start:dev

For production you first create a build.

npm run build

After that you can start the server with the start:prod command. This command uses the files which are created from the build command in the dist folder.

npm run start:prod

Back to top