- Java 99.9%
| .forgejo | okay we can keep this one there, i dont think my runner can handle it | |
| .idea | i explode | |
| gradle/wrapper | Update loom and make building meow??? | |
| img | Add files via upload | |
| src | Add deps (oops forgor) | |
| .gitattributes | Initial commit | |
| .gitignore | LAVENDER UPDATE :DDDD | |
| build.gradle | Add deps (oops forgor) | |
| CHANGELOG.md | meowlog | |
| debug.sh | :3 | |
| eclipse-prefs.properties | tweakage | |
| gradle.properties | Update time! | |
| gradlew | spell tooltip | |
| gradlew.bat | Initial commit | |
| LICENSE | Finally? I hope I didnt forget anything... | |
| README.md | Update README.md | |
| settings.gradle | Please forgive me, Evelyn | |
| shell.nix | yea | |
Trickster
discord-plural kofi-singular fabric-api cicada
Trickster is a magician-themed esolang-based magic mod loosely inspired by Hex Casting. It lets you draw infinitely nested spell circles and glyphs to combine tricks and create magical effects as simple or complex as you want.
So what can I make?
Yes.
The spells you can scribe into scrolls are made in a turing-complete tree-like structure, offering complete freedom in creating the results you want. Spells can do literally anything you can imagine*!
*Assumes your imagination is limited by the scope of available glyphs. Library inc. takes no responsibility for overactive imagination or other forms of undue creativity.
A persistent multi-core spell construct
That's a pretty bold statement isnt it?
Yes it is, but we don't think its unfounded.
For one, spells will not stop casting until they are complete, which can, in fact, be never! Spells run concurrently with the rest of the game and can be saved to and loaded from disk at any moment, just like everything else in Minecraft. This means you can leave a spell running, log out, come back two days later, and have it continue where you left off.
Secondly, spells can be infinitely big and complex. While there is a limit to the speed spells execute at (to avoid straining the server) the spell itself can be as convoluted or as simple as you want!
And last but not least, while mana is a resource required by all world-altering effects, it is possible to theoretically infinitely scale the amount of mana available to you. Mana is intended more as a balancing measure than a limiter on your potential.
So how do I begin?
Well, we've made that part pretty easy.
All glyphs, tricks, and ways of spell-scribing are neatly documented in the Tome of TomfooleryTM, the go-to guide for being up to no good. Making use of the excellent Lavender and fully custom interactive widgets, the TomeTM provides a state-of-the-art guidebook experience for all of your magical needs.
Check out the web version of the book at trickster.ing!
What else can I expect?
As any good magic mod should, we provide a solid selection of tools and trinkets to facilitate spellcasting.
Functional as in Functional Programming
For the more programming-minded, the spellcasting system in this mod can be described as tree-based functional programming, most closely resembling something like Haskell or Clojure. This means a few things:
- Data is immutable.
- Recursion is not only a thing, but the main way to achieve loop-like behaviour.
- Which also means infinite recursion of course.
- Data can only move up the tree from one node to the next.
- Though there are ways to split your tree, and pass around and manipulate other trees as data, effectively overcoming this limitation.
This combines with other functional paradigms to create a very clean, but powerful scripting language.
Contributing
We are very happy to accept contributions to this mod, so long as they fit within our design vision.
If you plan to make a contribution more complex than a simple bugfix or flat improvement,
please discuss it with us beforehand in the #trickster channel in Discord or create an issue here on Github.
Before creating a PR, please consider running the spotlessApply gradle task to ensure your formatting conforms with the rest of the code.
If your potential contribution isn't something we want to accept into the main mod, you're always free to create an addon and upload it independently! Providing tools for addon creation is one of our primary goals for development, so if any API you require is missing, please let us know.
Credits
Some of the item textures are courtesy of @midnightcartridge on Discord.
Thanks to @crephan as well for help with a bunch of item textures and models.
This mod was originally made for Modfest: Carnival, but has since been further developed far beyond its original scope.