HomeJavaModsBirdlibraryapi
Birdlibraryapi
ModsJava

Birdlibraryapi

by PractiveProject · on Modrinth

Which build do you need?

This mod ships a separate file for every mod loader and every version of the game. Pick both, then download — the wrong build installs fine and then does nothing in the game.

Mod loader

Minecraft version

⬇ Download for 1.21.4–1.21.11 · Paper⬇ Download for 1.20–1.20.6 · Paper⬇ Download for 1.21.4–1.21.11 · Purpur⬇ Download for 1.20–1.20.6 · Purpur
I don't know my version or loader
Open the Minecraft launcher and look at the profile you play on — it names both, like fabric-loader-1.21.4. The version also shows in the bottom-right corner of the game's main menu.
No loader in the profile name? Then it's plain Minecraft, and these mods won't run — you need Fabric or NeoForge installed first.
Birdlibraryapi — screenshot 1

logobirdlib

BirdLibraryApi turns your server into a live scripting platform — in JavaScript, Lua, or Python, whichever you already know. Drop a .js, .lua, or .py file into plugins/BirdApi/, and you've got a working plugin — events, commands, timers, and full access to the Bukkit API — with zero Maven, zero plugin.yml, zero restarts to test changes.

Powered by real language engines, not a custom pseudo-English DSL: GraalJS for JavaScript, LuaJ for Lua, and GraalPy for Python. If you already know any of the three, you already know how to write BirdLibraryApi scripts.


✨ Why BirdLibraryApi?

Skript-style scripting is great for quick edits, but it hits a ceiling fast. BirdLibraryApi is built for people who want that same "no compiling needed" convenience, without giving up real programming — and without being locked into one language:

🔧 What you get out of the box

📦 Getting started

  1. Drop BirdLibraryApi.jar into plugins/
  2. Start your server once — plugins/BirdApi/ is created automatically
  3. Add a .js, .lua, or .py script to that folder
  4. Run /birdlib reload — no restart needed
JavaScript
Bird.onCommand("hello", function (sender, label, args) {
    sender.sendMessage("Hi " + args.length + " args");
});

Bird.onEvent("org.bukkit.event.player.PlayerJoinEvent", function (event) {
    Bird.sendTitle(event.getPlayer(), "&6&lWelcome!", "&7Glad you're here");
});
Lua
Bird:onCommand("hello", "", function(sender, label, args)
    sender:sendMessage("Hi " .. #args .. " args")
end, function(sender, alias, args) return nil end)

Bird:onEvent("org.bukkit.event.player.PlayerJoinEvent", function(event)
    Bird:sendTitle(event:getPlayer(), "&6&lWelcome!", "&7Glad you're here")
end)
Python
def hello(sender, label, args):
    sender.sendMessage("Hi " + str(len(args)) + " args")

Bird.onCommand("hello", hello)

def on_join(event):
    Bird.sendTitle(event.getPlayer(), "&6&lWelcome!", "&7Glad you're here")

Bird.onEvent("org.bukkit.event.player.PlayerJoinEvent", on_join)

📖 Documentation & Wiki

Full API reference, examples, and guides: https://birdwiki.craftcloudnet.com

✅ Compatibility

💬 Support

Found a bug or have a feature request? Open an issue or drop by the Report issues linked above.

Quick facts

Install steps are the general flow for this file type — How to install Minecraft Java mods & modpacks walks through it step by step.

Verified by MCModsHub

These come from our own check of the pack file, not from the source page.

Explore more