FREEDOM251

Freedom251 › Minecraft Datapack Generators

Shulkerscript

Paid ExtensionLinuxMacWebWindows

Visit Shulkerscript Alternatives

Shulkerscript's own site

What Shulkerscript is

Shulkerscript is a scripting language and command line interface for building Minecraft data packs. Its syntax follows familiar programming language patterns and extends what `.mcfunction` files can do. A single source file can produce several function files that Minecraft or other Shulkerscript files can call. Language constructs include functions, imports, tags, conditionals, execute blocks, groupings, literal commands, and embedded Lua. Functions marked `#[tick]` can run every game tick, while `#[load]` functions can run when a data pack loads. The CLI compiles projects into a `dist` directory, can rebuild as files change, and can package compiled output as a ZIP archive. Running `shulkerscript init` creates a starter project with a `src` directory and `pack.toml`. Users can try the language in a browser playground, or install the CLI using a quickinstall script, cargo-binstall, a GitHub release, or a build from Rust and Cargo. Installation instructions cover Windows, Linux, and macOS. An optional official Visual Studio Code extension supplies syntax highlighting and snippets. The project is written in Rust and is free and open source. Its documentation marks both the playground and Lua integration as works in progress. A build needs at least one function annotated `tick`, `load`, or `deobfuscate` to generate `.mcfunction` files.

Who it suits

Shulkerscript suits Minecraft data pack creators who want a programming language and CLI for generating function files, building projects, and packaging them. It is also suited to developers on Windows, Linux, or macOS who want to try the browser playground or use the optional Visual Studio Code extension.

What it does well

  • Generates multiple Minecraft function files from one source file.
  • Supports imports, tags, conditionals, execute blocks, and embedded Lua.
  • CLI watches files and rebuilds projects automatically.
  • Can package compiled projects as ZIP archives.
  • Browser playground works without installing the CLI.
  • Free and open source.

What to know first

  • Builds generate no `.mcfunction` files without a qualifying function annotation.
  • Documentation marks the playground and Lua integration as works in progress.

Limits

At least one function must carry a `tick`, `load`, or `deobfuscate` annotation for `.mcfunction` files to be generated. The documentation describes the playground and Lua integration as works in progress.

Getting started

  1. Open the online playground to try Shulkerscript in a browser without installation.
  2. For local use, choose the quickinstall script, cargo-binstall, a GitHub release, or a source build with Rust and Cargo.
  3. Follow the installation instructions for Windows, Linux, or macOS.
  4. Run `shulkerscript init` to create a starter project with `src` and `pack.toml`.
  5. Add at least one function annotated `tick`, `load`, or `deobfuscate` so the build generates `.mcfunction` files.
  6. Use the CLI to build into `dist`, watch for changes, or create a ZIP with `shulkerscript build --zip`.
  7. Optionally install the official Visual Studio Code extension for syntax highlighting and snippets.

Verdict

Choose Shulkerscript if you want a free, open source language and CLI for creating Minecraft data packs, with function generation and ZIP packaging. Check the annotation requirement before building: at least one function needs a `tick`, `load`, or `deobfuscate` annotation for `.mcfunction` output. The playground and Lua integration are still described as works in progress.

Questions

Is Shulkerscript free?

Yes. It is free and open source.

Which systems can I install it on?

Installation instructions cover Windows, Linux, and macOS. The online playground lets you try it in a browser without installation.

What can the CLI do?

It compiles projects into a `dist` directory, can watch files and rebuild, and can create a ZIP archive of a compiled project.

What does the Visual Studio Code extension provide?

The optional official extension provides syntax highlighting and snippets.

Does it generate `.mcfunction` files for every project?

A project needs at least one function annotated `tick`, `load`, or `deobfuscate`; otherwise no `.mcfunction` files are generated.

Is Lua integration ready?

The documentation labels the Lua integration reference as work in progress.

Facts from Shulkerscript's own pages

Availability
The guide offers installation from GitHub releases, installation with cargo-binstall, or building from source with Rust and Cargo. · shulkerscript.hoelting.dev, 4 Oct 2026
Build and distribution
The CLI can build projects into a `dist` directory, watch for file changes, and create a ZIP archive of a compiled project. · shulkerscript.hoelting.dev, 4 Oct 2026
CLI installation
The CLI can be installed with a quickinstall script, cargo-binstall, a GitHub release, or by building from source with Rust and Cargo. · shulkerscript.hoelting.dev, 7 Oct 2026
Compilation
The Shulkerscript CLI compiles project files into a `dist` directory and can watch for file changes to rebuild automatically. · shulkerscript.hoelting.dev, 7 Oct 2026
Compiler
The project says it is written in Rust and describes fast compile times and a small binary size. · shulkerscript.hoelting.dev, 4 Oct 2026
Contributing
The project invites contributions to its CLI and compiler repositories on GitHub. · shulkerscript.hoelting.dev, 4 Oct 2026
Distribution
The CLI can create a ZIP archive of a compiled project with `shulkerscript build --zip`. · shulkerscript.hoelting.dev, 7 Oct 2026
Editor integration
The official Visual Studio Code extension provides syntax highlighting and snippets for Shulkerscript files. · shulkerscript.hoelting.dev, 7 Oct 2026
Functions
A single source file can generate multiple function files that can be called from Minecraft or other Shulkerscript files. · shulkerscript.hoelting.dev, 7 Oct 2026
Install platforms
The installation guide provides instructions for Windows, Linux, and macOS. · shulkerscript.hoelting.dev, 4 Oct 2026
Language features
The language supports functions, imports, tags, conditional statements, execute blocks, and Lua code embedded in scripts. · shulkerscript.hoelting.dev, 7 Oct 2026
Lua integration status
The documentation labels its Lua Integration reference as work in progress. · shulkerscript.hoelting.dev, 7 Oct 2026
Minecraft-specific behavior
Functions annotated with `#[tick]` can run every tick, and functions annotated with `#[load]` can run when a data pack is loaded. · shulkerscript.hoelting.dev, 4 Oct 2026
Output limitation
The syntax guide says at least one function must be annotated with `tick`, `load`, or `deobfuscate`, or no `.mcfunction` files will be generated. · shulkerscript.hoelting.dev, 4 Oct 2026
Packaging limit
At least one function must have a `tick`, `load`, or `deobfuscate` annotation for `.mcfunction` files to be generated. · shulkerscript.hoelting.dev, 7 Oct 2026
Playground
An online playground lets users try Shulkerscript in a browser without installing the CLI. · shulkerscript.hoelting.dev, 7 Oct 2026
Project maturity
The documentation labels the playground and Lua integration as work in progress. · shulkerscript.hoelting.dev, 4 Oct 2026
Project setup
Running `shulkerscript init` creates a project containing a `src` directory, `pack.toml`, and other starter files. · shulkerscript.hoelting.dev, 7 Oct 2026
Purpose
Shulkerscript is a language for writing Minecraft datapacks, with syntax similar to other programming languages and features beyond `.mcfunction` files. · shulkerscript.hoelting.dev, 7 Oct 2026
Supported desktop systems
The getting-started guide provides installation instructions for Windows, Linux, and macOS. · shulkerscript.hoelting.dev, 7 Oct 2026
Syntax
Its syntax is similar to other programming languages and adds features beyond `.mcfunction` files. · shulkerscript.hoelting.dev, 4 Oct 2026

Where Shulkerscript stands on Freedom251

Look at these too