Quill

A sandboxed scripting language for Minecraft event automation

22

Quill

🪶Quill - Player-Powered Events Without Admin Babysitting

Tired of players bugging admins for every custom event? Quill lets your community run their own mini-games, arenas, and automated events - safely sandboxed, fully controlled, zero admin intervention needed.

🚀 The Problem Quill Solves

Your players want to run a PvP tournament. A parkour race. A custom boss fight. Maybe a city-wide scavenger hunt.

Traditional approach: - Player asks admin for command blocks ❌ - Admin sets everything up manually ❌ - Admin has to supervise so nothing breaks ❌ - Event ends, cleanup is a nightmare ❌

With Quill: - Admin creates a scope, hands it to the player ✅ - Player writes their event script in minutes ✅ - Script runs safely in its boundaries ✅ - Auto-cleanup, state persists, nothing breaks ✅

---

✨ Key Features

🔒 Sandboxed Execution Scripts run in physical boundaries. A player's arena script can't accidentally fill your spawn with TNT or teleport everyone to the void. What happens in the scope, stays in the scope.

🎯 Event-Driven Programming React to player actions, block interactions, mob deaths, chat messages, and more. No command blocks, no redstone contraptions - just clean, readable code.

🛡️ Granular Permissions Whitelist or blacklist functions per scope. Arena scripts get `teleport` and `give` but not `set_block`. Build zones get `set_block` but not `kill`. You control exactly what each scope can do.

✍️ Web-Based Editor No port forwarding. No server file access. Players get a session ID, open the web editor, write their script, and it's instantly on the server. Works behind proxies, NAT, everything.

💾 Persistent State Script variables survive server restarts. Player scores, game states, team assignments - all automatically saved and restored.

🎮 Player-Friendly Syntax Designed for non-programmers. If your players can write command block logic, they can write Quill scripts.

---

📝 Quick Example

```javascript // A simple PvP arena that starts on command let arena = new Scope(-50, 60, -50, 50, 100, 50); arena.game_active = false;

OnEvent(PlayerChat) { if chat.message == "!start" && in_region(player, arena) { arena.game_active = true; broadcast("Arena starting in 3... 2... 1...");

for p in arena.players { set_gamemode(p, "survival"); give(p, "diamond_sword", 1); heal(p); } } }

OnEvent(PlayerDeath) { if arena.game_active && in_region(player, arena) { broadcast("{player.name} was eliminated!"); set_gamemode(player, "spectator"); } } ```

That's it. No command blocks, no plugins for every feature, no admin intervention.

---

🎯 Perfect For

- Prison/Skyblock - Let trusted players run events - Prison/Skyblock - Automated build competitions - Prison/Skyblock - Rapid prototyping without touching code - Prison/Skyblock - Quest systems, boss fights, custom mechanics - Prison/Skyblock - Player-run shops, automated systems

---

🔧 How It Works

For Admins: 1. Install Quill (drag-drop JAR, restart server) 2. Create scopes for players: `/quill scope create arena PlayerName -50 60 -50 50 100 50 whitelist` 3. Set permissions: `/quill permission grant arena teleport` 4. Done. Player handles the rest.

For Players: 1. Run `/quill edit` to get editor link 2. Write your script in the web editor 3. Save, and it's live on the server 4. Test, iterate, publish your event

---

🛡️ Security Model

Quill is built on zero-trust principles:

- ✅ Scripts can ONLY affect their defined physical boundaries - ✅ Function permissions are opt-in (whitelist) or opt-out (blacklist) - ✅ No filesystem access, no system commands, no plugin conflicts - ✅ Infinite loop detection prevents server crashes - ✅ Scripts run in isolated contexts - no variable collisions

Your players get creative freedom. You keep total control.

---

📋 Requirements

- Recommended: Paper (Bukkit and Spigot compatibility coming soon) - Recommended: 21 or higher - Recommended: Paper 1.20+ for best performance

---

🚀 Installation

1. Download `Quill-x.x.x.jar` 2. Drop it in your `plugins/` folder 3. Restart your server 4. Configure editor URL in `plugins/Quill/config.yml` (optional) 5. Create your first scope!

First-time setup takes under 5 minutes.

---

📚 Resources

- Source Code: Source Code: - Source Code: %%MD1%% - Source Code: %%MD2%%

---

🎨 Why Quill Instead of Skript?

(Yes, I hear this a lot)

Quill is different - if you're an admin writing global server logic. Quill is different - it's designed for players writing localized, sandboxed events.

| Feature | Skript | Quill | |---------|--------|-------| | Persistence | ❌ Global scope | ✅ Physical boundaries | | Persistence | ❌ Admin only | ✅ Delegated safely | | Persistence | ❌ All or nothing | ✅ Per-scope granular | | Persistence | ❌ File-based | ✅ Zero setup | | Persistence | ⚠️ Manual | ✅ Automatic |

Different tools for different server models. If you need player empowerment, Quill is built for that.

---

📜 License

MIT License - Free and open source forever.

---

❤️ Credits

Created by Kohan Mathers with love for the Minecraft community.

Inspired by Skript, but designed for a fundamentally different trust model.

---

🌟 If Quill helps your server, leave a review and star the GitHub repo!

---

Questions? Join the Discord or open a GitHub Issue.

ADS