Rebased rs-sdk local mods onto LostCityRS/Engine-TS origin/274 tip 4c0d036f: - feat: Apply @bla@ to @str@, preserve colors across text lines - fix: Retreat logic, vertical auto-sizing/centering, hide-controls hotkey - chore: Updated dependencies (ejs 5, eslint 10, kysely 0.29, ...) - chore: Replaced bcrypt with bcrypt-ts - chore: Back to node as the primary runtime (tsx scripts, node:sqlite) Conflict resolutions / re-applied mods: - package.json: kept bun-based scripts (Docker runs oven/bun) + hiscores script + rsmod-pathfinder github fork dep + @types/bun; took upstream's updated dependency set (bcrypt-ts, ejs 5, etc.); regenerated bun.lock - src/web.ts: kept our 3-line shim re-exporting the modular src/web/ split - view/client.ejs: took upstream auto-sizing markup, kept selected=auto, favicon switching, footer links, cachebust import - public/client/*.js: kept deleted (bundles built in-image, not committed) - NEW MOD src/db/query.ts: runtime sqlite chooser — Bun lacks node:sqlite, so restore BunSqliteDialect (kysely-bun-sqlite) under Bun, use upstream's NodeSqliteDialect under node. Required for bun runtime at all (local AND Docker); verified engine boots to 'World ready' on bun 1.3.14. Note: local bun upgraded 1.2.19 -> 1.3.14 to match prod image. Typecheck clean. Vendor branch: ../repos/engine vendor-274. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2.8 KiB
Lost City - November 23, 2004
Note
Learn about our history and ethos on our forum: https://lostcity.rs/t/faq-what-is-lost-city/16
Reverse-engineered engine code designed to accurately simulate the cycle behaviors of early RS2. Contains the necessary data tools and compatible network protocol.
Game data is in the Content repository.
The project organizes historical versions into branches. You will need matching engine and content branches together to run the project.
Getting Started
Important
If you run into issues, please see our common issues.
The Server repository will simplify setup for most users. Download that repository and follow the instructions there.
Manual Setup
In absence of the Server scripts, download the specific engine and content repositories/branches you desire and extract them to the same parent folder.
git clone https://github.com/LostCityRS/Engine-TS -b 274 --single-branch engine
git clone https://github.com/LostCityRS/Content -b 274 --single-branch content
cd engine
npm start
* use --single-branch when you don't need to track the commit history of all versions
Open http://localhost:8898/setup to configure world settings.
This page reads and writes data/config/world.json through the management server.
Client
Client-Java is available for all versions. This is a research project to decompile and understand the original code. It has minor fixes for OS and Java compatibility.
Client-TS may be available depending on the version. This is a human-driven port of the original code to modern browsers. This gets prebuilt and included in this repository if available.
You can use the original obfuscated compiled applet from this time period with these arguments: java -cp runescape.jar client 10 0 highmem members 32
Be aware it may have compatibility issues (that are addressed in the Client-Java repository).
Dependencies
Tip
If you're using VS Code (recommended), we have an extension to install on the marketplace.
Workflow
Content developers should run npm start. The server will watch for changes to scripts and configs, then automatically repack everything.
Engine developers should run npm run dev. This does what npm start does above, but also completely restarts the server when engine code has changed.
License
This project is licensed under the MIT License. See the LICENSE file for details.