v29 Available Now
PixelScript
The JavaScript revolution for Minecraft plugins.Build 10x faster with modular code and hot reloading.
Hot Reload Active
1import { Gui } from "@global/utils/guilib/api/gui";
2import { ServerName } from "@config/constants";
3import { createItem } from "@global/utils/guilib/api/item";
4import { Button } from "@global/utils/guilib/api/gui_button";
5import { GuiUtils } from "@global/utils/guilib/api/gui_utils";
6
7registerListener($.PlayerJoinEvent, (event) => {
8 const player = event.getPlayer();
9 const welcomeGui = createWelcomeGui(player);
10 welcomeGui.open(player);
11})
12
13registerCommand('welcome', (sender, args) => {
14 if (!(sender instanceof $.org.bukkit.entity.Player)) {
15 sender.sendMessage("This command can only be used by players.");
16 return;
17 }
18 const player = sender;
19 const welcomeGui = createWelcomeGui(player);
20 welcomeGui.open(player);
21})
22JavaScriptUTF-8
PixelScript v29
How PixelScript Works
JavaScript Files
Write your plugins using modern modules and import them directly.
init.js
create_sql.js
commands.js
features/...
PixelScript Engine
Supercharge your Minecraft server with our powerful JavaScript runtime engine.
Bytecode
Hot Reloading
File Watcher
Dependencies
Profiling
Optimization
Minecraft Server
Your code runs seamlessly within the Minecraft server environment.
$ Running PixelScript v1.2.0
$ Compiling files...
$ Watching for changes...
$ Compiling files...
$ Watching for changes...
PixelScript bridges modern JavaScript development and Minecraft servers, bringing the full power ofES6 modulesandhot module reloadingto Spigot plugin development.
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.

plugin.js
1// This file will import a few other files
2// Should any of them change, this file will be reloaded as well
3import { getTranslatedMessage } from '../utils/translations.js';
4
5registerEvent($.PlayerJoinEvent, (event) => {
6 const player = event.getPlayer();
7 player.sendMessage(getTranslatedMessage(player, 'join_message'));
8});JavaScriptPixelScript
features/init.js
1// Scripts can watch other scripts too
2// This fill only load scripts that have been added or removed, letting you
3// enable feature releases on the fly, without triggering an entire reload
4Watcher.watch([
5 "features/economy/init.js",
6 "features/quests/init.js"
7
8 // Uncomment to enable new feature on the fly, the other features will not change
9 // "features/new_feature/init.js"
10]);
11JavaScriptPixelScript
Powerful Yet Simple
Hot Reload Active
1// Create powerful Spigot features with modern JavaScript
2import { getPlayerStats } from 'utils/player_stats.js';
3import { formatTimeAgo } from 'utils/time_formatter.js';
4
5// Easily register commands with modern syntax
6registerCommand('profile', (player, args) => {
7 if (!(player instanceof $.Player)) {
8 player.sendMessage('This command can only be used by players.');
9 return;
10 }
11
12 const stats = getPlayerStats(player.getUniqueId());
13
14 player.sendMessage(`You joined ${formatTimeAgo(stats.firstJoin)}`);
15 player.sendMessage(`You have played for ${stats.playTime} hours`);
16});
17
18// Hot reload enabled - changes are applied instantly!JavaScriptUTF-8
PixelScript v29
Ready to build?
Super-charge your developer productivity, and build features that normally take days, in just hours.