API Reference

Browse the complete RuneLite API documentation with simplified explanations and code examples

Showing 59 of 59 API classes

Player

Beginner

net.runelite.api

Game State

Represents the local player character. Provides access to player information like stats, location, and equipment.

4 members3 methods1 properties

Methods: getName, getCombatLevel, getWorldLocation

Client

Beginner

net.runelite.api

Game State

The main client interface. Provides access to game state, players, NPCs, items, and more. This is the entry point for most plugin functionality.

6 members6 methods

Methods: getLocalPlayer, getItemContainer, getNpcs...

GameTick

Beginner

net.runelite.api.events

Events

Fired every game tick (0.6 seconds). This is the most common event for plugins that need to run continuously.

2 members1 methods1 properties

Methods: toString

Overlay

Intermediate

net.runelite.client.ui.overlay

Rendering

Base class for rendering overlays on the game screen. Extend this to draw text, shapes, and images on top of the game. Use PanelComponent for text rendering (recommended).

1 members1 methods

Methods: render

Config

Intermediate

net.runelite.client.config

Configuration

Base interface for plugin configuration. Create an interface extending Config to define your plugin's settings.

0 members

ConfigGroup

Intermediate

net.runelite.client.config

Configuration

Annotation to group configuration items together. Use this on your config interface to organize settings.

0 members

ConfigSection

Intermediate

net.runelite.client.config

Configuration

Annotation to create sections within your configuration. Use this to organize related settings into groups.

0 members

NPC

Beginner

net.runelite.api

Game State

Represents a non-player character in the game. Use this to interact with NPCs, check their health, names, and locations.

2 members2 methods

Methods: getName, getHealthRatio

ItemContainer

Beginner

net.runelite.api

Game State

Represents a container of items, such as inventory, equipment, or bank. Provides methods to access and iterate through items.

5 members4 methods1 properties

Methods: getItems, contains, count...

PlayerChanged

Beginner

net.runelite.api.events

Events

Fired when player data changes, such as combat level, stats, or appearance. Use this to react to player state changes.

2 members1 methods1 properties

Methods: getPlayer

OverlayManager

Intermediate

net.runelite.client.ui.overlay

Rendering

Manages overlay registration and rendering. Use this to add and remove overlays from your plugin.

3 members3 methods

Methods: add, remove, addAfter

ConfigItem

Intermediate

net.runelite.client.config

Configuration

Annotation for individual configuration items. Use this to define specific settings in your config interface.

4 members4 properties

WorldPoint

Beginner

net.runelite.api.coords

Game State

Represents a point in the game world with X, Y, and plane coordinates. Use this for location-based calculations.

3 members3 methods

Methods: getX, getY, distanceTo

ItemContainerChanged

Beginner

net.runelite.api.events

Events

Fired when an item container (inventory, equipment, bank) changes. Use this to track item additions, removals, and quantity changes.

3 members2 methods1 properties

Methods: getContainerId, getItemContainer

StatChanged

Beginner

net.runelite.api.events

Events

Fired when a skill's level or experience changes. Perfect for tracking XP gains, level ups, and stat changes.

3 members3 methods

Methods: getSkill, getLevel, getBoostedLevel

Skill

Beginner

net.runelite.api

Game State

Enum representing all skills in the game. Use this to access skill-specific data like experience, levels, and boosts.

3 members2 methods1 properties

Methods: getName, values

KeyManager

Intermediate

net.runelite.client.input

Utility

Manages keyboard input listeners. Use this to register KeyListeners for handling keyboard shortcuts and hotkeys.

2 members2 methods

Methods: registerKeyListener, unregisterKeyListener

Inject

Beginner

javax.inject

Annotations

Annotation for dependency injection. Marks fields that RuneLite should automatically provide with instances.

0 members

Subscribe

Beginner

net.runelite.client.eventbus

Annotations

Annotation that marks a method as an event listener. RuneLite automatically registers @Subscribe methods in Plugin subclasses — no manual registration required.

0 members

Actor

Intermediate

net.runelite.api

Game State

