RuneLite Example Plugin ("Hello World")
Ein einsatzbereites RuneLite-Plugin-Beispielprojekt. Das Plugin sendet eine "Hello World!"-Nachricht in den Ingame-Chat, sobald du dich einloggst oder das Plugin aktivierst.
📁 Projektstruktur
.
├── build.gradle # Gradle Build-Konfiguration
├── settings.gradle # Projektname
├── gradlew / gradlew.bat # Gradle Wrapper (keine manuelle Gradle-Installation nötig)
└── src
├── main/java/com/example
│ ├── ExamplePlugin.java # Hauptklasse des Plugins
│ └── ExampleConfig.java # Einstellungs-Menü im RuneLite Config-Panel
└── test/java/com/example
└── ExamplePluginTest.java # Startet RuneLite mit dem geladenen Plugin
🚀 Wie starte / teste ich das Plugin lokal?
Der Standard- und einfachste Weg in der RuneLite-Entwicklung ist der integrierte Test-Client. Dadurch musst du keine JAR-Dateien manuell kopieren oder den offiziellen Client patchen.
Option 1: Über das Terminal / CLI (am schnellsten)
Führe einfach folgenden Befehl im Projektordner aus:
./gradlew run
Unter Windows:
gradlew.bat run
RuneLite startet im Entwicklermodus mit deinem geladenen Plugin. Sobald du dich mit deinem Account einloggst, erscheint im Chat:
Example Plugin: Hello World!
Option 2: Über eine IDE (IntelliJ IDEA / VS Code / Eclipse)
- IntelliJ IDEA öffnen
\rightarrowOpen\rightarrowdiesen Projektordner auswählen\rightarrowals Gradle-Projekt importieren. - Zu
ExamplePluginTest.javanavigieren. - Den grünen Play-Button ▶ neben
main()anklicken (oderShift + F10). - RuneLite startet sofort mit Hot-Reloading & Debugging-Möglichkeiten.
⚙️ Wie funktioniert das "Hello World"?
- Beim Login: Das Event
@Subscribe public void onGameStateChanged(GameStateChanged gameStateChanged)fängtGameState.LOGGED_INab und sendet die Nachricht. - Bei Plugin-Aktivierung: In
startUp()wird geprüft, ob du bereits eingeloggt bist (client.getGameState() == GameState.LOGGED_IN), und sendet ebenfalls die Nachricht. - Anpassbar: Die Nachricht kann im RuneLite Einstellungsmenü (unter Example Plugin in der Seitenleiste) konfiguriert werden.
📦 Standalone-JAR bauen (ShadowJar)
Falls du eine eigenständige JAR-Datei benötigst:
./gradlew shadowJar
Die fertige JAR befindet sich anschließend in:
build/libs/bank-highlighter-1.0-SNAPSHOT-all.jar
⚡ Installation in Bolt (lokal)
Die Plugins (ExamplePlugin, LiveDashboardPlugin, EssentialsPlusPlugin) werden über
den Einstiegspunkt ExamplePluginTest.main direkt als Builtin-Externals in den
RuneLite-Client injiziert — es ist kein Bolt-Plugin-Manifest (RS3) nötig.
1. Einmalige Bolt-Konfiguration
In ~/.config/bolt-launcher/launcher.json muss gesetzt sein:
"runelite_use_custom_jar": true,
"runelite_custom_jar": "/home/hikyu/.local/share/bolt-launcher/custom-runelite.jar",
"osrs_launch_command": "java -jar /home/hikyu/.local/share/bolt-launcher/custom-runelite.jar"
2. Bauen & installieren
./gradlew deploy
Der Befehl baut den Shadow-Jar und kopiert ihn atomar nach
~/.local/share/bolt-launcher/custom-runelite.jar, so dass er auch bei laufendem
Bolt/RuneLite sicher ersetzt werden kann (build.gradle deploy).
3. Automatische Neuinstallation bei jeder Änderung
Lasse den Continuous-Build im Projektordner laufen — er überwacht die Quelldateien und installiert automatisch neu, sobald etwas geändert wird:
./gradlew deploy -t
(Beenden mit Ctrl+C. Der Watcher kompiliert und kopiert die JAR bei jeder
Quellcode-Änderung selbstständig.)
4. Start in Bolt
- Bolt starten → RuneLite wählen → einloggen.
- „Essentials Plus" erscheint mit einem Icon in der Seitenleiste.
- Falls nicht sichtbar: RuneLite-Hamburger → Configuration → External Plugins → „Essentials Plus" aktivieren.
🪟 Windows / Jagex Launcher (offizielles RuneLite)
Auf Windows wird RuneLite über den Jagex Launcher gestartet. Dort lässt sich der
Bolt-Trick (eigenes Client-JAR mit ExamplePluginTest.main) nicht verwenden, weil
der Jagex Launcher immer die offizielle RuneLite-EXE startet. Stattdessen nutzt man das
offizielle Side-Loading von RuneLite: Beim Client-Start lädt RuneLite alle .jar
Dateien aus ~\.runelite\sideloaded-plugins\ nach – sofern der Developer Mode
aktiviert ist. runelite-plugin.properties wird dabei nicht gebraucht.
1. Plugin-JAR bauen (klein, ohne Client)
gradlew.bat jar
Ergebnis: build\libs\bank-highlighter-1.0-SNAPSHOT.jar (enthält nur com.example.*
Klassen, keine net.runelite.* – der richtige Jar-Typ zum Side-Loaden).
2. JAR in den Side-Load-Ordner kopieren
Ordner anlegen (falls nicht vorhanden) und das JAR hineinkopieren:
%USERPROFILE%\.runelite\sideloaded-plugins\bank-highlighter.jar
Beispiel via Explorer: Start → %USERPROFILE%\.runelite\ eingeben → Ordner
sideloaded-plugins erstellen → JAR hineinlegen.
3. Developer Mode in RuneLite aktivieren
- RuneLite über den Jagex Launcher starten.
- Schraubenschlüssel (Configuration) → ganz nach unten scrollen → RuneLite-Reiter.
- „Enable Developer Mode" aktivieren (Hinweis bestätigen).
- RuneLite vollständig schließen und erneut starten.
4. Plugin aktivieren
Nach dem Neustart erscheinen die Plugins in der Plugin-Liste (Plug-Icon) unter External Plugins (unten).
- Essentials Plus aktivieren.
- Weitere: Example Plugin, Live Dashboard.
Automatisch aktualisieren
Sobald sich etwas im Quellcode ändert, im Projektordner laufen lassen:
gradlew.bat jar -t
Der Watcher kompiliert das schlanke JAR automatisch neu. Danach RuneLite einmal neu starten, damit das neue JAR geladen wird (Side-Loaded-Plugins werden nur beim Client-Start eingelesen – nicht live).
⚠️ Hinweis: Nach einem OSRS-Game-Update muss das JAR frisch gebaut werden (
gradlew.bat jarbzw. der Watcher), damit die API (net.runelite.api.gameval, …) zum laufenden Client-Rev passt. Läuft ein älteres JAR, können Plugins mit Fehlern abstürzen.