SoulFire LogoSoulFire

Environment Setup

Set up Java, Gradle, IntelliJ, and a source checkout that matches the SoulFire version your plugin targets.

This page prepares a workspace for SoulFire plugin development. The finished workspace can build and debug a plugin and show the current API.

  • Java 25: SoulFire currently builds and generates Javadocs with JDK 25.
  • Gradle Wrapper: use the wrapper from your plugin project and from the SoulFire source checkout.
  • IntelliJ IDEA: recommended for Fabric Loom, Mixins, Lombok, and large Java source navigation.
  • A local SoulFire checkout: use it as the real reference, even if your plugin lives in a separate repository.

Keep these references open

SoulFire's current build logic and aggregated Javadocs both target Java 25. An older JDK can cause build and toolchain errors.

Clone the repos you need

Clone these repositories into the same parent directory:

git clone https://github.com/soulfiremc-com/SoulFire.git
git clone https://github.com/soulfiremc-com/SoulFirePluginExample.git

Use:

  • SoulFire as the source of truth for current internals, built-in plugins, settings, gRPC services, and proto contracts
  • SoulFirePluginExample as the starting template for new plugins

Use the template for project structure. Use the SoulFire repository and Javadocs for current API behavior.

If you use IntelliJ IDEA:

  1. open the plugin project as a Gradle project
  2. let Loom finish dependency setup before judging the project state
  3. install Lombok support if IntelliJ prompts you
  4. if you also open the SoulFire repo, import its inspection profile from config/intellij_inspections.xml

You do not need to open the whole SoulFire repo as a second module in the same project, but it is often useful.

What to inspect in the SoulFire source tree

Source locationWhy it matters
mod/src/main/java/com/soulfiremc/server/apiPublic plugin API classes such as SoulFireAPI, Plugin, and event types
mod/src/main/java/com/soulfiremc/server/settingsTyped settings model, property classes, and settings page registration
mod/src/main/java/com/soulfiremc/server/botBotConnection, ControlState, and ControllingTask
mod/src/main/java/com/soulfiremc/server/pluginsBuilt-in plugins that show real patterns used by the project
mod/src/main/java/com/soulfiremc/server/grpcHow GUI and CLI actions are translated into in-process bot operations
proto/src/main/proto/soulfireThe wire contracts for server info, instance info, bot control, scripting, and more

Keep versions aligned

Keep the plugin and SoulFire versions aligned.

  • Match your plugin dependency version to the SoulFire version you actually run.
  • Read the current CodeMC Maven metadata before you select a version.
  • Use the example plugin as a starting template.
  • Use the current Javadocs for low-level API details.

The current example repository pins an older SoulFire version than the latest CodeMC metadata. Before you copy low-level code, compare it with the current Javadocs and source.

When another IDE is acceptable

Other IDEs can work if they handle:

  • Gradle Kotlin DSL
  • annotation processing
  • Loom and Fabric dependency resolution
  • large Java projects with generated sources

IntelliJ is still the easiest path when you start debugging Mixins or browsing Minecraft and SoulFire source at the same time.

Next steps

How is this page?

Last updated on

On this page