Base class for Player and NPC. Provides common functionality like location, animation, and appearance.

3 members3 methods

Methods: getAnimation, getWorldLocation, getCanvasLocation

Item

Beginner

net.runelite.api

Game State

Represents a single item in a container. Contains the item ID and quantity.

2 members2 methods

Methods: getId, getQuantity

MenuEntry

Advanced

net.runelite.api

Utility

Represents a single entry in the right-click menu. Use this to add, remove, or modify menu options.

4 members4 methods

Methods: getOption, getTarget, setOption...

MenuEntryAdded

Advanced

net.runelite.api.events

Events

Fired when a menu entry is added to the right-click menu. Use this to modify menus before they're displayed.

3 members3 methods

Methods: getOption, getTarget, getType

InventoryID

Beginner

net.runelite.api

Game State

Enum containing IDs for different item containers. Use these constants instead of magic numbers.

3 members3 properties

MenuAction

Intermediate

net.runelite.api

Utility

Enum representing different types of menu actions. Use this to identify what type of action a menu entry represents.

3 members3 properties

OverlayLayer

Intermediate

net.runelite.client.ui.overlay

Rendering

Enum defining overlay rendering layers. Use this to control when your overlay is drawn relative to game elements.

3 members3 properties

OverlayPosition

Intermediate

net.runelite.client.ui.overlay

Rendering

Enum defining overlay positioning. Use this to control where your overlay appears on screen.

3 members3 properties

KeyListener

Intermediate

net.runelite.client.input

Utility

Interface for handling keyboard input. Implement this to respond to key presses, releases, and typing.

3 members3 methods

Methods: keyPressed, keyReleased, keyTyped

PluginDescriptor

Beginner

net.runelite.client.plugins

Annotations

Required annotation for all plugins. Tells RuneLite about your plugin's name and description.

2 members2 properties

Plugin

Beginner

net.runelite.client.plugins

Utility

Base class that all RuneLite plugins must extend. Provides lifecycle methods and plugin infrastructure.

2 members2 methods

Methods: startUp, shutDown

Graphics2D

Intermediate

java.awt

Rendering

Java's graphics context for drawing. Used in Overlay.render(Graphics2D) methods to draw text, shapes, and images. Note: For text rendering, prefer PanelComponent and LineComponent over raw graphics.drawString().

6 members6 methods

Methods: setColor, drawString, drawRect...

Color

Beginner

java.awt

Rendering

Represents a color in RGB or RGBA format. Use this for setting colors in overlays and configs.

3 members2 methods1 properties

Methods: Color Constructor (RGB), Color Constructor (RGBA)

Dimension

Beginner

java.awt

Rendering

Represents width and height. Return this from overlay render() methods to specify overlay size.

3 members1 methods2 properties

Methods: Dimension Constructor

Point

Beginner

java.awt

Rendering

Represents X and Y coordinates. Used for screen positions and locations.

3 members1 methods2 properties

Methods: Point Constructor

Font

Beginner

java.awt

Rendering

Represents a font for text rendering. Use this to set font family, style, and size.

2 members1 methods1 properties

Methods: Font Constructor

Timer

Intermediate

java.util

Utility

Java utility for scheduling tasks. Rarely used in RuneLite plugins — prefer GameTick events or clientThread.invokeLater() for timing.

3 members3 methods

Methods: schedule, scheduleAtFixedRate, cancel

String

Beginner

java.lang

Utility

Java's string class. Used extensively for text manipulation, comparisons, and formatting.

4 members4 methods

Methods: equals, contains, toLowerCase...

List

Beginner

java.util

Utility

Java interface for ordered collections. Use ArrayList or LinkedList implementations for storing multiple items.

4 members4 methods

Methods: add, get, size...

Map

Intermediate

java.util

Utility

Java interface for key-value pairs. Use HashMap implementation for storing data with keys.

4 members4 methods

Methods: put, get, containsKey...

ArrayList

Beginner

java.util

Utility

Resizable array implementation of List. Use this for dynamic lists that need fast access by index.

1 members1 methods

Methods: ArrayList Constructor

HashMap

