Real JavaScript scripting for your Paper server — no compiling, no waiting for addons
BirdLibraryApi
Real JavaScript scripting for your Paper server — no compiling, no waiting for addons.

BirdLibraryApi turns your server into a live JavaScript scripting platform. Drop a .js 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 GraalJS, a real ECMAScript engine — not a custom pseudo-English DSL. If you already know JavaScript, 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:
- Full ECMAScript — functions, closures, classes,
Array/Math/JSON, the whole standard library. - Unlimited Bukkit/Paper API access —
Java.type("...")gives you any class on the classpath instantly. No addon required, ever. - Safe, granular reloading — reload one script without touching the others. Every listener, command, and scheduled task a script registers is cleaned up automatically.
- Readable errors — syntax and runtime errors are reported straight to chat when you reload, with line/column numbers. A broken script never takes down the plugin or your other scripts.
- Built-in internet access —
Bird.fetch(...)for REST APIs, plus ready-made Discord webhook/embed support.
🔧 What you get out of the box
- Events & commands — register with a single function call, no
plugin.ymlentry needed - Scheduler — sync/async tasks, auto-cancelled on reload, plus an async-only
sleep()for Skript-style wait sequences - Player & world helpers — health, food, potion effects, gamemode, teleport, nearby players, ping, UUIDs, and more
- Chat, action bar & titles — with
&/§color code support built in - Items, sounds & particles — one-liners for custom-named items, sound effects, particle bursts
- Persistent storage — per-script key/value data store, plus sandboxed file read/write for JSON exports, logs, and small "databases"
- Cooldown system — for abilities, commands, anything you need to rate-limit per player
- Cross-script events —
Bird.emit/Bird.onlet separate scripts talk to each other without depending on each other's internals
📦 Getting started
- Drop
BirdLibraryApi.jarintoplugins/ - Start your server once —
plugins/BirdApi/is created automatically - Add a
.jsscript to that folder - Run
/birdlib reload— no restart needed
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");
});
📖 Documentation & Wiki
Full API reference, examples, and guides: https://birdwiki.craftcloudnet.com
✅ Compatibility
- Server software: Paper (and forks)
- Requires: Java 17+
- No other plugin dependencies — GraalJS is shaded directly into the jar
💬 Support
Found a bug or have a feature request? Open an issue or drop by the wiki linked above.
Information
| Category | Developer Tools |
|---|---|
| Published on | July 24, 2026 |
| License | Apache 2.0 |
| Downloads | 0 |
| Stars | 0 |
| Watchers | 0 |