Plugin developer guide

Rift plugins use the standard RuneLite plugin API, so if you've built a plugin for a RuneLite-based client before, you already know how to build one for Rift. What's different is distribution: you never hand JARs to players. You submit your plugin through the Rift developer program, we review it, and it's published to the hub — delivered to players encrypted and tied to their account.

Prerequisites

  • JDK 11
  • Gradle

Anatomy of a plugin

A Rift plugin is a class annotated with @PluginDescriptor, extending the Plugin base class, with startUp and shutDown lifecycle hooks. Here's a minimal example:

package com.example.myplugin;

import net.runelite.client.plugins.Plugin;
import net.runelite.client.plugins.PluginDescriptor;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

@PluginDescriptor(
    name = "My Plugin",
    description = "A minimal example plugin for Rift",
    tags = {"example"}
)
public class MyPlugin extends Plugin
{
    private static final Logger log = LoggerFactory.getLogger(MyPlugin.class);

    @Override
    protected void startUp() throws Exception
    {
        log.info("My Plugin started");
    }

    @Override
    protected void shutDown() throws Exception
    {
        log.info("My Plugin stopped");
    }
}

Building your plugin

Build your plugin into a JAR with Gradle and develop and test it locally as you normally would. When it's ready, you submit it through the developer dashboard rather than distributing the JAR yourself.

Publishing on Rift

Getting your plugin to players goes through the developer program:

  1. Apply for a developer account from the website (when applications are open).
  2. Once approved, submit your plugin — source for review, plus the build you want published.
  3. We review it for safety and quality, then publish it to the hub.
  4. Published plugins are encrypted and integrity-checked, and only ever delivered to signed-in players who own them — your code is never handed out in the clear, and it can't be leaked, cloned, or decompiled from a downloaded file.

Both free and premium plugins are supported, with pricing controls for paid plugins in your developer dashboard.

Questions

Not sure about something, or want your plugin included at launch? Reach out on Discord (discord.gg/riftclient).