Quill
A sandboxed scripting language for Minecraft event automation
Quick challenge
How far can you run before the mobs catch you?
Minecraft check
Confirm your run
Complete the quick check to get your code.
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.