1
Shulkerscript: Simplify Minecraft Datapack Development with a Powerful Custom Script Tool!code
Hello Minecraft datapack creators!
I'm excited to unveil Shulkerscript, an innovative tool designed to improve Minecraft datapack creation. Shulkerscript enhances your workflow by providing more abstraction than `.mcfunction` files.
🚀 Why Use Shulkerscript?
For detailed instructions, visit our Getting Started Guide.
Example file:
Learn more about Shulkerscript’s syntax in the full Syntax Guide.
Shulkerscript is currently in early development, and I need your help to grow! Contributions are highly encouraged, whether it's through code, ideas, or even designing a logo. Contribute to the GitHub repos or write to shulkerscript@hoelting.dev with non-code contributions. Let’s build this community together!
I first encountered mcscript by Stevertus and used it extensively. However, with mcscript now discontinued and lacking certain features I needed, I decided to create Shulkerscript to give back to the community by creating a tool I wish I had when I wrote datapacks. I greatly appreciate Stevertus for his creation of mcscript, as this project wouldn't exist without it.
---
I'm excited to unveil Shulkerscript, an innovative tool designed to improve Minecraft datapack creation. Shulkerscript enhances your workflow by providing more abstraction than `.mcfunction` files.
🎯 What is Shulkerscript?
Shulkerscript is built to simplify how you write Minecraft datapacks by introducing a custom scripting language that compiles directly into a datapack. No more juggling multiple files manually — Shulkerscript compiles your source file into everything needed for your datapack to function seamlessly.🚀 Why Use Shulkerscript?
- Efficient Development: Use a Rust-powered compiler to quickly generate data pack functions with an easy-to-learn syntax.
- Powerful Syntax: Shulkerscript supports features like functions, if-else conditionals, and execute blocks, making it far more expressive and flexible than traditional `.mcfunction` files.
- Better Developer Experience: Mark functions with `#[tick]` or `#[load]` instead of adding an entry to the tags `.json` file.
- Simpler Conditions: Conditions can be combined with the logical operators `!` (not), `&&` (and), and `||` (or) and are compiled in such a way, that provides multiple benefits over a vanilla implementation, including atomic execution and `else` blocks.
📖 Getting Started:
- Installation: Quickly install Shulkerscript through a quickinstall script or build it from source.
- Basic Structure: Begin by writing your datapack logic in a `.shu` (Shulkerscript) file, starting with `#[tick]` for functions that should run every tick or `#[load]` for initialization.
- Compilation: Once your script is ready, run `shulkerscript build --zip` to generate a datapack that is ready for usage and distribution.
For detailed instructions, visit our Getting Started Guide.
🔧 Syntax Highlights:
Shulkerscript offers a clean and straightforward syntax, inspired by general-purpose programming languages:- Functions & Tags: Define functions and tags in the script file with simple syntax without requiring creating a new file.
- Conditionals: Use control flow like `if` statements to create dynamic functions and in-game logic.
- Execute Blocks: Implement complex Minecraft commands through Shulkerscript’s `execute` block system, just like vanilla Minecraft but with a clearer structure.
Example file:
namespace "shulkerscript-pack";
#[load]
fn load() {
asat("@a"), if("block ~ ~-1 ~ minecraft:stone") {
/say Loaded on:
/say minecraft:stone
} else {
/say Logged, but not on stone
}
}Learn more about Shulkerscript’s syntax in the full Syntax Guide.
🌱 Still in Early Development
Shulkerscript is currently in early development, and I need your help to grow! Contributions are highly encouraged, whether it's through code, ideas, or even designing a logo. Contribute to the GitHub repos or write to shulkerscript@hoelting.dev with non-code contributions. Let’s build this community together!
💡 Why I Built Shulkerscript
I first encountered mcscript by Stevertus and used it extensively. However, with mcscript now discontinued and lacking certain features I needed, I decided to create Shulkerscript to give back to the community by creating a tool I wish I had when I wrote datapacks. I greatly appreciate Stevertus for his creation of mcscript, as this project wouldn't exist without it.
---
📚 Join the Community!
Ready to level up your Minecraft datapacks? Start using ShulkerScript today to create more efficient, maintainable, and modular packs. Check out the full documentation, and don't hesitate to share your feedback, ideas, and wishes!8
Oh I didn't see the logo thing before, I can try to make one for you if Atten007's friend says no or something :)
That's understandable as I put more effort in explaining the usage instead of asking for a logo during the writing of the text.
Feel free to design a logo, I do not want to do this project alone and graphic design is definitely my weak point.
Sorry that it took me so long to reply, I do not get notifications. If you (and also others) want to get in contact with me about shulkerscript do not hesitate to send me a mail at shulkerscript@hoelting.dev or contect me on other linked channels :)
Feel free to design a logo, I do not want to do this project alone and graphic design is definitely my weak point.
Sorry that it took me so long to reply, I do not get notifications. If you (and also others) want to get in contact with me about shulkerscript do not hesitate to send me a mail at shulkerscript@hoelting.dev or contect me on other linked channels :)
np lol kk :)
Hello, are you still looking for a logo? If yes, I can ask a friend if he can make one for you.
Hi, yes I am still looking for a logo. I would really appreciate it, if it is not too much effort :)
Sorry for the late reply, it seems as I don't get notifications on planetminecraft
Sorry for the late reply, it seems as I don't get notifications on planetminecraft
Hey Moritz Hoelting,
Okay, I'll ask my friend if we (my friend and I) can make you a logo for shulker script. Please send me more Details of the logo via PM.
Kind regards,
Atten007 😊
Okay, I'll ask my friend if we (my friend and I) can make you a logo for shulker script. Please send me more Details of the logo via PM.
Kind regards,
Atten007 😊
Sounds awesome!
Thank you for your interest in my project. Feel free to share your ideas and improvements!
