PixelScript
The JavaScript revolution for Minecraft plugins. Build 10x faster with modular code and hot reloading.
registerListener($.PlayerJoinEvent, event => {
const player = event.getPlayer();
player.sendMessage('§8Welcome to the server!');
giveStarterItems(player);
recordPlayerLogin(player.getName());
});
registerCommand('shop', (sender) =>
openShopGUI(sender);
metricsService.addCommandUsage('shop');
);
export const CONFIG = {
name: 'DusDucoGames',
mode: 'production',
motd: 'Welcome to DusDucoGames!',
getCurrentTime: () => new Date().toLocaleTimeString(),
};
Currently in early access.
How PixelScript Works
JavaScript Files
Write your plugins using modern modules and import them directly.
PixelScript Engine
Supercharge your Minecraft server with our powerful JavaScript runtime engine.
Minecraft Server
Your code runs seamlessly within the Minecraft server environment.
$ Compiling files...
$ Watching for changes...
PixelScript bridges modern JavaScript development and Minecraft servers, bringing the full power of ES6 modules and hot module reloading to Spigot plugin development.
Powerful Yet Simple
// Create powerful Spigot features with modern JavaScript
import { getPlayerStats } from 'utils/player_stats.js';
import { formatTimeAgo } from 'utils/time_formatter.js';
// Easily register commands with modern syntax
registerCommand('profile', (player, args) => {
if (!(player instanceof $.Player)) {
player.sendMessage('This command can only be used by players.');
return;
}
const stats = getPlayerStats(player.getUniqueId());
player.sendMessage(`You joined ${formatTimeAgo(stats.firstJoin)}`);
player.sendMessage(`You have played for ${stats.playTime} hours`);
});
// Hot reload enabled - changes are applied instantly!
Game-Changing Features
Real-time Hot Reloading
Make changes to your code and see them applied instantly without restarting the server. The days of waiting for server restarts are over.

// This file will import a few other files
// Should any of them change, this file will be reloaded as well
import { getTranslatedMessage } from '../utils/translations.js';
registerEvent($.PlayerJoinEvent, (event) => {
const player = event.getPlayer();
player.sendMessage(getTranslatedMessage(player, 'join_message'));
});
// Scripts can watch other scripts too
// This fill only load scripts that have been added or removed, letting you
// enable feature releases on the fly, without triggering an entire reload
Watcher.watch([
"features/economy/init.js",
"features/quests/init.js"
// Uncomment to enable new feature on the fly, the other features will not change
// "features/new_feature/init.js"
]);
Join the PixelScript Closed Beta
PixelScript is currently in closed beta testing with select Minecraft servers. Submit your application below to join our growing community of developers.
Request Beta Access via Discord
Please DM one of our team members:
Include in your message:
- •Your server name
- •What you'll be using PixelScript for
- •Information about your server (size, type, etc.)
- •Any other details to help us understand your use case
Key Features
HRHot Reloading
Changes to your code are applied instantly without server restarts.
ESES6 Modules
Use modular code from the beginning, and let PixelScript handle the rest.
GMGlobal State Management
Share data between scripts with GlobalMap and GlobalNotification for lightweight events.
FWFile Watcher
Automatic monitoring of script files for seamless development experience.
HPHigh Performance
JavaScript compiles to bytecode, there is no special interpreter.
DTDeveloper Tools
Built-in debugging, logging, and profiling for professional development.
Why We Built It
PixelScript was born from frustration with traditional Minecraft plugin development. We wanted to bring the speed and flexibility of modern JavaScript to the Spigot ecosystem.
By eliminating the compile-test-reload cycle and introducing hot module reloading, we've revolutionized how developers build and maintain Minecraft plugins. What used to take days now takes hours.
Unlike other JavaScript solutions for Minecraft, PixelScript is designed from the ground up for performance and developer experience. The runtime is optimized specifically for Minecraft servers, ensuring your plugins run efficiently even on busy servers.