Skip to content

FandA modern Minecraft plugin server.

Type-safe plugin APIs, predictable runtime behavior, and an ecosystem built around clean tooling.

What You Can Build

Fand lets plugin developers target a stable API instead of depending on server internals. A plugin gets lifecycle-scoped services from PluginContext, and can use Fand.server() when it needs the global server view.

  • Gameplay plugins: commands, events, scheduler, configuration, permissions, GUIs, boss bars, and scoreboards.
  • Content plugins: custom items, custom blocks, recipes, loot tables, advancements, enchantments, and data packs.
  • Administration plugins: region protection, player access control, cross-plugin service discovery, and external integration strategy.
  • Presentation plugins: tab lists, map rendering, MiniMessage, placeholders, packet interception, and per-viewer illusions.
  • World plugins: dynamic worlds, structure templates, world lookup, block access, and entity access.

Development Entry Point

New plugins should start with the official Gradle plugin. It configures fand-api, processes fand-plugin.json, and adds a direct-run guard to the built jar.

kotlin
plugins {
    id("io.fand.plugin") version "latest.release"
}

fandPlugin {
    id.set("example-plugin")
    mainClass.set("com.example.ExamplePlugin")
    apiVersion.set("0.1.1")
}

Continue with: