A fully self-contained RuneScape Classic client that runs entirely offline — no server, no database, no internet required. Built for preservation, nostalgia, and experimentation.
Version 2.4.6 · Java 17+ · GPL v3
- Features
- Quick Start
- Commands
- Bot System
- Hardcore Mode
- Building from Source
- Project Structure
- Administrator Account
- Media
- FAQ
- License
- Single-process — everything runs in one JVM, no external dependencies
- All 50 quests playable
- 18-skill bot system with auto-banking and combat support
- Resizable UI — drag to any window size
- Batched skill actions — woodcutting, mining, cooking, etc. use a tick-based batch system
- 8x XP multiplier (configurable in source)
- Hardcore mode — death permanently deletes your save
- Multi-account — create as many characters as you like
- Full music — 55 MIDI tracks mapped to game regions
::bankopens your bank from anywhere::teleteleports to named locations or coordinates::stuckunsticks your character- Right-click item swapping in the bank interface
- Bob's Axes stocks hatchets (Bronze → Rune) and pickaxes (Bronze → Rune)
Requirements: Java 17 or newer
- Download or clone the repository:
git clone https://github.com/theKennethy/Single-RSC.git cd Single-RSC - Launch the game:
- Linux / macOS:
./run.sh - Windows:
run.bat - Or:
java -cp "rsc.jar:lib/*" org.nemotech.rsc.Main
- Linux / macOS:
- Click New User, create an account, and log in.
Tip: Create a user named
rootfor admin privileges.
| Command | Description |
|---|---|
::help |
Show help message |
::bank |
Open bank anywhere |
::stuck |
Unstick your character |
::pos |
Show current coordinates |
::toggleroofs |
Toggle roof rendering on/off |
::mapedit |
Open the real-time map editor |
| Command | Description |
|---|---|
::tele <location> |
Teleport to a named location |
::tele <x> <y> |
Teleport to coordinates |
::town <location> |
Teleport to a town |
::item <id> [amount] |
Spawn an item |
::npc <id> |
Spawn an NPC |
::object <id> [dir] |
Spawn an object |
::set <skill> <level> |
Set a skill level |
::addbank <id> [amount] |
Add item to bank |
::removebank <id> [amount] |
Remove item from bank |
::quest <id> <stage> |
Set quest stage |
::find <entity> <string> |
Search for entities by name |
::stresstest <type> <radius> |
Stress test entities |
::debugobjects [radius] |
List nearby game objects |
| Mini-map right-click | Teleport to clicked location |
A built-in bot framework that automates training for all 18 skills. Bots handle banking, eating, and resource management automatically. They stop cleanly when supplies run out or after repeated failures.
| Command | Description |
|---|---|
::bot list |
List all registered bots |
::bot start <name> |
Start a bot by name |
::bot stop [name] |
Stop a bot (or all bots) |
::bot pause |
Pause / resume the active bot |
::bot status |
Show status of all bots |
::botarea <location> |
Set bot working area by name |
::botarea <x1> <x2> <y1> <y2> |
Set bot working area by coordinates |
::botarea clear |
Clear bot area bounds |
| Command | Skill | Details |
|---|---|---|
::woodcut [type] |
Woodcutting | normal, oak, willow, maple, yew, magic |
::fish [type] |
Fishing | net, fly, cage, harpoon, shark |
::mine [type] |
Mining | copper, tin, iron, coal, gold, mith, addy, rune |
| Command | Skill | Details |
|---|---|---|
::combat [npc] |
Attack/Strength/Defence | Melee combat with auto-looting |
::ranged [npc] |
Ranged | Ranged combat training |
::magic [npc] |
Magic | Casts combat spells on NPCs |
| Command | Skill | Details |
|---|---|---|
::cook |
Cooking | Cooks raw food on ranges |
::fm |
Firemaking | Burns logs with tinderbox |
::smith |
Smithing | Smiths bars at anvils |
::fletch |
Fletching | Makes bows and arrows from logs |
::craft [mode] |
Crafting | leather, spinning, pottery |
::herblaw [mode] |
Herblaw | identify herbs, make potions |
| Command | Skill | Details |
|---|---|---|
::agility [course] |
Agility | gnome, barb, wild |
::thieve [target] |
Thieving | Pickpockets NPCs |
::prayer |
Prayer | Buries bones from inventory |
- Auto-banking — gathering bots walk to the nearest bank when inventory is full
- Auto-eating — combat bots eat food when HP drops low
- Clean shutdown — bots stop themselves when out of supplies or after 3+ consecutive banking failures
- Statistics — track items collected/processed and XP gained
::woodcut willow Cut willow trees, bank logs
::fish lobster Catch lobsters, bank them
::mine iron Mine iron ore, bank it
::combat goblin Fight goblins, eat food, loot drops
::agility gnome Run the Gnome Agility Course
::cook Cook raw food on a nearby range
::prayer Bury all bones in inventory
::craft leather Craft leather items
::herblaw identify Identify unidentified herbs
- Toggle when creating a new account (check the Hardcore box)
- On death: your save file is permanently deleted and the client closes
- Logging in again starts a fresh character
- Back up your save file manually if you want a safety net
Requirements: Java 17+, lib/gson-2.6.2.jar (included)
BUILD_DIR="build" && \
rm -rf "$BUILD_DIR" && \
mkdir -p "$BUILD_DIR" && \
find src -name '*.java' -print0 | xargs -0 javac -source 17 -target 17 -cp lib/gson-2.6.2.jar -d "$BUILD_DIR" && \
jar cfm "rsc.jar" META-INF/MANIFEST.MF -C "$BUILD_DIR" . && \
rm -rf "$BUILD_DIR"This produces rsc.jar in the project root. The build command is also saved in compile.txt.
Single-RSC/
├── rsc.jar # Prebuilt game client
├── run.sh / run.bat # Launch scripts
├── compile.txt # Build command reference
├── cache/
│ ├── audio/music/ # 55 MIDI music tracks
│ ├── audio/sounds/ # Sound effects
│ ├── data/ # Game definitions (JSON)
│ │ ├── item_def.json
│ │ ├── npc_def.json
│ │ ├── object_def.json
│ │ └── ...
│ ├── jags/ # Jagex cache archives
│ └── players/ # Player save files
├── lib/
│ └── gson-2.6.2.jar # JSON library dependency
├── src/org/nemotech/rsc/
│ ├── Main.java # Entry point
│ ├── Constants.java # Configuration values
│ ├── bot/ # Bot framework
│ │ ├── Bot.java # Abstract base class
│ │ ├── BotAPI.java # 100+ game interaction methods
│ │ ├── BotManager.java # Lifecycle management
│ │ └── scripts/ # 15 skill bot implementations
│ ├── client/ # Client rendering and input
│ ├── core/ # Game engine core
│ ├── event/ # Event system
│ ├── model/ # Game entities and world model
│ └── ...
└── META-INF/MANIFEST.MF # JAR manifest
Create a user named exactly root (case-sensitive) to unlock:
- All admin
::commands (item spawning, teleportation, skill setting, etc.) - Mini-map right-click teleportation
- Debug and stress-testing tools
Q: Does this connect to any external server? A: No. Everything runs locally in a single process.
Q: What Java version do I need? A: Java 17 or newer.
Q: Can I resize the window? A: Yes, the UI scales dynamically.
Q: How do I restore a Hardcore character after death? A: You can't — that's the point. Back up your save file beforehand if you want a safety net.
Q: Can I change XP rates?
A: Edit EXPERIENCE_MULTIPLIER in Constants.java and rebuild (default is 8x).
Q: Where are save files stored?
A: In the saves/ directory (created at runtime in the working directory).
This project is a preservation and educational single-player reimplementation. All original game assets, names, and concepts belong to their respective owners. Use responsibly and in accordance with applicable laws.
GPL v3.0 — see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt




