API Reference
Browse the complete RuneLite API documentation with simplified explanations and code examples
Player
Beginnernet.runelite.api
Represents the local player character. Provides access to player information like stats, location, and equipment.
Methods: getName, getCombatLevel, getWorldLocation
Client
Beginnernet.runelite.api
The main client interface. Provides access to game state, players, NPCs, items, and more. This is the entry point for most plugin functionality.
Methods: getLocalPlayer, getItemContainer, getNpcs...
GameTick
Beginnernet.runelite.api.events
Fired every game tick (0.6 seconds). This is the most common event for plugins that need to run continuously.
Methods: toString
Overlay
Intermediatenet.runelite.client.ui.overlay
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).
Methods: render
Config
Intermediatenet.runelite.client.config
Base interface for plugin configuration. Create an interface extending Config to define your plugin's settings.
ConfigGroup
Intermediatenet.runelite.client.config
Annotation to group configuration items together. Use this on your config interface to organize settings.
ConfigSection
Intermediatenet.runelite.client.config
Annotation to create sections within your configuration. Use this to organize related settings into groups.
NPC
Beginnernet.runelite.api
Represents a non-player character in the game. Use this to interact with NPCs, check their health, names, and locations.
Methods: getName, getHealthRatio
ItemContainer
Beginnernet.runelite.api
Represents a container of items, such as inventory, equipment, or bank. Provides methods to access and iterate through items.
Methods: getItems, contains, count...
PlayerChanged
Beginnernet.runelite.api.events
Fired when player data changes, such as combat level, stats, or appearance. Use this to react to player state changes.
Methods: getPlayer
OverlayManager
Intermediatenet.runelite.client.ui.overlay
Manages overlay registration and rendering. Use this to add and remove overlays from your plugin.
Methods: add, remove, addAfter
ConfigItem
Intermediatenet.runelite.client.config
Annotation for individual configuration items. Use this to define specific settings in your config interface.
WorldPoint
Beginnernet.runelite.api.coords
Represents a point in the game world with X, Y, and plane coordinates. Use this for location-based calculations.
Methods: getX, getY, distanceTo
ItemContainerChanged
Beginnernet.runelite.api.events
Fired when an item container (inventory, equipment, bank) changes. Use this to track item additions, removals, and quantity changes.
Methods: getContainerId, getItemContainer
StatChanged
Beginnernet.runelite.api.events
Fired when a skill's level or experience changes. Perfect for tracking XP gains, level ups, and stat changes.
Methods: getSkill, getLevel, getBoostedLevel
Skill
Beginnernet.runelite.api
Enum representing all skills in the game. Use this to access skill-specific data like experience, levels, and boosts.
Methods: getName, values
KeyManager
Intermediatenet.runelite.client.input
Manages keyboard input listeners. Use this to register KeyListeners for handling keyboard shortcuts and hotkeys.
Methods: registerKeyListener, unregisterKeyListener
Inject
Beginnerjavax.inject
Annotation for dependency injection. Marks fields that RuneLite should automatically provide with instances.
Subscribe
Beginnernet.runelite.client.eventbus
Annotation that marks a method as an event listener. RuneLite automatically registers @Subscribe methods in Plugin subclasses — no manual registration required.
Actor
Intermediatenet.runelite.api
Base class for Player and NPC. Provides common functionality like location, animation, and appearance.
Methods: getAnimation, getWorldLocation, getCanvasLocation
Item
Beginnernet.runelite.api
Represents a single item in a container. Contains the item ID and quantity.
Methods: getId, getQuantity
MenuEntry
Advancednet.runelite.api
Represents a single entry in the right-click menu. Use this to add, remove, or modify menu options.
Methods: getOption, getTarget, setOption...
MenuEntryAdded
Advancednet.runelite.api.events
Fired when a menu entry is added to the right-click menu. Use this to modify menus before they're displayed.
Methods: getOption, getTarget, getType
InventoryID
Beginnernet.runelite.api
Enum containing IDs for different item containers. Use these constants instead of magic numbers.
MenuAction
Intermediatenet.runelite.api
Enum representing different types of menu actions. Use this to identify what type of action a menu entry represents.
OverlayLayer
Intermediatenet.runelite.client.ui.overlay
Enum defining overlay rendering layers. Use this to control when your overlay is drawn relative to game elements.
OverlayPosition
Intermediatenet.runelite.client.ui.overlay
Enum defining overlay positioning. Use this to control where your overlay appears on screen.
KeyListener
Intermediatenet.runelite.client.input
Interface for handling keyboard input. Implement this to respond to key presses, releases, and typing.
Methods: keyPressed, keyReleased, keyTyped
PluginDescriptor
Beginnernet.runelite.client.plugins
Required annotation for all plugins. Tells RuneLite about your plugin's name and description.
Plugin
Beginnernet.runelite.client.plugins
Base class that all RuneLite plugins must extend. Provides lifecycle methods and plugin infrastructure.
Methods: startUp, shutDown
Graphics2D
Intermediatejava.awt
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().
Methods: setColor, drawString, drawRect...
Color
Beginnerjava.awt
Represents a color in RGB or RGBA format. Use this for setting colors in overlays and configs.
Methods: Color Constructor (RGB), Color Constructor (RGBA)
Dimension
Beginnerjava.awt
Represents width and height. Return this from overlay render() methods to specify overlay size.
Methods: Dimension Constructor
Point
Beginnerjava.awt
Represents X and Y coordinates. Used for screen positions and locations.
Methods: Point Constructor
Font
Beginnerjava.awt
Represents a font for text rendering. Use this to set font family, style, and size.
Methods: Font Constructor
Timer
Intermediatejava.util
Java utility for scheduling tasks. Rarely used in RuneLite plugins — prefer GameTick events or clientThread.invokeLater() for timing.
Methods: schedule, scheduleAtFixedRate, cancel
String
Beginnerjava.lang
Java's string class. Used extensively for text manipulation, comparisons, and formatting.
Methods: equals, contains, toLowerCase...
List
Beginnerjava.util
Java interface for ordered collections. Use ArrayList or LinkedList implementations for storing multiple items.
Methods: add, get, size...
Map
Intermediatejava.util
Java interface for key-value pairs. Use HashMap implementation for storing data with keys.
Methods: put, get, containsKey...
ArrayList
Beginnerjava.util
Resizable array implementation of List. Use this for dynamic lists that need fast access by index.
Methods: ArrayList Constructor
HashMap
Intermediatejava.util
Hash table implementation of Map. Use this for fast key-value lookups.
Methods: HashMap Constructor
TextComponent
Intermediatenet.runelite.client.ui.overlay.components
Pre-built component for rendering text in overlays. Provides better text rendering than raw Graphics2D.
Methods: setText, setColor, render
PanelComponent
Intermediatenet.runelite.client.ui.overlay.components
Pre-built component for creating panels with backgrounds and borders. Makes overlay UI creation easier.
Methods: setBackgroundColor, setBorderColor, getChildren...
ImageUtil
Advancednet.runelite.client.util
Utility class for image operations. Provides methods for loading, resizing, and manipulating images.
Methods: loadImageResource, resizeImage
Text
Intermediatenet.runelite.client.ui.overlay.components
Utility class for text rendering in overlays. Provides text measurement and drawing utilities.
Methods: getTextWidth, getTextHeight
LocalPoint
Intermediatenet.runelite.api.coords
Represents a point in local coordinates (relative to the current scene). Use this for scene-based calculations.
Methods: getX, getY, fromWorld
Tile
Intermediatenet.runelite.api
Represents a tile on the game map. Provides access to ground items, objects, and wall decorations.
Methods: getWorldLocation, getItemLayer
Scene
Advancednet.runelite.api
Represents the current game scene. Provides access to tiles, objects, and the loaded area.
Methods: getTiles
TileObject
Intermediatenet.runelite.api
Represents a game object on a tile (trees, doors, chests, etc.). Use this to interact with game objects.
Methods: getId, getWorldLocation
ClientThread
Intermediatenet.runelite.client.callback
Ensures code runs on the game thread. Critical for safe chat messages, menu changes, and any client-modifying operations outside event handlers.
Methods: invokeLater
MenuManager
Intermediatenet.runelite.client.menus
Safe way to add/modify menu entries without breaking compatibility. Prefer this over direct client.setMenuEntries() manipulation.
Methods: addPriorityEntry, removePriorityEntry
ItemManager
Intermediatenet.runelite.client.game
Gets item prices, definitions, icons, and other item-related information. Essential for loot trackers, price checkers, and bank value calculators.
Methods: getItemPrice, getItemComposition
NotificationManager
Intermediatenet.runelite.client.ui.overlay
Sends notifications to users. Perfect for level-up alerts, achievements, warnings, and other important messages.
Methods: notify
Varbits
Intermediatenet.runelite.api
Constants for accessing game state variables (varbits). Used for special attack energy, run energy, combat style, and many other game values.
VarPlayer
Intermediatenet.runelite.api
Constants for accessing player-specific variables (varplayers). Used for run energy, special attack energy, and other player state values.
ScheduledExecutorService
Advancedjava.util.concurrent
Java utility for scheduling background tasks. Useful for periodic operations, delays, and async work that doesn't need to run on the game thread.
Methods: schedule, scheduleAtFixedRate
ChatMessageBuilder
Intermediatenet.runelite.client.chat
Builder for creating formatted chat messages with colors, links, and special formatting. More flexible than direct client.addChatMessage().
Methods: append, color, build
Perspective
Advancednet.runelite.api
Utility class for coordinate conversions between world, local, and screen coordinates. Essential for drawing overlays at specific world locations.
Methods: localToCanvas, localToMinimap
VarClient
Advancednet.runelite.api
Constants for accessing client-side variables like camera angle, zoom level, and viewport settings. Useful for camera and rendering plugins.