Intermediate

java.util

Utility

Hash table implementation of Map. Use this for fast key-value lookups.

1 members1 methods

Methods: HashMap Constructor

TextComponent

Intermediate

net.runelite.client.ui.overlay.components

Rendering

Pre-built component for rendering text in overlays. Provides better text rendering than raw Graphics2D.

3 members3 methods

Methods: setText, setColor, render

PanelComponent

Intermediate

net.runelite.client.ui.overlay.components

Rendering

Pre-built component for creating panels with backgrounds and borders. Makes overlay UI creation easier.

4 members4 methods

Methods: setBackgroundColor, setBorderColor, getChildren...

ImageUtil

Advanced

net.runelite.client.util

Utility

Utility class for image operations. Provides methods for loading, resizing, and manipulating images.

2 members2 methods

Methods: loadImageResource, resizeImage

Text

Intermediate

net.runelite.client.ui.overlay.components

Rendering

Utility class for text rendering in overlays. Provides text measurement and drawing utilities.

2 members2 methods

Methods: getTextWidth, getTextHeight

LocalPoint

Intermediate

net.runelite.api.coords

Game State

Represents a point in local coordinates (relative to the current scene). Use this for scene-based calculations.

3 members3 methods

Methods: getX, getY, fromWorld

Tile

Intermediate

net.runelite.api

Game State

Represents a tile on the game map. Provides access to ground items, objects, and wall decorations.

2 members2 methods

Methods: getWorldLocation, getItemLayer

Scene

Advanced

net.runelite.api

Game State

Represents the current game scene. Provides access to tiles, objects, and the loaded area.

1 members1 methods

Methods: getTiles

TileObject

Intermediate

net.runelite.api

Game State

Represents a game object on a tile (trees, doors, chests, etc.). Use this to interact with game objects.

2 members2 methods

Methods: getId, getWorldLocation

ClientThread

Intermediate

net.runelite.client.callback

Utility

Ensures code runs on the game thread. Critical for safe chat messages, menu changes, and any client-modifying operations outside event handlers.

1 members1 methods

Methods: invokeLater

MenuManager

Intermediate

net.runelite.client.menus

Utility

Safe way to add/modify menu entries without breaking compatibility. Prefer this over direct client.setMenuEntries() manipulation.

2 members2 methods

Methods: addPriorityEntry, removePriorityEntry

ItemManager

Intermediate

net.runelite.client.game

Utility

Gets item prices, definitions, icons, and other item-related information. Essential for loot trackers, price checkers, and bank value calculators.

2 members2 methods

Methods: getItemPrice, getItemComposition

NotificationManager

Intermediate

net.runelite.client.ui.overlay

Utility

Sends notifications to users. Perfect for level-up alerts, achievements, warnings, and other important messages.

1 members1 methods

Methods: notify

Varbits

Intermediate

net.runelite.api

Game State

Constants for accessing game state variables (varbits). Used for special attack energy, run energy, combat style, and many other game values.

3 members3 properties

VarPlayer

Intermediate

net.runelite.api

Game State

Constants for accessing player-specific variables (varplayers). Used for run energy, special attack energy, and other player state values.

2 members2 properties

ScheduledExecutorService

Advanced

java.util.concurrent

Utility

Java utility for scheduling background tasks. Useful for periodic operations, delays, and async work that doesn't need to run on the game thread.

2 members2 methods

Methods: schedule, scheduleAtFixedRate

ChatMessageBuilder

Intermediate

net.runelite.client.chat

Utility

Builder for creating formatted chat messages with colors, links, and special formatting. More flexible than direct client.addChatMessage().

3 members3 methods

Methods: append, color, build

Perspective

Advanced

net.runelite.api

Rendering

Utility class for coordinate conversions between world, local, and screen coordinates. Essential for drawing overlays at specific world locations.

2 members2 methods

Methods: localToCanvas, localToMinimap

VarClient

Advanced

net.runelite.api

Game State

Constants for accessing client-side variables like camera angle, zoom level, and viewport settings. Useful for camera and rendering plugins.

3 members3 properties