SoulFire LogoSoulFire

Development

Build a plugin when visual scripting cannot provide the Minecraft or SoulFire access that you need.

Use plugins when visual scripting cannot provide the control that you need. Plugins can add low-level hooks, Mixins, packet handling, settings pages, and direct access to Minecraft objects.

SoulFire plugins can access internal code. A SoulFire update can break integrations that use this access. Keep your plugin version, the current Javadocs, and the current SoulFire source tree aligned.

Choose the right tool

Stay in Scripting when:

  • you can express the behavior as triggers, actions, conditions, and data flow
  • you want a stable, visual workflow that non-developers can edit
  • you do not need custom Mixins, packet hooks, or direct Minecraft internals

Move to plugin development when:

  • you need custom logic inside the bot tick loop or entity tick loop
  • you need new settings pages, custom commands, or plugin-owned state
  • you need to inspect, replace, or suppress packets
  • you need Fabric mod APIs, Mixins, or access wideners
  • you need direct access to BotConnection, LocalPlayer, ClientPacketListener, or other low-level objects

Read in this order

For your first plugin, read these pages in order:

  1. Build Your First Plugin to get one jar loading inside SoulFire
  2. Environment Setup to align Java, IntelliJ, and your local source checkout
  3. Gradle And Project Layout when you start changing the template
  4. Event System and Settings And Metadata for normal plugin work
  5. Bot Control And Direct Access only when you need real runtime objects or controlling tasks
  6. Mixins And Access Wideners only when the public API is not enough
  7. Architecture And Protocols when you need to trace how SoulFire wires the internals together

Development map

Canonical sources

Use these as your SoulFire-specific source of truth when writing or updating a plugin:

Fabric and Mixin references

SoulFire plugin development sits on top of Fabric, Loom, and Mixins. These are the external references worth keeping open in another tab:

TopicLink
Fabric documentationdocs.fabricmc.net
Fabric wiki: Mixin injection referencetutorial:mixin_injects
Fabric wiki: Access widenerstutorial:accesswideners
SpongePowered Mixin wikigithub.com/SpongePowered/Mixin/wiki

How is this page?

Last updated on

On this page