Freedom251 › Minecraft Datapack Generators
Shulkerscript

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
- Open the online playground to try Shulkerscript in a browser without installation.
- For local use, choose the quickinstall script, cargo-binstall, a GitHub release, or a source build with Rust and Cargo.
- Follow the installation instructions for Windows, Linux, or macOS.
- Run `shulkerscript init` to create a starter project with `src` and `pack.toml`.
- Add at least one function annotated `tick`, `load`, or `deobfuscate` so the build generates `.mcfunction` files.
- Use the CLI to build into `dist`, watch for changes, or create a ZIP with `shulkerscript build --zip`.
- 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
- Minecraft Datapack Generators#20 of 22