All Mods Resource Packs Data Packs Shaders Modpacks Plugins
Trickster

Trickster

by enjarai • Downloads: 0 • Followers: 0
Description
Gallery
Changelog
Versions

Trickster

kofi-singular fabric-api fabric-api

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.

Trickster's progression is heavily knowledge-based. Looking through the creative tab or granting yourself advancements may be detrimental to the intended experience.

A simple spell

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 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.

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.

Documentation

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.

A few of the available toys

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.

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.

All Versions

+ Add Version
Name Game version Platforms Published Downloads Actions
1.21.1
Fabric
5d ago 1
1.21.1
Fabric
1mo ago 1
1.21.1
Fabric
2mo ago 1
1.21.1
Fabric
2mo ago 1
1.21.1
Fabric
2mo ago 1
1.21.1
Fabric
2mo ago 1
1.21.1
Fabric
3mo ago 1
1.21.1
Fabric
3mo ago 1
1.21.1
Fabric
3mo ago 1
1.21.x
Fabric
4mo ago 1
1.21.x
Fabric
4mo ago 1
1.21.x
Fabric
4mo ago 1
1.21.x
Fabric
5mo ago 1
1.21.x
Fabric
5mo ago 1
1.21.x
Fabric
5mo ago 1
1.21.x
Fabric
5mo ago 1
1.21.x
Fabric
5mo ago 1
1.21.x
Fabric
5mo ago 1
1.21.x
Fabric
5mo ago 1
1.21.x
Fabric
5mo ago 1
1.21.x
Fabric
5mo ago 1
1.21.x
Fabric
5mo ago 1
1.21.x
Fabric
7mo ago 1
1.21.x
Fabric
last yr. 1
1.21.x
Fabric
last yr. 1
1.21.x
Fabric
last yr. 1
1.21.x
Fabric
last yr. 1
1.21.x
Fabric
last yr. 1
1.21.x
Fabric
last yr. 1
1.21.x
Fabric
last yr. 1
1.21.x
Fabric
last yr. 1
1.21.x
Fabric
last yr. 1
1.21.x
Fabric
last yr. 1
1.21.x
Fabric
last yr. 1
1.21.x
Fabric
last yr. 1
1.21.x
Fabric
last yr. 1
1.21.x
Fabric
last yr. 1
1.21.x
Fabric
last yr. 1
1.21.x
Fabric
last yr. 1
1.21.x
Fabric
last yr. 1
1.21.x
Fabric
last yr. 1
1.21.x
Fabric
last yr. 1
1.21.x
Fabric
last yr. 1
1.21.x
Fabric
last yr. 1
1.21.x
Fabric
last yr. 1
1.21.x
Fabric
last yr. 1
1.21.x
Fabric
last yr. 1
1.21.x
Fabric
last yr. 1
1.21.x
Fabric
last yr. 1
1.21.x
Fabric
last yr. 1
1.21.x
Fabric
last yr. 1
1.21.x
Fabric
last yr. 1
1.21.x
Fabric
last yr. 1
1.21.x
Fabric
last yr. 1
1.21.x
Fabric
last yr. 1
1.21.x
Fabric
last yr. 1
1.21.x
Fabric
last yr. 1
1.21.x
Fabric
last yr. 1
1.21.x
Fabric
last yr. 1
1.21.x
Fabric
last yr. 1
1.21.x
Fabric
last yr. 1
1.21.x
Fabric
last yr. 1
1.21.x
Fabric
last yr. 1
1.21.x
Fabric
last yr. 1
1.21.x
Fabric
last yr. 1
1.21.x
Fabric
last yr. 1
1.21.x
Fabric
last yr. 1
1.21.x
Fabric
last yr. 1
1.21.x
Fabric
last yr. 1
1.21.x
Fabric
last yr. 1
1.21.x
Fabric
last yr. 1
1.21.x
Fabric
last yr. 1
1.21.x
Fabric
last yr. 1
1.21.x
Fabric
last yr. 1
1.21.x
Fabric
last yr. 1
1.21.x
Fabric
last yr. 1
1.21.x
Fabric
last yr. 1
1.21.x
Fabric
last yr. 1
1.21.x
Fabric
last yr. 1
1.21
Fabric
last yr. 1
1.21
Fabric
last yr. 1
1.21
Fabric
last yr. 1
1.21
Fabric
last yr. 1
1.21
Fabric
last yr. 1
1.21
Fabric
last yr. 1
1.21
Fabric
last yr. 1
1.21
Fabric
last yr. 1
1.21
Fabric
last yr. 1
1.21
Fabric
last yr. 1
1.21
Fabric
last yr. 1
1.21
Fabric
last yr. 1
1.21
Fabric
last yr. 1
1.21
Fabric
last yr. 1
1.21
Fabric
last yr. 1
1.21
Fabric
last yr. 1
1.21
Fabric
last yr. 1
1.21
Fabric
last yr. 1
1.21
Fabric
last yr. 1
1.21
Fabric
last yr. 1
1.21
Fabric
last yr. 1
1.21
Fabric
last yr. 1
1.21
Fabric
last yr. 1
1.21
Fabric
last yr. 1
1.21
Fabric
last yr. 1
1.21
Fabric
last yr. 1
1.21
Fabric
last yr. 1
  • Fixed dots showing in spell flecks. (@hazenebulous)
  • Fixed an uncaught exception involving containers of slots. (@enjarai)
  • Added accessory slot access. (@enjarai)
  • Miscellaneous spell editor fixes. (@hazenebulous)
  • Fixed indeterminism in datagen. (@CelDaemon)
  • Added a trick for modulo. (@hazenebulous)
  • Re-balanced the easier color puzzle. (@aurakle)
  • Fixed solar charging being uneven. (@enjarai)
  • Fixed the macro advancement. (@enjarai)
  • Re-balanced moonlight charging. (@enjarai)
  • Miscellaneous book fixes. (@enjarai and @AshAxolotl)
  • Added the Feyflower. (@enjarai and @aurakle)
  • Doubled amethyst cracking in the Nether. (@enjarai)
  • Re-arranged inventory tricks in the book. (@aurakle)
  • Improved return consistency with some tricks. (@AshAxolotl)
  • Fixed zalgo fragments not supporting transparency. (@CelDaemon)

  • Fixed fleck scale and rotation being awkward when the initial summon trick and modification trick casting spans a tick. (@aurakle)
  • Changed StorageSource to a registry, allowing addons to create custom container fragments! (@enjarai)

  • Fixed a crash when handling uncaught exceptions that have not been wrapped into a blunder. (@aurakle)
  • Fixed the mirror evaluation button sometimes triggering when opening the screen. (@hazenebulous)
  • Fixed the book's landing page spell. (@aurakle)
  • Updated a reference to Spell Ink in the book. (@aurakle)
  • Fixed fragment groups in the book not being parsed properly when Iris is installed, resulting in messy and overflown text. (@aurakle)
  • Fixed unlinked dots not showing up for patterns in the book. (@hazenebulous)
  • Fixed circles with many children not showing their children. (@hazenebulous)
  • Made VoidFragment's constructor private. Add-ons which improperly created a new instance of the Void fragment may crash. (@aurakle)
  • Re-textured the Charging Belt. (thanks, crephan!)
  • Fixed a typo. (@aurakle)

  • Removed the Amethyst Whorl. (@enjarai)
  • Added the Charging Belt. Uses programmer art for now, the texture will be replaced at a later time. (@aurakle)
  • Added tricks for getting a list of keys/values from a map fragment. (@AshAxolotl)
  • Added more color-coded values to the book and fixed some pluralization. (@aurakle)
  • Fragment "groups" in the book now have a tooltip indicating all "real" fragment types they contain. (@aurakle)
  • Addons which add fragment types will need to update their fragment type registration.
  • Added support for non-spell fragments to Inner Notulist's Revision. (@hazenebulous)
  • Fixed various circle position bugs in the editor. (@hazenebulous)
  • Fixed flickering shared mana pools. (@aurakle)
  • Fixed empty spell fragments never showing in tooltips. (@aurakle)
  • Fixed a couple blunder translation issues. (@aurakle)
  • Fixed "uncaught exception" spam in server logs. (@aurakle)

  • Fixed an issue where Ploy of Receipt would sometimes return non-list fragments. (@aurakle)

  • Added undrawable pattern Inline syntax. (@poolcritter)
  • Fixed storage fragments rendering slot indices with an absurd offset on the Z axis. (@aurakle)
  • Added a custom fragment renderer for Displacements. (@aurakle)
  • Re-worked blunder internals. (@aurakle)

  • Fixed zero-distance Swindler's blundering due to supposed lack of mana when cast by a construct with a Cracked Quartz Knot. (@aurakle)
  • Added Sable weight tagging for various blocks. (@BlueMoonJune)
  • Fixed various zoom issues in the editor. (@hazenebulous)

  • Fixed container fragment encoding resulting in nuked construct NBT and client desync. (@enjarai and @aurakle)

  • Added Very Basic Sable compatibility. (@BlueMoonJune)
  • Distances will be calculated correctly across sublevels.
  • Some basic tricks are available when Sable is installed to interact with sublevels.
  • Made the face position of Glasses configurable. (@enjarai)
  • Right click the Glasses in your inventory to change their position when worn.
  • Added unique mana icons to the guidebook for non-traditional mana types. (@hazenebulous)
  • Fixed a bug caused by incorrect handling of block entities in the swap block and levitate tricks. (@enjarai)

  • Removed shulker mana conversion due to issues preserving the shulker contents for real this time (forgot to run datagen on the last update). (@aurakle)

  • Various book fixes. (@aurakle)
  • Added dirt to mud erosion. (@aurakle)
  • Added an indicator on the exterior of numbers for the sign. (@aurakle)
  • Fixed a couple issues with inconsistent fragment equality. (@aurakle)
  • Removed shulker mana conversion due to issues preserving the shulker contents. (@aurakle)

  • Re-worked Conduit Ploys. (@enjarai)
  • Re-worked floating block damage scaling. (@aurakle)
  • Gave Infused Ceramic a hardness and resistance value. (@aurakle)
  • Improved the texture of pondered circles. (@aurakle and @BlueMoonJune)
  • Made Branching variadic. (@BlueMoonJune)
  • Split mana into different types. (@enjarai and @aurakle)
  • All mana is now stored as a long rather than a float, making 1mG the smallest non-zero unit of mana.
  • Knots no longer charge while it is raining.
  • Added the Prismatic Knot. (@enjarai and @aurakle)
  • Added new mana generation methods. (@enjarai and @aurakle)
  • Blacklisted the smeltery structure from Lootr due to item voiding. (@aurakle)
  • Fixed a crash from spell fleck rendering. (@enjarai)
  • Fixed an issue with atlas rendering in certain situations. (@enjarai)
  • Textures would get messed up with: Supplementaries, Connector, and Kilt.
  • Made Alt and F in the editor configurable keybinds. (@enjarai)
  • Constructs no longer re-send their (possibly expensive to serialize) spells to clients when unrelated data is modified. (@aurakle)
  • Fragment components on items now cache their hash, significantly improving performance when comparing item stacks. (@enjarai)
  • Made it impossible to import overweight fragments via survival methods. (@aurakle)
  • Reverted the decrease in cost for setting entity scale. (@aurakle)
  • Reverted changes to player velocity querying that made values consistently unreliable. (@aurakle)
  • Fixed being able to insert any item into a spell construct. (@aurakle)
  • Added tricks to get the durability of items. (@enjarai)
  • Fixed Infused Ceramic gradients. (@hazenebulous)
  • Cleaned up pattern rendering tremendously. (@hazenebulous)
  • Miscellaneous Connector compatibility improvements. (@master_bw3)
  • Fix missing translation for the Fluid fragment type. (@aurakle)
  • Add missing subtitles. (@enjarai)
  • Halved the recharge rate of the Whorl. (@aurakle)
  • Astrals no longer generate "Traditional" mana. (@aurakle)
  • Unbreakable block and extended piston config settings now apply to Featherweight. (@AshAxolotl)
  • Various book improvements. (@AshAxolotl)
  • Re-written all the locked entries to be from the perspective of the player. (@enjarai and @aurakle)

  • Made improvements to numpad drawing. (@enjarai)
  • Fixed many issues with the "focus" keybind in the spell editing screen. (@enjarai)
  • Fixed a mistake causing drawing pattern lines to be more purple than intended. (@enjarai)
  • Fixed fleck rendering when the fleck is pointing straight up or down. (@enjarai)

  • Added the ability to draw patterns with the numpad. (@enjarai)

  • Added the ability to focus on outer circles, making them drawable without removing their inner. (@enjarai)
  • Removed Devotion Revision. (@enjarai)

  • Added configuration options for pattern and circle rendering. (@BlueMoonJune)
  • Fixed pattern rendering with Iris shaders. (@BlueMoonJune)

  • Improved performance of Conduit ploys (again). (@enjarai)

  • Made mirrors require Esoteric Mana instead of an Amethyst Shard. (@aurakle)
  • Fixed a mistake in an advancement description. (@aurakle)
  • Fixed issues with mana-storing items having incorrect component equality. (@aurakle)
  • Fixed a disconnect on dedicated servers when mana transfer particles are sent to the client. (@enjarai)
  • Add sided storage support to container fragments. (@enjarai)
  • Improved performance of Conduit ploys. (@enjarai)

  • Tweaked some ploy costs. (@enjarai)

  • Massively improved performance for fragment rendering *everywhere*. (@enjarai)
  • Improved culling in the editor. (@enjarai)
  • Spell flecks can now be created relative to an entity or its head, greatly simplifying UI-like flecks. (@enjarai)
  • Fixed an issue where the Scryglass keybind would work without having a Scryglass equipped. (@enjarai)
  • Made the vector creation trick default to 0 for each argument if nothing or void is provided. (@aurakle)

  • Fixed a performance issue with in-world circle rendering. (@enjarai)
  • Fixed a server-side performance issue where Knot charging particles would be individually sent by the server. (@enjarai)
  • Fixed overlapping slot fragments in lists. (@enjarai)
  • Fixed certain items showing up in tags and recipes when they shouldn't. (@AshAxolotl)
  • Miscellaneous metadata/book corrections. (@aurakle)
  • Removed a built-in resource pack that snuck through PR review. (@aurakle)

  • Rewrote the spell editing screen. (@enjarai)
  • This allows for a few new interactions, and should make future additions easier.
  • You can now press F while hovering over a circle to "focus" on it, partially hiding all other branches of the spell.
  • In this mode, you can only interact with the focused circle and its children.
  • Press F again to exit.
  • Macros now no longer have an execution limit, and will keep running for as long as the spell screen is open.
  • The Mirror now no longer has an execution limit.
  • The Mirror has been generally changed to have an additional button in the interface that triggers evaluation of your spell.
  • Added custom renderers for almost all fragment types. (@BlueMoonJune)
  • Numbers in particular are shown in a custom base-8 circular format.
  • Fragments can still be seen as their text representation using a Scryglass.
  • Added a new palette of blocks: Gilded Tuff. (@BlueMoonJune)
  • Includes multiple variants with stairs, slabs, and walls.
  • Can be crafted with Tuff and Gold Nuggets
  • Added Light Sconces. (@BlueMoonJune)
  • These blocks can be placed on walls, floors, and ceilings, or in midair.
  • They occupy the same block space as Lights conjured by spells.
  • They are purely decorative.
  • Added rare structures to the world. (@BlueMoonJune, @aurakle, and @enjarai)
  • These structures contain tidbits of lore.
  • They occur very infrequently, and only in specific biomes.
  • They have no bearing on progression.
  • Reworked Ploy of the Usurper. (@enjarai)
  • Teleportation now requires anchorpoints on both sides.
  • The new system also doubles as a blink ploy.
  • Made changes to make involuntary teleportation more difficult.
  • Added compatibility with the Inline mod to render patterns in text. (@poolcritter)
  • Changed map and list renderers to be more dynamic. (@Master-Bw3)
  • Renamed Spell Ink to Esoteric Mana. (@enjarai)
  • Esoteric Mana can now be used to instantly refill knots by a certain amount.
  • Esoteric Mana also has a new texture. (@aurakle)
  • Added Luminous Bottles. (@enjarai)
  • These can be made in a brewing stand, and are an intermediate for more efficiently creating Esoteric Mana.
  • Various minor Tome improvements. (@aurakle)
  • Made the position of spell slots on the inventory screen configurable. (@AshAxolotl)
  • Added spell slots to the creative mode inventory screen. (@AshAxolotl)
  • Added a trick overload to get the size of maps. (@AshAxolotl)
  • Changed the way player velocity is acquired to be more representative of the player's actual velocity. (@enjarai)
  • Changed Shared Fate to ignore invisible entities. (@AshAxolotl)
  • Added more config options related to block swapping. (@AshAxolotl)
  • Removed the Warding Charm and the old Ward system. (@aurakle)
  • This will be replaced by a new system in the near future.
  • Fixed floating point issues with spell construct renderers at high coordinates. (@enjarai)
  • Fixed issues with color mixing. (@BlueMoonJune)
  • Fixed the tax calculation of the conduits ploys. (@BlueMoonJune)
  • Fixed bars not hiding with the rest of the UI. (@AshAxolotl)
  • Fixed an issue with negative addresses in reflective ploys. (@AshAxolotl)

  • Reworked inventory interactions. (@enjarai)
  • Added storage fragments.
  • Storage fragments represent an entire container.
  • They can be interacted with in much the same way as slot fragments.
  • Slot fragments are now made from storage fragments.
  • Storage fragments have a fluid variant for interacting with fluid containers.
  • Both slot and storage fragments should support any modded storage block.
  • Added color fragments. (@BlueMoonJune)
  • Color fragments can be created using dyes and mixed to create arbitrary colors.
  • They can be used in certain ploys to apply colors.
  • Added Infused Ceramic. (@BlueMoonJune)
  • This block can be crafted and dyed any arbitrary color using color fragments.
  • Added more options to some flecks that can be applied after creating them. (@BlueMoonJune)
  • This includes support for rotating, scaling, and painting (via color fragments).
  • Added the Torment on a Chain. (@aurakle)
  • This necklace will persistently cast any spell inscribed onto it while worn by a player.
  • Added a left click action to wands. (@AshAxolotl)
  • The spell cast by a wand will receive a boolean argument to indicate if it was left or right clicked.
  • Added a light level option for conjured lights. (@AshAxolotl)
  • Added a few new tricks for: (@AshAxolotl)
  • Revealing to actionbar explicitly.
  • Getting entity equipment.
  • And exact position raycasting.
  • Many misc tome improvements. (@AshAxolotl and @enjarai)
  • Many misc bugfixes and general improvements. (@Master-Bw3, @AshAxolotl, @BlueMoonJune and @enjarai)

  • Fixed Acolyte's Bindings constantly ringing when sitting/riding. (@enjarai)
  • Generalized two entity tricks from LivingEntity specific to Entity specific. (@Nicknakin)
  • Added and renamed some entity and block tags to allow for more granular control. (@AshAxolotl)
  • Fixed Either return types from tricks. (@enjarai)

  • Made it impossible to move "infinite" mana. (@aurakle)
  • Added Coleus integration. (@Master-Bw3)

  • Added a trick to get the max stack size of an item. (@aurakle)

  • Nerfed Cracked Quartz Knots. (@enjarai)
  • Added a ploy to move and merge itemstacks. (@enjarai)
  • Fixed fragment weights always being 0. (@aurakle)

  • Fixed Amethyst Knots not recharging when cracked. (@enjarai)
  • Fixed Executioner's Deviation. (@enjarai)
  • Fixed being able to activate a full stack of Torment Cores with one spawner. (@enjarai)
  • Changed Cracked Quartz Knots to return daytime instead of gametime, effectively accounting for players sleeping. (@enjarai)
  • Made Constructs always restart when shift-right-clicked. (@enjarai)

  • Fixed missing datagen assets. (@enjarai)

  • Massively reworked parts of the Tome of Tomfoolery to explain things more clearly. (@enjarai and @aurakle)
  • Added a new spell core which only runs while a player is near. (@enjarai and @aurakle)
  • Made all spell cores stackable to 4. (@enjarai)
  • Made all knots crackable by smashing them with an anvil. (@enjarai)
  • Added some extra tricks for interacting with inventories. (@Nicknakin)
  • Fixed being able to write ephemeral fragments. (@aurakle)
  • Fixed charging arrays not being pickaxe-mineable. (@aurakle)
  • Added a configuration option for the divider pin's colour and opacity. (@NOTMASTER09)
  • Made the string displayed while scrolling through the top hat translatable. (@Awakened-Redstone)
  • Fixed a concurrent modification exception. (@Awakened-Redstone)
  • Made macros work in the creative keybind editing screen. (@KyokoTomato)
  • Fixed the reveal trick causing an uncaught exception. (@KyokoTomato)
  • Added subtitles that were missing. (@KyokoTomato)
  • Fixed a dumb crash when the minecraft window is resized to 0x0 pixels. (@enjarai)
  • Made the first argument of the message listening trick optional. (@aurakle)
  • Undid changes to make the exportSpell subcommand operator-only. (@enjarai)
  • Fixed some redundant phrasing in the Tome. (@Le-Kat)
  • Added a trick for logarithms. (@Nicknakin)

Trickster Icon
Download Trickster
Select game version
Select platform