ModsJava
Birdlibraryapi
Real JavaScript scripting for your Paper server — no compiling, no waiting for addons
⬇ Download on Hangar# 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](https://www.graalvm.org/javascript/), 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.yml` entry 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.on` let separate scripts talk to each other without depending on each other's internals
## 📦 Getting started
1. Drop `BirdLibraryApi.jar` into `plugins/`
2. Start your server once — `plugins/BirdApi/` is created automatically
3. Add a `.js` script to that folder
4. Run `/birdlib reload` — no restart needed
```js
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.
Birdlibraryapi is a free Minecraft Java mod. Compatible with Minecraft 1.21.10, 1.21.11, 1.21.4, 1.21.5 and newer. Available via Hangar. Download it and open it directly in the game.