Compatibility
Minecraft: Java Edition
Platforms
Links
Creators
Details
๐ MC-JS - JavaScript Plugin System for Minecraft
Write Minecraft Server Plugins in JavaScript - No Java Required!
MC-JS is a powerful plugin system that allows you to develop server plugins using modern JavaScript (ES6+) instead of Java. Perfect for developers who already know JavaScript or want to quickly create plugins without having to learn Java.
โจ Key Features
๐ฏ Core Capabilities
- ๐ Full JavaScript Support - Develop plugins in modern JavaScript using the Rhino Engine
- โก Hot Reload - Reload plugins without server restart (
/jsreload) - ๐ง Complete API Access - Access to virtually all Bukkit/Spigot/Paper API functions
- ๐ฎ Event System - Register listeners for any Minecraft event with priority support
- ๐ฌ Command System - Create custom commands with full tab completion support
- โฐ Task Scheduling - Synchronous and asynchronous task scheduling
- ๐ฆ Inventory Management - Create and manage custom GUI menus using standard Bukkit inventories (9-54 slots) with click handlers
- ๐๏ธ Database Support - Built-in SQLite database operations (INSERT, UPDATE, DELETE, SELECT)
- ๐ HTTP Requests - Make HTTP GET/POST requests asynchronously
- ๐ Encryption - MD5, SHA256, Base64 encoding/decoding
- ๐ File I/O - YAML, JSON, and text file support
- ๐จ BossBar Support - Create and manage boss bars with progress tracking
- โฑ๏ธ Cooldown System - Built-in cooldown management per player
- โ๏ธ Config System - Per-plugin configuration files (YAML)
- ๐ World Management - Control weather, time, world border, explosions
- ๐ฏ Entity Management - Spawn, control, and customize entities
- ๐ Player Management - Ban, kick, teleport, health, food, gamemode
๐ ๏ธ Advanced Features
- ๐จ Particle Effects - Spawn particles with string or enum support
- ๐ Sound System - Play sounds at locations or for players
- ๐ Scoreboard System - Create and manage scoreboards, teams, objectives
- ๐ Item Manipulation - Create, modify, and manage items with custom names and lore
- ๐ Permission System - Check and manage player permissions
- ๐จ Color Support - Minecraft color codes and formatting utilities
- ๐ HTTP Integration - Make external API calls and web requests
- ๐ Economy Integration - Vault economy support for server economies
๐ฆ Installation
Requirements
- Minecraft Server: Paper/Spigot 1.20+ (recommended: Paper)
- Java: Version 21 or higher
- Minecraft Version: 1.20+
Steps
- Download the latest release from the Releases page
- Place the JAR file in your server's
plugins/folder - Start or restart your server
- Create JS plugins in
plugins/MC-JS/js-plugins/directory
The plugin will automatically create the js-plugins directory and copy an example plugin on first run.
๐ Quick Start
Creating Your First Plugin
- Navigate to
plugins/MC-JS/js-plugins/directory - Create a new file with
.jsextension (e.g.,myplugin.js) - Add the following code:
var pluginInfo = {
name: "My First Plugin",
version: "1.0.0",
author: "YourName",
description: "My awesome plugin!"
};
function onEnable() {
logger.info("My plugin is enabled!");
// Register a command
api.registerCommand("hello", "Say hello", "/hello", function(sender, args) {
api.sendMessage(sender, "&aHello from JavaScript!");
return true;
});
// Register an event
api.registerEvent("player.PlayerJoinEvent", function(event) {
var player = event.getPlayer();
api.sendMessage(player, "&6Welcome to the server!");
});
}
function onDisable() {
logger.info("My plugin is disabled!");
}
this.onEnable = onEnable;
this.onDisable = onDisable;
this.pluginInfo = pluginInfo;
- Save the file - The plugin will auto-load on server start, or use
/jsreloadto reload - Test your command - Type
/helloin-game or in console - Check console - Look for "My plugin is enabled!" message
๐ก Tip: Use
/jslistto see all loaded JavaScript plugins and/jsreload <plugin>to reload a specific plugin.
๐ Available Objects
These objects are automatically available in all JavaScript plugins:
| Object | Description | Usage |
|---|---|---|
api |
Complete JS API wrapper - main interface for all operations | api.registerCommand(...) |
server |
Minecraft server instance | server.getOnlinePlayers() |
plugin |
Main plugin instance | plugin.getName() |
logger |
Plugin logger | logger.info("Message") |
scheduler |
Server scheduler | scheduler.runTask(...) |
Bukkit |
Direct Bukkit API access | Bukkit.getServer() |
๐ฎ Commands
| Command | Description | Permission |
|---|---|---|
/jsreload |
Reload all JS plugins | mcjs.admin |
/jsreload <plugin> |
Reload specific plugin | mcjs.admin |
/jslist |
List all loaded JS plugins | mcjs.admin |
/jsconfig |
View or reload plugin configuration | mcjs.admin |
๐ Documentation
๐ Full Documentation: Visit our complete documentation website for detailed API reference, examples, and guides.
๐ก Example Applications
- Welcome Plugins - Greet players with messages, titles, and sounds
- Statistics Systems - Track player statistics with SQLite databases
- Custom GUI Menus - Create interactive menus using standard Bukkit inventories with custom layouts and click handlers
- Mini-Games - Develop simple games with event handling
- Utility Plugins - Create helpful tools and commands
- Integration Plugins - Connect your server with external APIs
๐ ๏ธ Technical Details
- JavaScript Engine: Rhino (Mozilla)
- API Version: 1.21
- Compatibility: Paper, Spigot, Bukkit
- License: MIT
๐ค Support
- GitHub: LootingVI/MC-JS
- Issues: GitHub Issues
- Documentation: lootingvi.github.io/MC-JS
๐ License
This project is licensed under the MIT License - see the LICENSE file for details.
Made with โค๏ธ for the Minecraft Community
---


