Example Plugins

Explore curated plugin examples organized by complexity. Learn from real code and see how different API classes are used together.

Compare Plugins
Showing 42 of 42 plugins

Hello World Plugin

Beginner
Display

A simple plugin that displays 'Hello World' in the chat when you log in. Perfect for learning the basics of plugin development.

API Classes Used:
ClientClientThreadGameStateChanged
package com.example;

import net.runelite.api.Client;
import net.runelite.api.GameState;
import net.runelite.api.events.GameStateChanged;
import net.runelite.client.callback.ClientThread;
import net.runelite.client.eventbus.Subscribe;
import net.runelite.client.plugins.Plugin;
import net.runelite.client.plugins.PluginDescriptor;
import javax.inject.Inject;

@PluginDescriptor(
    name = "Hello World",
    description = "Displays Hello World message"
)
public class HelloWorldPlugin extends Plugin {
    @Inject
    private Client client;

    @Inject
    private ClientThread clientThread;
5 minutes readView Plugin →

Combat Level Display

Beginner
Overlay

Displays your combat level as an overlay on the screen. Shows how to access player data and render text overlays.

API Classes Used:
ClientPlayerOverlay
package com.example;

import net.runelite.api.Client;
import net.runelite.api.Player;
import net.runelite.client.ui.overlay.Overlay;
import net.runelite.client.ui.overlay.OverlayLayer;
import net.runelite.client.ui.overlay.OverlayPosition;
import net.runelite.client.ui.overlay.components.TextComponent;
import net.runelite.client.plugins.Plugin;
import net.runelite.client.plugins.PluginDescriptor;
import java.awt.*;

@PluginDescriptor(
    name = "Combat Level Display",
    description = "Shows your combat level on screen"
)
public class CombatLevelPlugin extends Plugin {
10 minutes readView Plugin →

Inventory Tracker

Intermediate
Data

Tracks and displays inventory item counts. Demonstrates how to access inventory data and respond to changes.

API Classes Used:
ClientItemContainerItemContainerChanged
package com.example;

import net.runelite.api.Client;
import net.runelite.api.ItemContainer;
import net.runelite.api.events.ItemContainerChanged;
import net.runelite.client.eventbus.Subscribe;
import net.runelite.client.plugins.Plugin;
import net.runelite.client.plugins.PluginDescriptor;
import java.util.HashMap;
import java.util.Map;

@PluginDescriptor(
    name = "Inventory Tracker",
    description = "Tracks inventory item counts"
)
public class InventoryTrackerPlugin extends Plugin {
15 minutes readView Plugin →

XP Tracker

Intermediate
Data

Tracks and displays experience points gained. Shows how to monitor stat changes and calculate XP gains over time.

API Classes Used:
ClientStatChangedPlayer
package com.example;

import net.runelite.api.Client;
import net.runelite.api.Skill;
import net.runelite.api.events.StatChanged;
import net.runelite.client.eventbus.Subscribe;
import net.runelite.client.plugins.Plugin;
import net.runelite.client.plugins.PluginDescriptor;
import java.util.HashMap;
import java.util.Map;

@PluginDescriptor(
    name = "XP Tracker",
    description = "Tracks experience points gained"
)
public class XPTrackerPlugin extends Plugin {
12 minutes readView Plugin →

NPC Highlighter

Advanced
Overlay

Highlights specific NPCs on the screen. Demonstrates NPC iteration, filtering, and overlay rendering with shapes.

API Classes Used:
ClientNPCNpcSpawned+2 more
package com.example;

import net.runelite.api.Client;
import net.runelite.api.NPC;
import net.runelite.api.events.GameTick;
import net.runelite.client.eventbus.Subscribe;
import net.runelite.client.plugins.Plugin;
import net.runelite.client.plugins.PluginDescriptor;
import net.runelite.client.ui.overlay.Overlay;
import net.runelite.client.ui.overlay.OverlayManager;
import javax.inject.Inject;
import java.awt.*;

@PluginDescriptor(
    name = "NPC Highlighter",
    description = "Highlights NPCs on screen"
)
public class NPCHighlighterPlugin extends Plugin {
18 minutes readView Plugin →

Keyboard Shortcuts

Intermediate
Interactive

Adds custom keyboard shortcuts to your plugin. Shows how to handle keyboard input and create hotkeys.

API Classes Used:
KeyManagerKeyListener
package com.example;

import net.runelite.client.input.KeyListener;
import net.runelite.client.input.KeyManager;
import net.runelite.client.plugins.Plugin;
import net.runelite.client.plugins.PluginDescriptor;
import javax.inject.Inject;
import java.awt.event.KeyEvent;

@PluginDescriptor(
    name = "Keyboard Shortcuts",
    description = "Custom keyboard shortcuts"
)
public class KeyboardShortcutsPlugin extends Plugin {
10 minutes readView Plugin →

Stat Display

Beginner
Display

Displays your current skill levels and experience in an overlay. Shows how to access skill data and format it for display.

API Classes Used:
ClientSkillOverlay
package com.example;

import net.runelite.api.Client;
import net.runelite.api.Skill;
import net.runelite.client.ui.overlay.Overlay;
import net.runelite.client.ui.overlay.OverlayManager;
import net.runelite.client.plugins.Plugin;
import net.runelite.client.plugins.PluginDescriptor;
import javax.inject.Inject;
import java.awt.*;

@PluginDescriptor(
    name = "Stat Display",
    description = "Shows your skill levels"
)
public class StatDisplayPlugin extends Plugin {
12 minutes readView Plugin →

Menu Entry Manipulator

Advanced
Utility

Modifies right-click menu entries. Demonstrates how to add, remove, or reorder menu options using MenuEntryAdded events.

API Classes Used:
MenuEntryAddedMenuManager
package com.example;

import net.runelite.api.Client;
import net.runelite.api.MenuEntry;
import net.runelite.api.events.MenuEntryAdded;
import net.runelite.client.eventbus.Subscribe;
import net.runelite.client.plugins.Plugin;
import net.runelite.client.plugins.PluginDescriptor;
import javax.inject.Inject;

@PluginDescriptor(
    name = "Menu Entry Manipulator",
    description = "Modifies right-click menus"
)
public class MenuEntryManipulatorPlugin extends Plugin {
20 minutes readView Plugin →

Configurable Overlay

Intermediate
Display

An overlay plugin with user-configurable settings. Demonstrates how to create config interfaces, add settings, and use them in your plugin.

API Classes Used:
ConfigConfigItemConfigGroup+1 more
package com.example;

import net.runelite.client.config.Config;
import net.runelite.client.config.ConfigGroup;
import net.runelite.client.config.ConfigItem;
import net.runelite.client.plugins.Plugin;
import net.runelite.client.plugins.PluginDescriptor;
import javax.inject.Inject;
import java.awt.*;

@PluginDescriptor(
    name = "Configurable Overlay",
    description = "Overlay with configurable settings"
)
public class ConfigurableOverlayPlugin extends Plugin {
    @Inject
    private ConfigurableOverlayConfig config;
20 minutes readView Plugin →

Player Location Tracker

Beginner
Display

Displays your current world coordinates and region. Shows how to access and display location data.

API Classes Used:
ClientPlayerWorldPoint+1 more
package com.example;

import net.runelite.api.Client;
import net.runelite.api.Player;
import net.runelite.api.coords.WorldPoint;
import net.runelite.client.ui.overlay.Overlay;
import net.runelite.client.plugins.Plugin;
import net.runelite.client.plugins.PluginDescriptor;
import javax.inject.Inject;
import java.awt.*;

@PluginDescriptor(
    name = "Location Tracker",
    description = "Shows your current location"
)
public class LocationTrackerPlugin extends Plugin {
8 minutes readView Plugin →

Health Bar Overlay

Intermediate
Overlay

Draws a health bar above the player showing current and maximum hitpoints. Demonstrates advanced overlay rendering with shapes.

API Classes Used:
ClientPlayerOverlay+1 more
package com.example;

import net.runelite.api.Client;
import net.runelite.api.Player;
import net.runelite.client.ui.overlay.Overlay;
import net.runelite.client.ui.overlay.OverlayManager;
import net.runelite.client.plugins.Plugin;
import net.runelite.client.plugins.PluginDescriptor;
import javax.inject.Inject;
import java.awt.*;

@PluginDescriptor(
    name = "Health Bar",
    description = "Shows health bar above player"
)
public class HealthBarPlugin extends Plugin {
15 minutes readView Plugin →

Item Highlighter

Advanced
Overlay

Highlights specific items on the ground. Shows how to iterate through tiles and draw highlights.

API Classes Used:
ClientItemSpawnedItemDespawned+1 more
package com.example;

import net.runelite.api.Client;
import net.runelite.api.Scene;
import net.runelite.api.Tile;
import net.runelite.client.ui.overlay.Overlay;
import net.runelite.client.plugins.Plugin;
import net.runelite.client.plugins.PluginDescriptor;
import javax.inject.Inject;
import java.awt.*;

@PluginDescriptor(
    name = "Item Highlighter",
    description = "Highlights items on ground"
)
public class ItemHighlighterPlugin extends Plugin {
20 minutes readView Plugin →

Skill Level Alert

Beginner
Display

Sends a chat message when you level up a skill. Demonstrates StatChanged event handling.

API Classes Used:
ClientStatChangedSkill
package com.example;

import net.runelite.api.Client;
import net.runelite.api.Skill;
import net.runelite.api.events.StatChanged;
import net.runelite.client.eventbus.Subscribe;
import net.runelite.client.plugins.Plugin;
import net.runelite.client.plugins.PluginDescriptor;
import javax.inject.Inject;

@PluginDescriptor(
    name = "Level Alert",
    description = "Alerts on level up"
)
public class LevelAlertPlugin extends Plugin {
10 minutes readView Plugin →

Equipment Tracker

Intermediate
Data

Tracks what items you're wearing and displays them. Shows how to access equipment data.

API Classes Used:
ClientItemContainerInventoryID
package com.example;

import net.runelite.api.Client;
import net.runelite.api.ItemContainer;
import net.runelite.api.Item;
import net.runelite.client.plugins.Plugin;
import net.runelite.client.plugins.PluginDescriptor;
import javax.inject.Inject;

@PluginDescriptor(
    name = "Equipment Tracker",
    description = "Tracks equipped items"
)
public class EquipmentTrackerPlugin extends Plugin {
12 minutes readView Plugin →

Chat Filter

Intermediate
Utility

Filters chat messages based on keywords. Demonstrates chat event handling and message filtering.

API Classes Used:
ChatMessageClient
package com.example;

import net.runelite.api.Client;
import net.runelite.api.events.ChatMessage;
import net.runelite.client.eventbus.Subscribe;
import net.runelite.client.plugins.Plugin;
import net.runelite.client.plugins.PluginDescriptor;
import javax.inject.Inject;

@PluginDescriptor(
    name = "Chat Filter",
    description = "Filters chat messages"
)
public class ChatFilterPlugin extends Plugin {
12 minutes readView Plugin →

Auto Responder

Advanced
Interactive

Automatically responds to private messages with a custom message. Shows private message event handling.

API Classes Used:
ClientPrivateMessage
package com.example;

import net.runelite.api.Client;
import net.runelite.api.events.PrivateMessageReceived;
import net.runelite.client.eventbus.Subscribe;
import net.runelite.client.plugins.Plugin;
import net.runelite.client.plugins.PluginDescriptor;
import javax.inject.Inject;

@PluginDescriptor(
    name = "Auto Responder",
    description = "Auto responds to PMs"
)
public class AutoResponderPlugin extends Plugin {
15 minutes readView Plugin →

Bank Value Calculator

Intermediate
Data

Calculates the total value of items in your bank. Demonstrates item iteration and value calculation.

API Classes Used:
ClientItemContainerItem
package com.example;

import net.runelite.api.Client;
import net.runelite.api.ItemContainer;
import net.runelite.api.Item;
import net.runelite.client.plugins.Plugin;
import net.runelite.client.plugins.PluginDescriptor;
import javax.inject.Inject;

@PluginDescriptor(
    name = "Bank Value Calculator",
    description = "Calculates bank value"
)
public class BankValuePlugin extends Plugin {
18 minutes readView Plugin →

Prayer Points Display

Beginner
Display

Displays current prayer points as an overlay. Shows how to access skill data and render it.

API Classes Used:
ClientSkillOverlay
package com.example;

import net.runelite.api.Client;
import net.runelite.api.Skill;
import net.runelite.client.ui.overlay.Overlay;
import net.runelite.client.ui.overlay.OverlayManager;
import net.runelite.client.plugins.Plugin;
import net.runelite.client.plugins.PluginDescriptor;
import javax.inject.Inject;
import java.awt.*;

@PluginDescriptor(
    name = "Prayer Points",
    description = "Shows prayer points"
)
public class PrayerPointsPlugin extends Plugin {
8 minutes readView Plugin →

Run Energy Tracker

Beginner
Display

Tracks and displays run energy percentage. Shows how to access energy data and create informative overlays.

API Classes Used:
ClientOverlay
package com.example;

import net.runelite.api.Client;
import net.runelite.client.ui.overlay.Overlay;
import net.runelite.client.ui.overlay.OverlayManager;
import net.runelite.client.plugins.Plugin;
import net.runelite.client.plugins.PluginDescriptor;
import javax.inject.Inject;
import java.awt.*;

@PluginDescriptor(
    name = "Run Energy Tracker",
    description = "Shows run energy"
)
public class RunEnergyPlugin extends Plugin {
10 minutes readView Plugin →

Combat Stat Display

Intermediate
Display

Displays all combat stats (Attack, Strength, Defence, etc.) in a compact overlay. Shows skill iteration and formatting.

API Classes Used:
ClientSkillOverlay
package com.example;

import net.runelite.api.Client;
import net.runelite.api.Skill;
import net.runelite.client.ui.overlay.Overlay;
import net.runelite.client.ui.overlay.OverlayManager;
import net.runelite.client.plugins.Plugin;
import net.runelite.client.plugins.PluginDescriptor;
import javax.inject.Inject;
import java.awt.*;

@PluginDescriptor(
    name = "Combat Stats",
    description = "Shows combat skills"
)
public class CombatStatsPlugin extends Plugin {
12 minutes readView Plugin →

Item Count Notifier

Intermediate
Utility

Notifies you when you have a certain number of items. Useful for tracking supplies or resources.

API Classes Used:
ClientItemContainerGameTick
package com.example;

import net.runelite.api.Client;
import net.runelite.api.ItemContainer;
import net.runelite.api.events.GameTick;
import net.runelite.client.eventbus.Subscribe;
import net.runelite.client.plugins.Plugin;
import net.runelite.client.plugins.PluginDescriptor;
import javax.inject.Inject;

@PluginDescriptor(
    name = "Item Count Notifier",
    description = "Alerts on item count"
)
public class ItemCountNotifierPlugin extends Plugin {
12 minutes readView Plugin →

Animation Tracker

Beginner
Data

Tracks and displays the current animation ID. Useful for detecting specific actions like attacking or skilling.

API Classes Used:
ClientPlayerOverlay
package com.example;

import net.runelite.api.Client;
import net.runelite.api.Player;
import net.runelite.client.ui.overlay.Overlay;
import net.runelite.client.ui.overlay.OverlayManager;
import net.runelite.client.plugins.Plugin;
import net.runelite.client.plugins.PluginDescriptor;
import javax.inject.Inject;
import java.awt.*;

@PluginDescriptor(
    name = "Animation Tracker",
    description = "Shows current animation"
)
public class AnimationTrackerPlugin extends Plugin {
8 minutes readView Plugin →

World Hopper Helper

Beginner
Display

Displays current world number and provides quick world information. Shows how to access world data.

API Classes Used:
ClientOverlay
package com.example;

import net.runelite.api.Client;
import net.runelite.client.ui.overlay.Overlay;
import net.runelite.client.ui.overlay.OverlayManager;
import net.runelite.client.plugins.Plugin;
import net.runelite.client.plugins.PluginDescriptor;
import javax.inject.Inject;
import java.awt.*;

@PluginDescriptor(
    name = "World Hopper Helper",
    description = "Shows current world"
)
public class WorldHopperPlugin extends Plugin {
6 minutes readView Plugin →

FPS Display

Intermediate
Display

Displays the current frames per second. Useful for performance monitoring and optimization.

API Classes Used:
ClientOverlay
package com.example;

import net.runelite.api.Client;
import net.runelite.client.ui.overlay.Overlay;
import net.runelite.client.ui.overlay.OverlayManager;
import net.runelite.client.plugins.Plugin;
import net.runelite.client.plugins.PluginDescriptor;
import javax.inject.Inject;
import java.awt.*;

@PluginDescriptor(
    name = "FPS Display",
    description = "Shows FPS"
)
public class FPSDisplayPlugin extends Plugin {
6 minutes readView Plugin →

Death Counter

Intermediate
Data

Counts and displays how many times you've died. Tracks death events and maintains a counter.

API Classes Used:
ClientPlayerDeathOverlay
package com.example;

import net.runelite.api.Client;
import net.runelite.api.events.PlayerDeath;
import net.runelite.client.eventbus.Subscribe;
import net.runelite.client.plugins.Plugin;
import net.runelite.client.plugins.PluginDescriptor;
import net.runelite.client.ui.overlay.Overlay;
import javax.inject.Inject;
import java.awt.*;

@PluginDescriptor(
    name = "Death Counter",
    description = "Counts deaths"
)
public class DeathCounterPlugin extends Plugin {
12 minutes readView Plugin →

Loot Tracker

Advanced
Data

Tracks items picked up from the ground. Demonstrates ground item event handling and data tracking.

API Classes Used:
ClientItemContainerChangedInventoryID
package com.example;

import net.runelite.api.Client;
import net.runelite.api.events.ItemSpawned;
import net.runelite.api.events.ItemDespawned;
import net.runelite.client.eventbus.Subscribe;
import net.runelite.client.plugins.Plugin;
import net.runelite.client.plugins.PluginDescriptor;
import javax.inject.Inject;
import java.util.HashMap;
import java.util.Map;

@PluginDescriptor(
    name = "Loot Tracker",
    description = "Tracks picked up items"
)
public class LootTrackerPlugin extends Plugin {
18 minutes readView Plugin →

Boost Indicator

Intermediate
Display

Shows which skills are currently boosted above their base level. Displays boost amounts and remaining time.

API Classes Used:
ClientSkillOverlay
package com.example;

import net.runelite.api.Client;
import net.runelite.api.Skill;
import net.runelite.client.ui.overlay.Overlay;
import net.runelite.client.ui.overlay.OverlayManager;
import net.runelite.client.plugins.Plugin;
import net.runelite.client.plugins.PluginDescriptor;
import javax.inject.Inject;
import java.awt.*;

@PluginDescriptor(
    name = "Boost Indicator",
    description = "Shows skill boosts"
)
public class BoostIndicatorPlugin extends Plugin {
15 minutes readView Plugin →

Minimap Overlay

Advanced
Overlay

Draws custom markers on the minimap. Demonstrates minimap coordinate conversion and drawing.

API Classes Used:
ClientWorldPointLocalPoint+1 more
package com.example;

import net.runelite.api.Client;
import net.runelite.api.coords.WorldPoint;
import net.runelite.api.coords.LocalPoint;
import net.runelite.client.ui.overlay.Overlay;
import net.runelite.client.plugins.Plugin;
import net.runelite.client.plugins.PluginDescriptor;
import javax.inject.Inject;
import java.awt.*;

@PluginDescriptor(
    name = "Minimap Overlay",
    description = "Draws on minimap"
)
public class MinimapOverlayPlugin extends Plugin {
20 minutes readView Plugin →

Potion Timer

Advanced
Display

Tracks potion effects and displays remaining time. Shows how to monitor stat changes and calculate durations.

API Classes Used:
ClientStatChangedSkill+1 more
package com.example;

import net.runelite.api.Client;
import net.runelite.api.Skill;
import net.runelite.api.events.StatChanged;
import net.runelite.client.eventbus.Subscribe;
import net.runelite.client.plugins.Plugin;
import net.runelite.client.plugins.PluginDescriptor;
import net.runelite.client.ui.overlay.Overlay;
import javax.inject.Inject;
import java.awt.*;
import java.util.HashMap;
import java.util.Map;

@PluginDescriptor(
    name = "Potion Timer",
    description = "Tracks potion effects"
)
public class PotionTimerPlugin extends Plugin {
20 minutes readView Plugin →

Click Counter

Intermediate
Data

Counts and displays mouse clicks. Useful for tracking activity and testing. Demonstrates mouse event handling.

API Classes Used:
MouseManagerOverlay
package com.example;

import net.runelite.client.ui.overlay.Overlay;
import net.runelite.client.ui.overlay.OverlayManager;
import net.runelite.client.plugins.Plugin;
import net.runelite.client.plugins.PluginDescriptor;
import javax.inject.Inject;
import java.awt.*;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;

@PluginDescriptor(
    name = "Click Counter",
    description = "Counts mouse clicks"
)
public class ClickCounterPlugin extends Plugin {
12 minutes readView Plugin →

Time Display

Beginner
Display

Displays the current in-game time. Shows how to access game time and format it for display.

API Classes Used:
ClientOverlay
package com.example;

import net.runelite.api.Client;
import net.runelite.client.ui.overlay.Overlay;
import net.runelite.client.ui.overlay.OverlayManager;
import net.runelite.client.plugins.Plugin;
import net.runelite.client.plugins.PluginDescriptor;
import javax.inject.Inject;
import java.awt.*;

@PluginDescriptor(
    name = "Time Display",
    description = "Shows game time"
)
public class TimeDisplayPlugin extends Plugin {
10 minutes readView Plugin →

Special Attack Tracker

Intermediate
Display

Tracks special attack energy and displays it. Shows how to monitor special attack percentage.

API Classes Used:
ClientOverlay
package com.example;

import net.runelite.api.Client;
import net.runelite.client.ui.overlay.Overlay;
import net.runelite.client.ui.overlay.OverlayManager;
import net.runelite.client.plugins.Plugin;
import net.runelite.client.plugins.PluginDescriptor;
import javax.inject.Inject;
import java.awt.*;

@PluginDescriptor(
    name = "Special Attack Tracker",
    description = "Shows special attack energy"
)
public class SpecialAttackPlugin extends Plugin {
10 minutes readView Plugin →

Quest Helper Basic

Advanced
Overlay

A basic quest helper that highlights NPCs and objects needed for quests. Demonstrates quest state tracking.

API Classes Used:
ClientNPCTileObject+1 more
package com.example;

import net.runelite.api.Client;
import net.runelite.api.NPC;
import net.runelite.api.TileObject;
import net.runelite.client.ui.overlay.Overlay;
import net.runelite.client.ui.overlay.OverlayManager;
import net.runelite.client.plugins.Plugin;
import net.runelite.client.plugins.PluginDescriptor;
import javax.inject.Inject;
import java.awt.*;

@PluginDescriptor(
    name = "Quest Helper Basic",
    description = "Highlights quest NPCs/objects"
)
public class QuestHelperPlugin extends Plugin {
22 minutes readView Plugin →

Damage Dealt Tracker

Advanced
Data

Tracks damage dealt to NPCs. Shows how to monitor combat and calculate damage.

API Classes Used:
ClientNPCHitsplatApplied
package com.example;

import net.runelite.api.Client;
import net.runelite.api.NPC;
import net.runelite.api.events.HitsplatApplied;
import net.runelite.client.eventbus.Subscribe;
import net.runelite.client.plugins.Plugin;
import net.runelite.client.plugins.PluginDescriptor;
import javax.inject.Inject;
import java.util.HashMap;
import java.util.Map;

@PluginDescriptor(
    name = "Damage Tracker",
    description = "Tracks damage dealt"
)
public class DamageTrackerPlugin extends Plugin {
18 minutes readView Plugin →

Bank PIN Helper

Intermediate
Utility

A simple helper for remembering bank PIN patterns. Displays a visual aid for PIN entry.

API Classes Used:
ClientOverlay
package com.example;

import net.runelite.api.Client;
import net.runelite.client.ui.overlay.Overlay;
import net.runelite.client.ui.overlay.OverlayManager;
import net.runelite.client.plugins.Plugin;
import net.runelite.client.plugins.PluginDescriptor;
import javax.inject.Inject;
import java.awt.*;

@PluginDescriptor(
    name = "Bank PIN Helper",
    description = "Helps with bank PIN"
)
public class BankPinHelperPlugin extends Plugin {
12 minutes readView Plugin →

AFK Detector

Intermediate
Utility

Detects when you're AFK (away from keyboard) by monitoring lack of activity. Useful for safety.

API Classes Used:
ClientPlayerGameTick
package com.example;

import net.runelite.api.Client;
import net.runelite.api.Player;
import net.runelite.api.events.GameTick;
import net.runelite.client.eventbus.Subscribe;
import net.runelite.client.plugins.Plugin;
import net.runelite.client.plugins.PluginDescriptor;
import javax.inject.Inject;

@PluginDescriptor(
    name = "AFK Detector",
    description = "Detects AFK status"
)
public class AFKDetectorPlugin extends Plugin {
15 minutes readView Plugin →

Resource Tracker

Advanced
Data

Tracks resources gathered (logs, ores, fish, etc.) and displays statistics. Shows event-based tracking.

API Classes Used:
ClientStatChangedItemContainerChanged
package com.example;

import net.runelite.api.Client;
import net.runelite.api.events.ItemContainerChanged;
import net.runelite.client.eventbus.Subscribe;
import net.runelite.client.plugins.Plugin;
import net.runelite.client.plugins.PluginDescriptor;
import javax.inject.Inject;
import java.util.HashMap;
import java.util.Map;

@PluginDescriptor(
    name = "Resource Tracker",
    description = "Tracks gathered resources"
)
public class ResourceTrackerPlugin extends Plugin {
18 minutes readView Plugin →

Prayer Flick Helper

Advanced
Utility

Helps with prayer flicking by showing optimal timing. Demonstrates prayer point monitoring and timing calculations.

API Classes Used:
ClientSkillGameTick+1 more
package com.example;

import net.runelite.api.Client;
import net.runelite.api.Skill;
import net.runelite.api.events.GameTick;
import net.runelite.client.eventbus.Subscribe;
import net.runelite.client.plugins.Plugin;
import net.runelite.client.plugins.PluginDescriptor;
import net.runelite.client.ui.overlay.Overlay;
import javax.inject.Inject;
import java.awt.*;

@PluginDescriptor(
    name = "Prayer Flick Helper",
    description = "Helps with prayer flicking"
)
public class PrayerFlickPlugin extends Plugin {
18 minutes readView Plugin →

Multi-Login Detector

Intermediate
Utility

Detects if you have multiple accounts logged in. Useful for account management.

API Classes Used:
Client
package com.example;

import net.runelite.api.Client;
import net.runelite.client.plugins.Plugin;
import net.runelite.client.plugins.PluginDescriptor;
import javax.inject.Inject;

@PluginDescriptor(
    name = "Multi-Login Detector",
    description = "Detects multiple logins"
)
public class MultiLoginPlugin extends Plugin {
10 minutes readView Plugin →

Combat Style Indicator

Intermediate
Display

Displays your current combat style (Aggressive, Defensive, etc.). Shows how to access combat configuration.

API Classes Used:
ClientVarbitsOverlay
package com.example;

import net.runelite.api.Client;
import net.runelite.client.ui.overlay.Overlay;
import net.runelite.client.ui.overlay.OverlayManager;
import net.runelite.client.plugins.Plugin;
import net.runelite.client.plugins.PluginDescriptor;
import javax.inject.Inject;
import java.awt.*;

@PluginDescriptor(
    name = "Combat Style Indicator",
    description = "Shows combat style"
)
public class CombatStylePlugin extends Plugin {
12 minutes readView Plugin →

Item Price Checker

Advanced
Display

Displays item prices when hovering. Shows how to get item information and display tooltips.

API Classes Used:
ClientItemManagerMenuEntryAdded
package com.example;

import net.runelite.api.Client;
import net.runelite.client.game.ItemManager;
import net.runelite.api.events.MenuEntryAdded;
import net.runelite.client.eventbus.Subscribe;
import net.runelite.client.plugins.Plugin;
import net.runelite.client.plugins.PluginDescriptor;
import javax.inject.Inject;

@PluginDescriptor(
    name = "Item Price Checker",
    description = "Shows item prices"
)
public class ItemPricePlugin extends Plugin {
20 minutes readView Plugin →

Notification Manager

Intermediate
Utility

Sends customizable notifications for various game events. Demonstrates notification system usage.

API Classes Used:
ClientNotificationManagerStatChanged
package com.example;

import net.runelite.api.Client;
import net.runelite.api.events.StatChanged;
import net.runelite.client.eventbus.Subscribe;
import net.runelite.client.plugins.Plugin;
import net.runelite.client.plugins.PluginDescriptor;
import net.runelite.client.ui.overlay.Overlay;
import javax.inject.Inject;

@PluginDescriptor(
    name = "Notification Manager",
    description = "Sends notifications"
)
public class NotificationPlugin extends Plugin {
15 minutes readView Plugin →