Table of Contents
This guide is for core client development. For plugin hub development, see Developer Guide.
Table of Contents
Getting started
For working with this project, IntelliJ IDEA is our recommended IDE and the one used by most collaborators. The free community edition has everything you'll need to start testing and contributing real improvements to the project.
You can build RuneLite locally using JDK 11. We recommend installing the JDK through IntelliJ and selecting vendor Eclipse Temurin (AdoptOpenJDK HotSpot) version 11. The codebase supports language features up to Java 11.
Importing the project
After launching IntelliJ IDEA for first time, you will see IntelliJ's welcome window. You will now need to clone the RuneLite repository from git; to do this you can click the Get from VCS button.
If you're presented with the editor instead of the welcome screen, click File > New > Project from Version Control….
After clicking on that you will be greeted with a prompt. You can either enter the RuneLite repository https://github.com/runelite/runelite or your own GitHub fork, if you've created one.
You can also specify a directory where you'd like to save the RuneLite files to in this prompt. If Git is not installed, click on Download and install to install Git.
NOTE: If you plan to make a Pull Request, you must fork the RuneLite repository, and clone from your fork.
After cloning is done you will be presented with a Trust and open Project 'runelite'? popup. Click Trust Project.
Configuring the project
We need to make sure that the correct SDK is selected for RuneLite. To do that go to File > Project Structure…
Go to the Project Settings > Project tab and open the SDK dropdown menu. Click on Download JDK...
Choose version 11 and vendor Eclipse Temurin (AdoptOpenJDK Hotspot). Then press Download to download the JDK.
Set the Language level to 11 and press OK to save the changes.
Building the project
To run RuneLite, locate runelite-client/src/main/java/net/runelite/client/RuneLite.java and right-click on it.
Select Run RuneLite.main() and wait a while for the client to build and start.
Plugin Hub Plugins
We don't provide builds of pluginhub plugins for snapshot versions.
To run plugins from the latest RuneLite release,
add -Drunelite.pluginhub.version=<current RL version> as a VM option in your run configuration
(if you do not see VM options, select More Options -> Add VM Options).
Hot reloading
To help enable a faster edit-run-test development loop, check out JetBrains's official documentation on hot reloading.
Troubleshooting
WARNING: An illegal reflective access operation has occurred
You can ignore this.
Missing git
If you are getting error about git.exe (or git on linux and mac) missing, you will need to first download and install Git for your OS. Git is version control software and implementation that RuneLite uses to store and track history of it's source code. To download git, just go here and select your OS version.
Tests are failing
If you've followed all instructions correctly, try deleting the %TEMP%/cache-165 folder or skipping the tests by running a custom run configuration as outlined in Building the project.
Client failing to start
If the client fails to boot, or if the client starts with a white or black screen,
try running the Gradle target :cleanAll.
If that also doesn't work, feel free to ask for help in the Runelite Discord server. Here are few helpful tips:
Make sure your branch is up to date with master
To sync your fork simply run
git pull --rebase upstream/master
If you get an error of fatal: 'upstream' does not appear to be a git repository,
add the RuneLite repository as an upstream with
git remote add upstream https://github.com/runelite/runelite.git.
Make sure IntelliJ is picking up changes from Gradle
If you are unsure, run: Gradle > Sync All Gradle Projects in IntelliJ (or Ctrl + Shift + A and type Sync All Gradle Projects).
Happy development!
macOS JDKs 17+
In order to use JDK 17+ on macOS, you will need to add the following VM options:
--add-opens=java.desktop/com.apple.eawt=ALL-UNNAMED
Table of Contents
User Guide
- FAQ
- GPU FAQ
- RuneLite Launcher Configuration
- Verifying Launcher Authenticity
- Troubleshooting problems with the client
- Disable Hardware Acceleration
- Change DPI Scaling (Ubuntu 20 w/ Gnome)
- Information about the Plugin Hub
- General Features
- Plugin Configuration
- Agility
- Ammo
- Animation Smoothing
- Anti Drag
- Attack Styles
- Bank
- Bank Tags
- Barbarian Assault
- Barrows Brothers
- Blast Furnace
- Blast Mine
- Boosts Information
- Boss Timers
- Camera
- Cannon
- Chambers of Xeric
- Chat Channels
- Chat Color
- Chat Commands
- Chat Filter
- Chat History
- Chat Notifications
- Chat Timestamps
- Clue Scroll
- Combat Level
- Cooking
- Corporeal Beast
- Custom Cursor
- Daily Task Indicator
- Default World
- Diary Requirements
- Discord
- DPS Counter
- Emojis
- Entity Hider
- Examine
- FPS Control
- Fairy Rings
- Fishing
- Friend List
- Friend Notes
- GPU
- Grand Exchange
- Ground Items
- Ground Markers
- Herbiboar
- HiScore
- Hunter
- Idle Notifier
- Implings
- Info Panel
- Instance Map
- Interface Styles
- Inventory Grid
- Inventory Tags
- Inventory Viewer
- Item Charges
- Item Identification
- Item Prices
- Item Stats
- Key Remapping
- Kingdom of Miscellania
- Kourend Library
- Login Screen
- Loot Tracker
- Low Detail
- Mage Training Arena
- Menu Entry Swapper
- Metronome
- Minimap
- Mining
- Motherlode Mine
- Mouse Tooltips
- Music
- NPC Aggression Timer
- NPC Indicators
- Nightmare Zone
- Notes
- Object Markers
- Opponent Information
- Party
- Pest Control
- Player Indicators
- Player-owned House
- Poison
- Prayer
- Puzzle Solver
- Pyramid Plunder
- Quest List
- Random Events
- Regeneration Meter
- Report Button
- Run Energy
- Rune Pouch
- RuneLite
- Runecraft
- Screen Markers
- Screenshot
- Skill Calculator
- Skybox
- Slayer
- Smelting
- Special Attack Counter
- Spellbook
- Status Bars
- Stretched Mode
- Team
- Tears Of Guthix
- Tile Indicators
- Time Tracking
- Timers & Buffs
- Tithe Farm
- Twitch
- Virtual Levels
- Wiki
- Wintertodt
- Woodcutting
- World Hopper
- World Map
- XP Drop
- XP Globes
- XP Tracker
- XP Updater
- Zalcano
Developer's Guide
- Plugin Development
- RuneLite Core Development
- Using Git with RuneLite
- Using Jagex Accounts
- Working with client scripts
- Using the client developer tools
- VarPlayers, VarBits, and VarClients
- Rejected or Rolled Back Features
Please join our Discord if you notice anything wrong or would like to discuss an addition to the wiki. Changes can be submitted to our wiki repository.






