Skip to content

Commit

Permalink
Merge pull request #1 from rune-js/master
Browse files Browse the repository at this point in the history
latest changes
  • Loading branch information
Hc747 authored Apr 7, 2020
2 parents eb4cb1a + f061ea8 commit e5b8f7a
Show file tree
Hide file tree
Showing 219 changed files with 10,541 additions and 4,484 deletions.
32 changes: 16 additions & 16 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,16 +1,17 @@
[![RuneJS Discord Server](https://img.shields.io/discord/678751302297059336?label=RuneJS%20Discord&logo=discord)](https://discord.gg/5P74nSh)


![Rune.JS](https://i.imgur.com/osF9OSD.png)
![RuneJS](https://i.imgur.com/osF9OSD.png)

# Rune.JS
# RuneJS

Rune.JS is a RuneScape game server written entirely using 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.
RuneJS is a RuneScape game server written entirely using 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.

Currently the server is set up for the 377 revision of the game. There are not any plans to convert it to other versions at this time, though that could very well change. Any regular 377 client with RSA enabled should work with Rune.JS.
Currently the server is set up for the 435 revision of the game, which was a game update made on October 31st, 2006. There are not any plans to convert it to other versions at this time.

## Features

- RSA and ISAAC ciphering support.
- Login & input/output packet handling.
- Player saving/loading via JSON files.
- Multiplayer support.
Expand All @@ -22,10 +23,11 @@ Currently the server is set up for the 377 revision of the game. There are not a
- Player equipment with item bonuses & weight.
- NPC spawning and updating.
- NPC spawn loading via YAML configuration.
- Player & NPC pathing validation via collision and tile maps generated from the game cache.
- Player client settings saving and loading.
- Player & NPC pathing validation via collision and tile maps generated from the 377 game cache.
- A basic REST service for polling logged in users.
- Full functional update server.
- A diverse TypeScript plugin system for easily writing new content based off of in-game actions.
- Flexible quest and dialogue systems for easy content development.

## Usage

Expand All @@ -41,14 +43,16 @@ The game server will spin up and be accessible via port 43594. The REST service

## Cache Parsing

A separate package was created that Rune.JS uses to parse the 377 game cache. This package parses item definitions, landscape object definitions, map region tiles, and map region landscape objects. The Rune.JS `cache-parser` package can be found here:
A separate package was created that RuneJS uses to parse the 435 game cache. This package decodes item definitions, npc definitions, location object definitions, widgets, sprites, and map data (tiles and location objects) for any implementing app to make use of.

The RuneJS `cache-parser` package can be found here:

- [Github: rune-js/cache-parser](https://github.com/rune-js/cache-parser)
- [NPM: @runejs/cache-parser](https://www.npmjs.com/package/@runejs/cache-parser)

## REST API

Online players can be polled via the REST protocol for web applications. An accompanying server control panel UI is panned utilizing VueJS that will point to this REST service.
Online players can be polled via the REST protocol for web applications.

##### API Endpoints:

Expand All @@ -59,16 +63,12 @@ Online players can be polled via the REST protocol for web applications. An acco

## Aditional Information

#### Supported 377 Clients
#### Supported 435 Clients

Rune.JS should support any vanilla RuneScape 377 client and game cache, such as:
RuneJS supports the 435 RuneScape game client being renamed by [Promises](https://github.com/Promises) and [TheBlackParade](https://github.com/TheBlackParade):

- [refactored-client-377](https://github.com/Promises/refactored-client-377) by [Promises](https://github.com/Promises)
- [Runescape 377 Web client](https://github.com/reinismu/runescape-web-client-377) by [reinismu](https://github.com/reinismu)
- Any old 377 deobfuscated client
- [refactored-client-435](https://github.com/Promises/refactored-client-435)

#### Update Server

To use Rune.JS, your 377 client's update server will either need to be disabled or you'll have to spin up your own update server alongside Rune.JS, as it does not include an update server of it's own.

We highly recommend using [JagCached](https://github.com/apollo-rsps/jagcached), a RuneScape update server written by [Graham Edgecombe](https://github.com/apollo-rsps/jagcached/commits?author=grahamedgecombe).
RuneJS provides a fully working update server for the 435 client to use. The update server runs alongside the regular game server using the same port, so no additional configuration is required. Simply start the server and then your game client.
Binary file added cache/main_file_cache.dat0
Binary file not shown.
Binary file added cache/main_file_cache.dat1
Binary file not shown.
Binary file not shown.
Binary file modified cache/main_file_cache.idx0
Binary file not shown.
Binary file modified cache/main_file_cache.idx1
Binary file not shown.
Binary file added cache/main_file_cache.idx10
Binary file not shown.
Binary file added cache/main_file_cache.idx11
Binary file not shown.
Binary file added cache/main_file_cache.idx12
Binary file not shown.
Binary file modified cache/main_file_cache.idx2
Binary file not shown.
Binary file added cache/main_file_cache.idx255
Binary file not shown.
Binary file modified cache/main_file_cache.idx3
Binary file not shown.
Binary file modified cache/main_file_cache.idx4
Binary file not shown.
Binary file added cache/main_file_cache.idx5
Binary file not shown.
Binary file added cache/main_file_cache.idx6
Binary file not shown.
Binary file added cache/main_file_cache.idx7
Binary file not shown.
Binary file added cache/main_file_cache.idx8
Binary file not shown.
Binary file added cache/main_file_cache.idx9
Binary file not shown.
Loading

0 comments on commit e5b8f7a

Please sign in to comment.