- Java 99.9%
| .forgejo | me when im soupid | |
| .idea | i explode | |
| gradle/wrapper | Update loom and make building meow??? | |
| img | boobk | |
| src | fix my stupid stupidness | |
| .gitattributes | Initial commit | |
| .gitignore | LAVENDER UPDATE :DDDD | |
| build.gradle | awawawawawa | |
| CHANGELOG.md | awa | |
| debug.sh | :3 | |
| eclipse-prefs.properties | tweakage | |
| gradle.properties | you didn't see anything | |
| gradlew | spell tooltip | |
| gradlew.bat | Initial commit | |
| LICENSE | Finally? I hope I didnt forget anything... | |
| README.md | meow/ | |
| settings.gradle | Please forgive me, Evelyn | |
| shell.nix | yea | |
Trickster
discord-plural kofi-singular fabric-api cicada
Trickster is an esolang-based magic mod loosely inspired by Hex Casting. Equipped with a book written by an ancient arcane scholar, learn to compose spells which create magical effects as simple or complex as you want.
So what can I make?
Yes.
The spells you can compose 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 patterns. 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, isn't 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.
But also, 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!
So how do I begin?
Well, we've made that part pretty easy.
All patterns, items, and blocks are documented in The Teacher's Language by Areli Haron, one of the few remnants of an ancient civilization proficient in the arcane. As you discover more about the world, notes will be added to the book reflecting on those discoveries.
If preferred, there is also a web 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 spell composition and casting.
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 a Lisp. This means a few things:
- Data is immutable.
- Recursion is not only possible, but also the main way to achieve loop-like behaviour.
- Which also means infinite (and even mutual!) recursion via Tail-Call Optimization.
- Data can only move up the tree from one node to the next.
- Though various flow control options exist to overcome 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 Codeberg.
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.