Sandstone is a Typescript library for Minecraft Datapacks. It allows easy creation, debug and sharing of Minecraft functions, loot tables, predicates etc...
Interested? Join our Discord: discord.gg/4tzM5aXDRe
Sandstone tells you what a command expects, and autocompletes complicated arguments for you.
You don't need to remember commands syntax anymore.
This autocompletion works for all resources: commands, predicates, loot tables, advancements...
You can have multiple functions, advancements, loot tables per files - or you can keep the vanilla organisation, and have only 1 per file. Sandstone allows you to organise your data pack as you prefer, without sticking to Mojang's conventions.
You also benefit from all the capabilities of a real programming language: multiline comments, indentation, documentation...
Sandstone includes common and heavily optimized abstractions:
- Control statements, with
if
,else if
andelse
- Boolean logic, with
or
,and
andnot
- Loops, with
while
andfor
- Sleep statement, which waits a certain time before running the next commands
These statements are most of the time more optimized than hand-written code, since they switch between different implementations to get the fastest one. They have been studied and designed for performance.
However, you stay free: you can keep using only vanilla commands, if you prefer - Sandstone does not get in your way.
Sharing commands has never been easier. Just publish your functions on NPM, and everyone can use them to improve their own datapacks. Whether it's some common code like raycasting, or some new abstractions like better /tellraw
, the Sandstone ecosystem grows by the day.
You can finally stop reinventing the wheel.
If you want to support Sandstone, the simplest way is to star the repository! It's actually very encouraging.
See the Getting Started section on sandstone.dev to start using Sandstone!