Vital framework

A modular framework for building modern Minecraft plugins with clean architecture, less boilerplate, and powerful developer tools.
Minimal Vital plugin (plugin.yml is automatically created)
@VitalPlugin.Info(
  name = "myplugin",
  description = "My awesome Vital plugin",
  version = "1.0.0",
  apiVersion = "1.21"
)
public class MyPlugin extends VitalPlugin.Spigot {
}

Why should I use Vital?

plugin.yml
Remember when you added that one command and tried to test it but it somehow didn't even exist? Ah yes, i forgot to update my plugin.yml... Vital will look at your project and automatically generate a plugin.yml for you.
Command creation hell
Writing commands is simple they said. Let's add a new subcommand here and some permission checks there, and all of a sudden your command is 100 lines long without even doing anything yet... Vital gives you a proper command system.
Configs are just strings...
Who doesn't like loosely typed configs, right? No one likes them... Vital gives you a system where every config file is a class that can directly store whatever you want.
Inventory boilerplate
Every inventory eventually ends up sharing one giant click listener that filters unwanted clicks. Vital gives every inventory its own class and automatically handles all event routing.
Simple holograms aren't actually simple
Displaying a few floating lines shouldn't require managing entities and viewers yourself. Vital allows you to easily create holograms.
Scoreboard madness
Now this is a special case of boilerplate. 50 Lines for a static scoreboard that doesn't even change... Vital automatically handles scoreboards for you, oh and you can also create scoreboards with a single line of code.
Item interaction boilerplate
Every custom item ends up inside one massive PlayerInteractEvent listener. Vital let's every item handle its own interactions by automatically routing the events for you.
Player data without a million HashMaps
Coins in one map. Levels in another. Settings in a third. A dedicated player object is much easier to work with.
Scheduled tasks everywhere
A few months later you're searching for runTaskLater() because you can't remember where the task was scheduled in your codebase. Vital gives every scheduled task its own class with a clear lifecycle.
Adding translations
Everything starts in English. Then someone asks for German... and suddenly every message is hardcoded somewhere. Vital handles localization across your plugin.
Checking game state in every listener
Most events begin by checking whether the game is running, which instance the player belongs to and what state it's in. Vital will automatically route events to correct games and states, no more boilerplate.
The inevitable Utils.java
Every project grows another utility class with teleports, broadcasts, Adventure helpers and random methods. Vital already has various utilities built right in. You can even use them outside of a Vital plugin.
The list goes on...
...

Highlighted features

Vital provides you with all of the features you need to start making that plugin you always wanted to. Build anything from small utilities to massive plugins - the sky's the limit.
  • One framework, multiple platforms
    Use Vital to create plugins for all of your favorite platforms, like: Spigot, Paper and BungeeCord. No extra configurations needed, everything from plugin.yml to command interaction is done by Vital.
  • Structured code
    Build Minecraft plugins with a clean, structured architecture that's easy for entire teams to work on. No more spaghetti code or stuff that barely works.
  • Zero plugin.yml
    Vital automatically manages your plugin.yml so you don't have to worry about forgetting to update it yourself.
  • Minigames
    Vital offers a complete minigame framework to create games using proven game development patterns, like state machines and scoping. State management, automatic event routing and even hosting multiple truly isolated game instances on the same server becomes easy and maintainable.
  • Spring-powered
    Vital was built with Spring Boot at its core. Create extensive plugins by utilizing proven Java tools from the Spring ecosystem. Don't worry - your plugins remain lightweight.
  • Pick your modules
    Utilize Vital's module system to enhance your experience even more. Every module brings its own unique features like: advanced command system, minigame system, dynamic scoreboards, localization, inventory menus, interactable items, configs, etc.
  • Only include what you use
    Thanks to Vital's module system you can choose only the functionality you actually need for your project. No need to include the entire framework if all you need is the command system, right? This keeps your project lightweight and easier to maintain.

And even more...

Vital is not just a small library, it is an entire ecosystem, specifically built to make Minecraft plugin development easier and more structured than ever before. It's the framework you never knew you needed - and once you've used it, you won't want to go back.
Documentation
Check out the documentation to quickly get started with Vital or to get help with any component. Don't worry, the docs are NOT oversized and are easy to understand.

Planned features

These features are planned for the future. If you have any ideas for other features please open up an issue on GitHub.
  • More Platforms
    In addition to Spigot, Paper, and BungeeCord, Vital will support other platforms such as Velocity and more.
  • Web Initializer
    The initializer can also be used on the web to create your project, so it no longer needs to be run locally.
  • NPCs
    With Vital, you can also create NPCs that perform their own actions, such as patrolling routes, reacting to player interactions, and more.

This site and the Vital framework were built with ❤️ by Mike Neumann