runescape classic mmorpg game server emulator
npm install @2003scape/rsc-serverfeatures:
* supports TCP and WebSockets via Node.js with SQLite persistence and multiple
worlds (with rsc-data-server),
and single-page with optional
multiplayer on the browser via WebWorkers and WebRTC
* plugin-based content addition.
add files with certain function signatures (
function onTalkToNpc(player, npc) {},
function onUseWithInventory(player, item, target) {}, etc.) to implement
quests, skills, item interactions, and other game content
* simple, JSON-based data formats for spawns, skills, probabilities, etc.
* NPC combat (melee and ranged) with accurate
roll-based RNG drops
are implemented
* all of the free-to-play quests implemented
* accurate sleep captcha
* compatible with period-accurate website replica
* download and install Node.js (which comes with
npm)
* for the latest stable release, run:
# npm install -g @2003scape/rsc-data-server @2003scape/rsc-server
* to check out the latest unstable features, install
git and run:
$ git clone https://github.com/2003scape/rsc-data-server
$ cd rsc-data-server && npm install && cd ../
$ git clone https://github.com/2003scape/rsc-server
$ cd rsc-server && npm install
* if you are having npm build issues, you may require additional packages.
visit the node-canvas
github for more information
* install
rsc-client or
mudclient204 to login
* if installed with npm, use (-c is optional for both,
they will look for config.json in their own directory first):
$ rsc-data-server -c /etc/rsc-data-server/config.json &
$ rsc-server -c /etc/rsc-server/config.json
* if cloned from git:
$ cd rsc-data-server && npm start &
$ cd ../rsc-server && npm start
Worker instance using./dist/server.bundle.js or ./dist/server.bundle.min.js. if making any$ npm run build-browser to re-build these files..server property.``javascript
const serverWorker = new Worker('./server.bundle.min.js');
serverWorker.postMessage({
type: 'start',
config: {
worldID: 1,
version: 204,
members: false,
experienceRate: 1,
fatigue: true,
rememberCombatStyle: false
}
});
// mc.server = serverWorker;
`
|Command|Description|
|-|-|
|::addexp \
|::appearance|Toggle the character creation screen.|
|::bank|Open the bank interface.|
|::bubble \
|::clearinventory|Clear your inventory items.|
|::coords|Display your current coordinates.|
|::dmg \
|::fatigue|Set your fatigue to 100%.|
|::give \
|::goto \
|::gotoentity \
|::item \
|::kick \
|::npc \
|::setqp \
|::shop \
|::sound \
|::step \
|::teleport \
, pass in -c (or edit config.json
in the rsc-server directory if cloned from git), or change the object
passed into the { type: 'start' } Worker message to modify the following
settings:`javascript
{
// UNIX socket file used if connecting to rsc-data-server on the same
// machine
"dataServerFile": "/tmp/rsc-data-server.sock", // optional IP/port if connecting to rsc-data-server on another network
"dataServerTCP": "localhost:9001" || null,
// password used to authenticate with rsc-data-server
"dataServerPassword": "test",
// version to check clients on login
"version": 204,
// the unique world index to communicate to rsc-data-server
"worldID": 1,
// port to listen to for non-websocket regular TCP clients
// (for mudclient204)
"tcpPort": 43594,
// port to listen to https://developer.mozilla.org/en-US/docs/Web/API/WebSocket connections
// (for rsc-client)
"websocketPort": 43595,
// country flag to use on the website
"country": "CAN",
// disable members features and non-members logins & registration for this
// world
"members": false,
// boost or lower the experience rate
"experienceRate": 1,
// enable or disable fatigue gaining
"fatigue": true,
// add from/to bank options for certing NPCs (not supported in real RSC)
"bankCertificates": false,
// store player combat style in database (not supported in real RSC)
"rememberCombatStyle": false
}
``This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as
published by the Free Software Foundation, either version 3 of the
License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see http://www.gnu.org/licenses/.