Ever wanted to do something crazy with command blocks but the notation seemed too horrendous? Ever wanted to make an adventure map which reacts to events? Ever wanted to write code which uses both Minecraft commands and a server plugin?
If so, Spade may help! Spade is an approachable programming language which can compile down to both mcfunctions, and Java, making it much easier to take total and unquestionable command of all parts of your Minecraft world.
- A simple, unified syntax with similarities to other common languages
- Syntactic sugaring to allow useful tasks to be used by the programmer with minimal effort
- A strict type-system to catch errors before runtime and without affecting performance (better than Java)
- A single language which can be run both on the server and client sides
- A compiler that can run on any common operating system (Windows, MacOS and Linux)
We maintain installers for Windows, MacOS and Linux on our releases page.
If you'd like to build directly from the source code, you will need a number of smaller tools. Whip up the terminal, and make sure the following are installed:
gitdistributed version-control systemstackbuild tool for HaskellmakeGNU generic build systemalexHaskell lexical analyser generatorhappyHaskell parser generatorm4GNU macro languagestylish-haskellHaskell code formatterhlintHaskell linterrefactorHaskell linter auto fixing
Then, download our code and compile it:
git clone --recurse-submodules https://github.com/SpadeMC/Spade
cd Spade
makeOnce this succeeds, the compiler can be run:
./spadeUse ./spade --help to get more help.
To install, run:
make installEt voilà!
One (custom) version of spade.
Spade is developed under the MIT license.
Ed and Josh have been playing Minecraft since 2012 and probably need to go outside more. We are both Computer Scientists whose specialisms include formal languages and systems development, compiler design and programming language principles.
We are not affiliated with Mojang AB.