https://github.com/runejs/server
RuneJS is a RuneScape game server written in TypeScript and JavaScript. The goal of the project is to create a comprehensive game engine, while also providing simple and easy to use content development systems and APIs.
https://github.com/runejs/server
babel emulator game-cache game-server javascript javascript-game-engine nodejs nodejs-game runejs runejs-applications runescape runescape-2006 runescape-377 runescape-435 runescape-api runescape-emulator runescape-server-emulator server-runejs typescript typescript-game-engine
Last synced: 17 days ago
JSON representation
RuneJS is a RuneScape game server written in TypeScript and JavaScript. The goal of the project is to create a comprehensive game engine, while also providing simple and easy to use content development systems and APIs.
- Host: GitHub
- URL: https://github.com/runejs/server
- Owner: runejs
- License: gpl-3.0
- Created: 2019-12-23T19:11:32.000Z (about 6 years ago)
- Default Branch: develop
- Last Pushed: 2025-09-24T22:48:54.000Z (5 months ago)
- Last Synced: 2025-10-13T09:15:50.598Z (4 months ago)
- Topics: babel, emulator, game-cache, game-server, javascript, javascript-game-engine, nodejs, nodejs-game, runejs, runejs-applications, runescape, runescape-2006, runescape-377, runescape-435, runescape-api, runescape-emulator, runescape-server-emulator, server-runejs, typescript, typescript-game-engine
- Language: TypeScript
- Homepage:
- Size: 61.5 MB
- Stars: 270
- Watchers: 6
- Forks: 90
- Open Issues: 33
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
README
[](https://discord.gg/5P74nSh)
[](https://github.com/runejs/)
# RuneJS Game Server
RuneJS is a RuneScape game server written in TypeScript and JavaScript. The aim of this project is to create a game server that is both fun and easy to use, while also providing simple content development systems.
The game server currently runs a build of RuneScape from October 30th-31st, 2006 (game build #435). No other builds are supported at this time, but may become available in the future.
**RuneJS is completely open-source and open to all pull requests and/or issues. Many plugins have been added by contributor pull requests and we're always happy to have more!**

## Setup
### Prerequisites
- [`docker`](https://docs.docker.com/get-docker/) and [`docker-compose`](https://docs.docker.com/compose/install/)
- If on Windows, `docker-compose` comes with `docker`
### Running the Game Server
1. Copy the `config/server-config.example.json` and paste it into the same folder using the name `server-config.json`
2. Go into your new `server-config.json` file and modify your RSA modulus and exponent with the ones matching your game client
- You may also modify the server's port and host address from this configuration file
3. Build the docker image with `docker-compose build`
4. Run the game server with `docker-compose up`
The game server will spin up and be accessible via port 43594.
## Game Client
The [RuneScape Java Client #435](https://github.com/runejs/refactored-client-435) must be used to log into a RuneJS game server.
## Additional Commands
Before running these commands, you must:
1. have [NodeJS **version 18 or higher**](https://nodejs.org/en/) installed on your machine
2. run `npm install` from the root of this project
* `npm run game` Launches the game server by itself without building
* `npm run game:dev` Builds and launches the game server by itself in watch mode
* `npm run login` Launches the login server by itself without building
* `npm run update` Launches the update server by itself without building
* `npm run infra` Launches both the login and update server without building
* `npm run standalone` Launches all three servers concurrently without building
* `npm run build:watch` Builds the application and watches for changes
* `npm run build` Builds the application
* `npm run lint` Runs Biome in linting mode, use `lint:fix` to autofix
* `npm run format` Runs Biome in formatting mode, use `format:fix` to autofix
* `npm run test` Runs all tests with Jest
* `npm run typecheck` Typechecks the project
* `npm run fin` Combines lint:fix, format:fix, test and typecheck into a single command