A client-side mod that lets you customize you Minecraft Avatar... Extensively.
Customize your minecraft avatar to your heart's content using BlockBench and Lua code! The best part?
Figura is FULLY CLIENT-SIDE, but anyone with the mod can still see your customizations!
Figura REQUIRES the Fabric API to run. You can find the Fabric API here.
For guides on creating avatars, check out our Github Wiki!
The Figura Project is dedicated to re-imagining the way avatars in minecraft work, as a way to allow players to more creatively express themselves.
The goal is to achieve this in a purely client-side mod, using an external server to store and serve avatars, and to create a mod that enables users to easily create and customize interesting avatars that do not risk the safety or performance of other users.
Figura is specifically built to allow creators as much creative freedom as possible. This comes in the form of an easy to use creation pipeline, and a verbose, extensive lua API for reading data from Minecraft and changing your avatar. The file size limit is 100kb, which doesn't sound like much, but goes a long way when it comes to creating a minecraft avatar.
Notable features for the mod include
Figura is Client-Side Only
- Figura is indented to be a fully client-side mod. User Avatars are retrieved from and uploaded to an open-source server run by the mod's dev team. This means a Minecraft server does not need the mod installed for users to see your avatar.
- Other users are required to have the mod installed to see your avatar, and you must have it installed to see theirs. It's physically impossible to change this, so DO NOT ASK for it to be changed
- People who don't have Figura just see your plain old vanilla minecraft skin, as Figura does nothing to edit or change it.
- The goal of Figura is to allow creators to, well, create, freely without worry of limitations like rendering or script performance, or their vanilla avatar looking weird to non-Figura users. The file size limit is the only real limit on creations, everything else is determined by a viewer's personalized settings. This allows for full creative freedom for creators, and safe viewing of avatars for everyone else.
Client-Side Performance limitations.
- Each user can decide on the performance settings for everyone they see individually. This means that someone with a lower-end PC can set avatars to render at less detail, while someone with a beast PC can set things to have practically no detail limit.
- Model Complexity is limited on the fly. Model parts are rendered according to the hierarchy, allowing creators to prioritize specific details over others. Quads/Tris on mesh models are limited using the same system.
- Lua Script Execution is limited. Scripts run by non-trusted users are limited to a specific instruction count, ensuring that it is impossible for random users to destroy framerate using just "while true do end". Similarly, Lua Scripts are incredibly sandboxed, not allowing for any systems beyond basic math libraries and executing very safely guarded Java code. This ensures users cannot write malicious scripts. On top of both of these factors, lua scripting is multi-threaded, ensuring that the main game's FPS will never drop due to a script executing slowly (though framerate can still drop due to rendering)
- Models are simply BlockBench projects. They work 1:1 with Blockbench, enabling easy comparison and creation, and also supporting Animations. Particles from BlockBench are not yet supported.
- All files hotswap once initially loaded, enabling extremely fast iteration time. In layman's terms: Once you load an avatar from local files, any changes to those local files will show in-game immedaitely, without even re-starting the game. However, other people will NOT see your new changes until you press the upload button. Once you've pressed it, it takes 10~ seconds for the model to update for them.