{"id":25940718,"url":"https://github.com/2003scape/rsc-server","last_synced_at":"2025-03-04T05:18:39.120Z","repository":{"id":39422153,"uuid":"213037729","full_name":"2003scape/rsc-server","owner":"2003scape","description":"🌎 runescape classic private server mmorpg emulator","archived":false,"fork":false,"pushed_at":"2023-05-06T22:58:32.000Z","size":4253,"stargazers_count":73,"open_issues_count":9,"forks_count":20,"subscribers_count":8,"default_branch":"master","last_synced_at":"2024-08-10T23:14:53.796Z","etag":null,"topics":["emulation","emulation-server","game-server","games","jagex","javascript-game","mmorpg","mmorpg-engine","mmorpg-server","private-server","remake","rsc","rsps","runescape","runescape-classic","runescape-server-emulator","server-emulator"],"latest_commit_sha":null,"homepage":"https://2003scape.github.io/","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/2003scape.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"COPYING","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-10-05T17:01:58.000Z","updated_at":"2024-08-09T21:20:42.000Z","dependencies_parsed_at":"2022-08-22T21:40:16.348Z","dependency_job_id":null,"html_url":"https://github.com/2003scape/rsc-server","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/2003scape%2Frsc-server","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/2003scape%2Frsc-server/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/2003scape%2Frsc-server/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/2003scape%2Frsc-server/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/2003scape","download_url":"https://codeload.github.com/2003scape/rsc-server/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241787663,"owners_count":20020135,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["emulation","emulation-server","game-server","games","jagex","javascript-game","mmorpg","mmorpg-engine","mmorpg-server","private-server","remake","rsc","rsps","runescape","runescape-classic","runescape-server-emulator","server-emulator"],"created_at":"2025-03-04T05:18:38.556Z","updated_at":"2025-03-04T05:18:39.104Z","avatar_url":"https://github.com/2003scape.png","language":"JavaScript","readme":"# rsc-server\n[runescape classic](https://classic.runescape.wiki/w/RuneScape_Classic)\nprivate server mmorpg emulator. designed to work with the web-based\n[rsc-client](https://github.com/2003scape/rsc-client) or the java-based\n[mudclient204](https://github.com/2003scape/mudclient204).\n\nfeatures:\n * supports TCP and WebSockets via Node.js with SQLite persistence and multiple\n worlds (with [rsc-data-server](https://github.com/2003scape/rsc-data-server)),\n and single-page with optional\n multiplayer on the browser via WebWorkers and WebRTC\n * [plugin-based content addition](https://github.com/2003scape/rsc-server/tree/master/src/plugins).\n add files with certain function signatures (\n `function onTalkToNpc(player, npc) {}`,\n `function onUseWithInventory(player, item, target) {}`, etc.) to implement\n quests, skills, item interactions, and other game content\n * [simple, JSON-based data formats for spawns, skills, probabilities, etc.](https://github.com/2003scape/rsc-data)\n * NPC combat (melee and ranged) with accurate\n [roll-based RNG drops](https://github.com/2003scape/rsc-data/blob/master/rolls/drops.json)\n are implemented\n * [all of the free-to-play quests implemented](https://github.com/2003scape/rsc-server/tree/master/src/plugins/quests/free)\n * [accurate sleep captcha](https://github.com/2003scape/rsc-captcha)\n * [compatible with period-accurate website replica](https://github.com/2003scape/rsc-www)\n\n## install\n\n* download and install [Node.js](https://nodejs.org/en/) (which comes with\n[npm](https://docs.npmjs.com/about-npm))\n\n* for the latest stable release, run:\n\n      # npm install -g @2003scape/rsc-data-server @2003scape/rsc-server\n\n* to check out the latest unstable features, install\n[git](https://git-scm.com/downloads) and run:\n\n      $ git clone https://github.com/2003scape/rsc-data-server\n      $ cd rsc-data-server \u0026\u0026 npm install \u0026\u0026 cd ../\n      $ git clone https://github.com/2003scape/rsc-server\n      $ cd rsc-server \u0026\u0026 npm install\n\n* if you are having npm build issues, you may require additional packages.\nvisit the [node-canvas](https://github.com/Automattic/node-canvas#compiling)\ngithub for more information\n\n* install\n[rsc-client](https://github.com/2003scape/rsc-client#install) or\n[mudclient204](https://github.com/2003scape/mudclient204#build-and-run) to login\n\n## cli usage\nrsc-server connects to\n[rsc-data-server](https://github.com/2003scape/rsc-data-server) for database\nsaving/loading and managing friends lists across worlds. it supports TCP with\nTLS or IPC [domain sockets](https://en.wikipedia.org/wiki/Unix_domain_socket).\n\n* if installed with npm, use (`-c \u003cconfig-file\u003e` is optional for both,\nthey will look for *config.json* in their own directory first):\n\n      $ rsc-data-server -c /etc/rsc-data-server/config.json \u0026\n      $ rsc-server -c /etc/rsc-server/config.json\n\n* if cloned from git:\n\n      $ cd rsc-data-server \u0026\u0026 npm start \u0026\n      $ cd ../rsc-server \u0026\u0026 npm start\n\n## browser usage\ncreate a new `Worker` instance using\n`./dist/server.bundle.js` or `./dist/server.bundle.min.js`. if making any\nchanges to the source, use `$ npm run build-browser` to re-build these files.\nyou can then pass the worker instance into\n[mudclient's](https://github.com/2003scape/rsc-client) `.server` property.\n\n```javascript\nconst serverWorker = new Worker('./server.bundle.min.js');\n\nserverWorker.postMessage({\n    type: 'start',\n    config: {\n        worldID: 1,\n        version: 204,\n        members: false,\n        experienceRate: 1,\n        fatigue: true,\n        rememberCombatStyle: false\n    }\n});\n\n// mc.server = serverWorker;\n```\n\n## commands\n\n|Command|Description|\n|-|-|\n|::addexp \\\u003cskill\\\u003e \\\u003cexperience\\\u003e|Add experience to a skill name.|\n|::appearance|Toggle the character creation screen.|\n|::bank|Open the bank interface.|\n|::bubble \\\u003cid\\\u003e|Create a player action bubble with an item ID.|\n|::clearinventory|Clear your inventory items.|\n|::coords|Display your current coordinates.|\n|::dmg \\\u003camount\\\u003e|Remove a certain amount of current hitpoints.|\n|::fatigue|Set your fatigue to 100%.|\n|::give \\\u003cusername\\\u003e \\\u003cid\\\u003e \\\u003camount = 1\\\u003e|Spawn an item in someone else's (online) inventory with optional amount.|\n|::goto \\\u003cusername\\\u003e|Teleport to a username (online).|\n|::gotoentity \\\u003ctype\\\u003e \\\u003cid\\\u003e|Teleport to the first entity (npcs, gameObjects, groundItems) of a certain ID.|\n|::item \\\u003cid\\\u003e \\\u003camount = 1\\\u003e|Spawn an item in your inventory with optional amount.|\n|::kick \\\u003cusername\\\u003e|Forcefully log out a username (online).|\n|::npc \\\u003cid\\\u003e|Spawn an NPC in your current position.|\n|::setqp \\\u003camount\\\u003e|Set your quest points to a certain amount.|\n|::shop \\\u003cname\\\u003e|Open a shop by name (see [rsc-data/shops.json](https://github.com/2003scape/rsc-data/blob/master/shops.json))|\n|::sound \\\u003cname\\\u003e|Play a sound file (members client only, see [rsc-sounds/sounds1.json](https://github.com/2003scape/rsc-sounds/blob/master/sounds1.json)).|\n|::step \\\u003cdeltaX\\\u003e \\\u003cdeltaY\\\u003e|Step in a certain direction (delta can be -1, 0 or 1).\n|::teleport \\\u003cx\\\u003e \\\u003cy\\\u003e \\| \\\u003cregion\\\u003e|Teleport to an x, y coordinate or region name (see [rsc-data/regions.json](https://github.com/2003scape/rsc-data/blob/master/regions.json)).|\n\n## config\nwhen using `$ rsc-server`, pass in `-c \u003cconfig-file\u003e` (or edit `config.json`\nin the *rsc-server* directory if cloned from git), or change the object\npassed into the `{ type: 'start' }` Worker message to modify the following\nsettings:\n\n```javascript\n{\n    // UNIX socket file used if connecting to rsc-data-server on the same\n    // machine\n    \"dataServerFile\": \"/tmp/rsc-data-server.sock\",\n\n    // optional IP/port if connecting to rsc-data-server on another network\n    \"dataServerTCP\": \"localhost:9001\" || null,\n\n    // password used to authenticate with rsc-data-server\n    \"dataServerPassword\": \"test\",\n\n    // version to check clients on login\n    \"version\": 204,\n\n    // the unique world index to communicate to rsc-data-server\n    \"worldID\": 1,\n\n    // port to listen to for non-websocket regular TCP clients\n    // (for mudclient204)\n    \"tcpPort\": 43594,\n\n    // port to listen to https://developer.mozilla.org/en-US/docs/Web/API/WebSocket connections\n    // (for rsc-client)\n    \"websocketPort\": 43595,\n\n    // country flag to use on the website\n    \"country\": \"CAN\",\n\n    // disable members features and non-members logins \u0026 registration for this\n    // world\n    \"members\": false,\n\n    // boost or lower the experience rate\n    \"experienceRate\": 1,\n\n    // enable or disable fatigue gaining\n    \"fatigue\": true,\n\n    // add from/to bank options for certing NPCs (not supported in real RSC)\n    \"bankCertificates\": false,\n\n    // store player combat style in database (not supported in real RSC)\n    \"rememberCombatStyle\": false\n}\n```\n\n## see also\n* [RSCGo](https://github.com/spkaeros/RSCGo) by @spkaeros\n    * runescape classic server written in go\n* [RuneJS](https://github.com/runejs)\n    * runescape 2 server written in javascript\n* [RuneScape Classic Wiki](https://classic.runescape.wiki/)\n    * best source of accurate runescape classic data\n\n## license\nCopyright (C) 2021  2003Scape Team\n\nThis program is free software: you can redistribute it and/or modify\nit under the terms of the GNU Affero General Public License as\npublished by the Free Software Foundation, either version 3 of the\nLicense, or (at your option) any later version.\n\nThis program is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU Affero General Public License for more details.\n\nYou should have received a copy of the GNU Affero General Public License\nalong with this program.  If not, see http://www.gnu.org/licenses/.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F2003scape%2Frsc-server","html_url":"https://awesome.ecosyste.ms/projects/github.com%2F2003scape%2Frsc-server","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F2003scape%2Frsc-server/lists"}