Getting Startedstable
4 min read time

Documentation

Moving from XYZ

A concept guide for Java and Skript developers transitioning to PixelScript.

tipsconceptsbeginners

PixelScript has "Script" in the name, which can be misleading. If you're coming from Java or Skript, you might have very different expectations about what that means. Let's clear that up.

If you're coming from Java...

The good news: PixelScript is basically Java with JavaScript syntax and hot-reloading. That's it.

You're still writing Java code; it literally compiles down to Java bytecode. When you call Bukkit.broadcastMessage("Hello World"), you're calling the actual Java method Bukkit.broadcastMessage(String message) on org.bukkit.Bukkit. The only difference is the syntax and the fact that you can reload your changes without restarting the server.

What's different:

  • Syntax: JavaScript syntax instead of Java (no semicolons required, let/const instead of type declarations, arrow functions, etc.)
  • Hot-reloading: Save your file, changes apply immediately; no server restart needed
  • Dynamic typing: You don't declare types explicitly (though they still exist under the hood on the JVM)

The mental shift:
Stop thinking "I'm learning a scripting language." You're not. You're writing Java with a different syntax and some modern conveniences. Everything you know about the Bukkit API, design patterns, and Java libraries still applies. You can even import and use Java libraries directly.

The "script" part just means you can iterate faster. That's the only magic.

If you're coming from Skript...

The reality check: PixelScript is nothing like Skript. At all.

Skript gives you pre-built commands, event handlers, and utilities designed for non-programmers. It's batteries-included and opinionated; it holds your hand through everything.

PixelScript is the opposite. It's a blank canvas.

What you need to know:

  • No simplified syntax: Skript lets you write give player 1 diamond or teleport player to spawn. PixelScript requires you to use the actual Bukkit API: player.getInventory().addItem(new ItemStack(Material.DIAMOND, 1))
  • You write the logic: Want a GUI? You'll need to create a function that opens an inventory, adds items, and handles clicks. PixelScript gives you the tools (the Bukkit API), but you build the solution
  • It's real programming: You'll write functions, classes, modules, and organize your codebase. Think of it like learning Java, but with easier syntax

The mental shift:
Skript is like Lego sets with instructions; everything's pre-packaged, you just assemble it. PixelScript is like raw Lego bricks; you can build anything, but you need to figure out how.

This means more thinking up-front, but also complete control. You can optimize your code, structure it however you want, and use any Java library. The tradeoff is a paradigm shift: you're not configuring pre-built solutions anymore, you're architecting them from the ground up.

The PixelScript Philosophy

PixelScript is unopinionated by design. It gives you:

  • Full access to the Bukkit API (and any Java library)
  • JavaScript syntax for faster, cleaner code
  • Hot-reloading so you can iterate quickly
  • Complete freedom to structure your project however you want
  • Quality-of-life bindings for common platform tasks (like the Scheduler, Sql module, Bukkit hooks, etc.)
  • An OOP sandbox where you can go as deep as you want

What it doesn't give you:

  • Pre-built utilities for common tasks (GUIs, entity management, network setup, etc.)
  • Batteries-included solutions
  • Training wheels to learn programming fundamentals

Think of PixelScript as a power tool, not a template. You have to bring your own vision and build your own solutions, but you can build them exactly the way you need them.

Need GUI utilities? Build them once the way you like, then reuse them across projects.
Need a custom event system? Create it.
Need to integrate a Java library? Import it directly.

The learning curve is steeper than Skript; it's a paradigm shift from configuration to architecture. But the payoff is a codebase that's faster, more maintainable, and where you hold all the cards.

Shared resources

I've built a ton in PixelScript already, and may already have some of the utils you need! If you don't care too much about building everything from scratch, and are okay with taking on some opinionated code, check out the example project!

Documentation in early stages. Not meant for public consumption.