v29 Available Now

PixelScript

The JavaScript revolution for Minecraft plugins.Build 10x faster with modular code and hot reloading.

Documentation
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})
22
JavaScriptUTF-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/...
Pixelib Logo

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...

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.

Feature showcase 1
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]);
11
JavaScriptPixelScript

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.