Maven, Gradle and IDE setup
Use ke.ric:renderer-api:2.3.0-preview.3 for the fluent snapshot/stream API, scene recipes and creative lighting. Pair it with ShutterBug Renderer 1.1.0, whose platform JAR includes the matching native library. Stable ke.ric:renderer-api:2.2, earlier preview versions and the historical JitPack v1.0.2 release remain unchanged and do not supply these additions. The preview.3 coordinate and all published SDK, source and JavaDoc bytes remain unchanged. Renderer 1.0.0 does not acquire these additions from a compile-time dependency update.
Compile your plugin with Java 21 or newer. The documented Paper 26.2 / Minecraft 26.2 server requires Java 25. Use the API as a provided or compileOnly dependency; do not shade, relocate or bundle it. The separately installed ShutterBugRenderer supplies runtime API classes.
Maven
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>example</groupId><artifactId>renderer-consumer</artifactId><version>1.0.0</version>
<properties><maven.compiler.release>21</maven.compiler.release><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding></properties>
<repositories>
<repository><id>shutterbug-renderer</id><url>https://shutterbug-maven.pages.dev/</url></repository>
<repository><id>spigot-repo</id><url>https://hub.spigotmc.org/nexus/content/repositories/snapshots/</url></repository>
</repositories>
<dependencies>
<dependency><groupId>ke.ric</groupId><artifactId>renderer-api</artifactId><version>2.3.0-preview.3</version><scope>provided</scope></dependency>
<dependency><groupId>org.spigotmc</groupId><artifactId>spigot-api</artifactId><version>1.21.10-R0.1-SNAPSHOT</version><scope>provided</scope></dependency>
</dependencies>
<build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><version>3.13.0</version><configuration><release>21</release></configuration></plugin></plugins></build>
</project>
Gradle
plugins {
id 'java'
}
repositories {
maven { url = uri('https://shutterbug-maven.pages.dev/') }
maven { url = uri('https://hub.spigotmc.org/nexus/content/repositories/snapshots/') }
}
dependencies {
compileOnly 'ke.ric:renderer-api:2.3.0-preview.3'
compileOnly('org.spigotmc:spigot-api:1.21.10-R0.1-SNAPSHOT') {
transitive = false
}
}
java {
toolchain.languageVersion = JavaLanguageVersion.of(21)
}
The Bukkit dependency below is a Java 21 compile-time surface for these examples, not a promise that the provider runs against every Spigot/Paper version. Match the provider's exact Paper adapter when running it. Both consumer builds compile this fluent API probe:
package docs.examples;
import ke.ric.renderer.api.Renderer;
import ke.ric.renderer.api.RenderRecipe;
import ke.ric.renderer.api.RenderLayer;
import ke.ric.renderer.api.EntitySelector;
import ke.ric.renderer.api.SnapshotBuilder;
import org.bukkit.entity.Player;
/** Both dependency examples compile the fluent API, not just an older capability method. */
public final class ConsumerExample {
public static SnapshotBuilder photo(Renderer renderer, Player player) {
return renderer.snapshot(player).fov(75).roll(5).visibleTo(player)
.recipe(RenderRecipe.layers(RenderLayer.scene(),
RenderLayer.entities(EntitySelector.living())));
}
}
Use depend: [ShutterBugRenderer] when rendering is mandatory. Use softdepend: [ShutterBugRenderer] only when your plugin remains useful without rendering; follow the API-free entry-point pattern in lifecycle.
Descriptions and parameter names in your editor
The SDK has matching sources and JavaDoc JARs, plus Java parameter-name metadata. IDEs use these for method descriptions, units, defaults, argument help and source navigation. The same reference is available in your browser.
In IntelliJ IDEA, reload the Maven/Gradle project and use the dependency's Download Sources and Download Documentation actions if automatic downloading is disabled. Open Quick Documentation on a method for its description and parameter details.
In VS Code, reload the Maven project after changing versions. Enable Java › Inlay Hints › Parameter Names: Enabled, choosing literals or all. Inlay hints are editor decorations, not Java syntax. If stale missing-source results remain cached, run Java: Clean Java Language Server Workspace, then reload. Hover a method to see its documentation.
If autocomplete still lacks Renderer, SnapshotBuilder or RenderLighting, check the resolved dependency version and remove duplicate older SDK dependencies. A provider update cannot change the classes your IDE compiles against, and a newer compile dependency cannot add runtime support to an older provider.
Keep advanced access
renderer.session() exposes lifecycle-aware capture/composition helpers, and renderer.client() exposes scene builders, assets, attachments, manual submission and provider capabilities. Start with the quickstart; use the advanced pages when your integration needs them.