Primary repo for the Figura Project

Overview

Downloads

Modrinth

Curseforge

Join the Discord!

Figura REQUIRES the Fabric API to run. You can find the Fabric API here.

Figura

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 create custom, 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 extremely easy to use creation pipeline, and a verbose, extensive lua API for reading data from Minecraft. 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.

Features

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 a server run by the mod's creator, Zandra. 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.

Creative Freedom

  • The goal of Figura is to allow creators to create freely without worry of limitations like rendering or scripts. The file size limit is the only real limit on creations, everything else is determined by a user's personal settings, which can always be turned off, or on. This allows for full creative freedom for creators, and safe viewing 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)

Easy Creation

  • Models are simply blockbench projects. They work 1:1 with Blockbench, enabling easy comparison and creation. Animations/Particles are not yet supported.
  • Texture mapping with Models/OBJ Models match exactly as you'd expect. There's no difficult setup. If your texture maps correctly in Blockbench or whatever software you use for OBJ files, it will match in-game.
  • 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 until you press the upload button. Once you've pressed it, it takes 10~ seconds for the model to update for them.

Creation

Model Creation is primarily achived through five steps:

  1. Blockbench Projects imported into the game while using the mod. Special names are used to assign model parts to specific vanilla body parts for animation syncing, as well as rending some parts with/without certain armor or held items, during certain animations, etc. This enables a lot of customization with little to no scripting.
  2. Texture files created as one would normally create a .png file. No limit on size for the image itself, though it is included under the maximum 100kb file size limit for any avatar.
  3. [OPTIONAL] .Obj files created through Blender or similar programs. These allow for non-cube models to be added to your avatar, for more creativity. Note that importing these is typically significantly more expensive than using Blockbench parts.
  4. [OPTIONAL] Creating a .lua script file to indicate any custom behaviour your avatar may have.
  5. Import all above asset files with a single click, and upload the entire avatar with another click.

Plans

Plans for the future of Figura (sorted more or less by priority) include

  1. Karma System
  • A system for managing player behaviour. Getting reported hurts your karma, while not getting reported rewards you karma. Users will be able to limit avatars based on someone's karma, allowing for a sort of "crowd moderation" system.
  1. Functional Shaders
  • Allowing users to write their own shaders for avatars/parts of avatars. This will be done in 1.17 with the rendering system updates.
  1. Network API
  • Allow the scripting API the ability to send small amounts of information to anyone viewing someone's avatar using a messaging system. Severely rate & data limited, but it will be routed through the Figura server, keeping Figura's "client-only" design in place.
  1. Player Worlds
  • Allow players to upload a structure file generated using structure blocks to the Figura server, and allow other players to "visit" those structures in an empty world. These worlds could be used for showing off avatars, or just builds, or anything else.
  1. Part Browser/Avatar Stitching
  • The final planned feature for moving Figura out of alpha/beta will be the ability for players to use an in-game browser to pick "parts" from publicly avaliable sets, and automatically use those parts together, merging them into a single avatar.
Comments
  • Toggles Discussion (Ping System)

    Toggles Discussion (Ping System)

    Many Avatars use toggles such as double shifting, and items in there hand, why not have a API to support this with a key-bind, and a way to select it and F3 and N.

    opened by ColdIce1605 14
  • (Wiki issue) The Wiki pages for the scripting is NOT that helpful.

    (Wiki issue) The Wiki pages for the scripting is NOT that helpful.

    I'm searching for a Lua scripting tutorial made specifically for this mod only to find a bedrock-walled dead end. Then I turned to the Figura Wiki only to be confused by the vague non-sense within. But at least it contains helpful information.

    invalid 
    opened by MCAlexisYT 13
  • Figura pre-release (figura-0.0.5c-pre10) Incompatible with Immersive Portals

    Figura pre-release (figura-0.0.5c-pre10) Incompatible with Immersive Portals

    By trying to open Immersive portals and This figura pre-release, the game crashes while opening

    (https://user-images.githubusercontent.com/72460263/119868613-e0e72e00-bee4-11eb-9890-25be652c0965.png)

    opened by FlamesEC 9
  • Error keeps getting spammed in the log

    Error keeps getting spammed in the log

    [03:48:30] [main/INFO]: [STDERR]: java.lang.NullPointerException [03:48:30] [main/INFO]: [STDERR]: at net.blancworks.figura.models.CustomModel.getMaxRenderAmount(CustomModel.java:53) [03:48:30] [main/INFO]: [STDERR]: at net.blancworks.figura.models.CustomModel.render(CustomModel.java:59) [03:48:30] [main/INFO]: [STDERR]: at net.minecraft.class_591.method_2828(class_591.java:607) [03:48:30] [main/INFO]: [STDERR]: at net.minecraft.class_922.method_4054(class_922.java:134) [03:48:30] [main/INFO]: [STDERR]: at net.minecraft.class_1007.method_4215(class_1007.java:65) [03:48:30] [main/INFO]: [STDERR]: at net.minecraft.class_1007.method_3936(class_1007.java:42) [03:48:30] [main/INFO]: [STDERR]: at net.minecraft.class_898.method_3954(class_898.java:261) [03:48:30] [main/INFO]: [STDERR]: at net.minecraft.class_490.method_29977(class_490.java:149) [03:48:30] [main/INFO]: [STDERR]: at com.mojang.blaze3d.systems.RenderSystem.runAsFancy(RenderSystem.java:1439) [03:48:30] [main/INFO]: [STDERR]: at net.minecraft.class_490.method_2486(class_490.java:149) [03:48:30] [main/INFO]: [STDERR]: at net.minecraft.class_490.method_2389(class_490.java:111) [03:48:30] [main/INFO]: [STDERR]: at net.minecraft.class_465.method_25394(class_465.java:101) [03:48:30] [main/INFO]: [STDERR]: at net.minecraft.class_485.method_25394(class_485.java:43) [03:48:30] [main/INFO]: [STDERR]: at net.minecraft.class_490.method_25394(class_490.java:92) [03:48:30] [main/INFO]: [STDERR]: at net.minecraft.class_757.method_3192(class_757.java:616) [03:48:30] [main/INFO]: [STDERR]: at net.minecraft.class_310.method_1523(class_310.java:1048) [03:48:30] [main/INFO]: [STDERR]: at net.minecraft.class_310.method_1514(class_310.java:681) [03:48:30] [main/INFO]: [STDERR]: at net.minecraft.client.main.Main.main(Main.java:215) [03:48:30] [main/INFO]: [STDERR]: at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [03:48:30] [main/INFO]: [STDERR]: at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) [03:48:30] [main/INFO]: [STDERR]: at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) [03:48:30] [main/INFO]: [STDERR]: at java.lang.reflect.Method.invoke(Unknown Source) [03:48:30] [main/INFO]: [STDERR]: at net.fabricmc.loader.game.MinecraftGameProvider.launch(MinecraftGameProvider.java:226) [03:48:30] [main/INFO]: [STDERR]: at net.fabricmc.loader.launch.knot.Knot.init(Knot.java:139) [03:48:30] [main/INFO]: [STDERR]: at net.fabricmc.loader.launch.knot.KnotClient.main(KnotClient.java:27) [03:48:30] [main/INFO]: [STDERR]: at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [03:48:30] [main/INFO]: [STDERR]: at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) [03:48:30] [main/INFO]: [STDERR]: at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) [03:48:30] [main/INFO]: [STDERR]: at java.lang.reflect.Method.invoke(Unknown Source) [03:48:30] [main/INFO]: [STDERR]: at org.multimc.onesix.OneSixLauncher.launchWithMainClass(OneSixLauncher.java:196) [03:48:30] [main/INFO]: [STDERR]: at org.multimc.onesix.OneSixLauncher.launch(OneSixLauncher.java:231) [03:48:30] [main/INFO]: [STDERR]: at org.multimc.EntryPoint.listen(EntryPoint.java:143) [03:48:30] [main/INFO]: [STDERR]: at org.multimc.EntryPoint.main(EntryPoint.java:34)

    opened by bestsoft100 8
  • Disabling the vanilla model doesn't work for other players

    Disabling the vanilla model doesn't work for other players

    This loop:

    for key, value in pairs(vanilla_model) do
        value.setEnabled(false)    
    end
    

    doesn't seem to work for other players in a multiplayer server.

    opened by NotNite 7
  • Crash using Held Item & First Person Model API with First Person Model mod

    Crash using Held Item & First Person Model API with First Person Model mod

    When I iterate through the held item models and set their position with First Person Model installed and configured to show the vanilla hands, I crash.

    Repro:

    1. Install First Person Model. Open its config and enable Vanilla Hands then go in-game.
    2. Make an avatar and put this script in it.
    local VECTOR_ZERO = vectors.of{0, 0, 0}
    for i, v in pairs(model) do v.setEnabled(false) end
    
    function render()
    	for i, v in pairs(held_item_model) do
    --		v.setPos(VECTOR_ZERO)
    	end
    end
    
    1. Equip it and hold an item. You will not crash.
    2. Scroll to an empty hotbar slot, uncomment line 6 and reload.
    3. You will crash upon holding an item.

    This is where we enter the twilight zone. If you install Not Enough Crashes to survive and try to go back in from the menu, the graphics will get corrupted. This gets worse every time you crash. Here are some bizarre artifacts: 6wKhte 7CbvW6 lCGA3w

    opened by Khodyn 6
  • [ Enhancement ] Coloured Mark

    [ Enhancement ] Coloured Mark

    I'm to lazy to create a PR for this but we can have the icon colours still be cyan if we append §3 to them. Example:

    "figura.mark": "§3△"
    
    opened by S-N00B-1 6
  • Emissing textures does not emit light with LambDynamicLights

    Emissing textures does not emit light with LambDynamicLights

    When you have LambDynamicLights installed with Figura, even if there is an option to enable dynamic light sources with entities, the emissing texture from a Figura pack does not emit any dynamic light Holding a light : 2022-05-11_17 27 12 Only the skin with emissing texture : 2022-05-11_17 27 15

    opened by DelofJ 5
  • uhh WHAT? (Unexpected splash text)

    uhh WHAT? (Unexpected splash text)

    I opened up Minecraft just to see THIS... Does this only happen on march 11? I checked into the jar file with 7-Zip and found nothing. uhh WHAT This is the list of mods that I had in that specific Curseforge instance of Minecraft in case there were other mods that caused this splash text twmmodlist

    question 
    opened by MCAlexisYT 5
  • basic lua keywords/functions work incorrectly

    basic lua keywords/functions work incorrectly

    keywords like .. (or is it the tostring function, im not entirely sure) are working incorrectly, like with this example:

    local config = {
        ["minRandomness"] = {-50, -50, -50},
        ["maxRandomness"] =  {50, 50, 50}
    }
    
    
    print("Loading chaos...")
    
    local function serialise(t, indent, brackets)
        if brackets == nil then
            brackets = true
        end
        local indent = indent or "  "
        if type(t) == "table" then
            if brackets then
                print("{")
            end
            for k,v in pairs(t) do
                if type(v) == "table" then
                    print(indent .. k .. ": {")
                    serialise(v, "  "..indent, false)
                    print(indent .. "},")
                else
                    print(indent .. tostring(k) .. ": " .. tostring(v) .. ",")
                end
            end
            if brackets then
                print("}")
            end
        else
            print(indent .. tostring(t))
        end
    end
    
    print("Chaos configuration: ") serialise(config)
    

    lua repl prints:

    {
      maxRandomness: {
        1: 50,
        2: 50,
        3: 50,
      },
      minRandomness: {
        1: -50,
        2: -50,
        3: -50,
      },
    }
    

    but figura prints: image

    bug fixed confirmed oudated version 
    opened by ghost 5
  • Black Flashes with Dynamic FPS

    Black Flashes with Dynamic FPS

    Hi! I'm the developer behind Dynamic FPS.

    I recently got a report (https://github.com/juliand665/Dynamic-FPS/issues/47) of someone getting black flashes when the game is in the background (which is when Dynamic FPS reduces render speed to save resources). Someone else wrote that they experienced this in combination with Figura, so I thought I'd ask if y'all have any idea what might be causing this.

    My codebase is rather simple, thus I'd say it's probably less effort for you to find what I might be doing that's violating your assumptions than the other way around :)

    If I had to guess, it looks to me like you might be clearing a framebuffer that I expect to just remain the same?

    opened by juliand665 5
  • Not compatible with Optifabric

    Not compatible with Optifabric

    Mod resolution encountered an incompatible mod set! Replace mod 'Figura' (figura) 0.0.8+1.18.2 with any version that is compatible with: optifabric 1.13.0 Unmet dependency listing: Mod 'Figura' (figura) 0.0.8+1.18.2 is incompatible with any version of mod 'OptiFabric' (optifabric), but a matching version is present: 1.13.0!

    -Fabric 0.14.8 -Version 1.18.2 -Figura Alpha 0.0.8+1.18.2

    opened by Apol076 2
  • "Figura Command System" does not work

    Description

    "Figura Command System" does not work in figura-0.0.8-1.19.jar. The command is recognized because a command text turns blue when entering it, but onCommand() is not executed.

    How to reproduce

    1. Create an avatar which includes Figura Command System scripts.
      chat.setFiguraCommandPrefix("?")
      
      function onCommand(input)
      	    print("Figura command accepted.")
      end
      
    2. Run commands such as ?test in Minecraft chat.
    3. The command is not executed and it is sent to the server as chat text.

    Expected behavior

    onCommand() function will be executed when entering Figura command and it will not be sent to the server as chat text. This behavior is the same as in 1.18.2.

    Environments

    • Minecraft version: 1.19
    • Fabric loader version: 0.14.6-1.19
    • Fabric API version: 0.56.0+1.19
    • Figura version: 0.0.8-1.19
    opened by Gakuto1112 0
  • Add Simplified Chinese

    Add Simplified Chinese

    Now the translation is almost done, but there are some parts that I don't know what they mean. If you don't want to waste time here, you can use it for now until a better translation is available What do they mean? Max Init Instructions Max Tick Instructions Max Render Instructions Offscreen Rendering Toggle the transformations of first person hands Render Parts Pivot

    opened by x-yingcan-x 13
  • Not compatible with Complementary Shaders in Iris

    Not compatible with Complementary Shaders in Iris

    Using Figura and Iris at same time causes rendering issues with Complementary Shaders For some reason any key/mouse input freezes the game for few seconds when this happens image

    Figura Version: 0.0.8+1.19 Iris Version: 1.2.5 Sodium Version: 0.4.2+build.16 Complementary Shaders Version: v4.5

    opened by KabanFriends 2
  • "ELYTRA _ ORIGIN" allows attach other entities elytra model.

    With ELYTRA_ORIGIN, Elytra equipped by other entities will also be displayed on the model In this image, the Elytra is equipped with an armor stand, but shown on my model.

    image

    bug important 
    opened by Chuzume 1
Releases(0.0.8)
  • 0.0.8(Feb 28, 2022)

  • 0.0.7(Dec 23, 2021)

    Just like Alpha 6, Alpha 7 has also a lot of new things, it is so many that we can't list every change on here, so here its a summary on what happened on the past months!

    Custom Shader

    You can now apply custom shaders to specific model parts of your own model. Shaders are a different type of programs that runs on the GPU and are written in a language called GLSL. They can do a variety of special effects and post-processing effects to your avatar.

    Blockbench Meshes

    In the past, Blockbench used to only support cube models, but because recently they added support to other types of models, Figura now supports them too. Now you can load donuts and cones into figura! (。◕‿◕。)

    Custom Player Heads

    Now player head item in the game use the same head model as you figura avatar! (If your model is loaded anyway) And you can also use the Blockbench keyword "SKULL" to override it.

    Custom Sounds

    What? I didnt hear you (insert vine boom sfx here); You can now use custom sound files (ogg) on your avatar! however avatars are still limited to 100kb, so you might need to compress/reduce quality of the sounds.

    Player Popup

    Is the trust menu too complicated? or is it too hard to open and search for the player that is literally in front of you? and even more with thousand of sliders and toggles, its normal to get overwhelmed. But thats no more! Now you only need to point your crosshair at the person you want, then hold "R" (default). It gonna show a popup menu on top that player head, with some quick settings like reloading avatar or changing trust. To select its also easy, you can either scroll your mouse or use the hotbar buttons 1-4. To execute your action, all you need to do is release "R".

    More API's!

    • More accesses to the game client variables and functions.
    • Changes in old API's to quality of life improvements.
    • You can now finally add a custom API to figura with your mod so both of them can interact with each other. (Keep in mind that trying to run the script without the mod will result in ERRORS!!!).

    And an uncountable Amount of Bug Fixes!!

    Crashes, Glitches, Exploits, Random Errors, Security Issues and more! Figura is now safer and less prominent to errors!

    If you need help, have any questions or want to get more in depth of all the changes in the Figura in our DISCORD SERVER!

    Source code(tar.gz)
    Source code(zip)
    figura-0.0.7-1.16.jar(1.39 MB)
    figura-0.0.7-1.17.jar(1.46 MB)
    figura-0.0.7-1.18.jar(1.44 MB)
  • 0.0.6(Jul 15, 2021)

    Figura 0.0.6 is an action-packed update!! In fact, so many changes that we've had to condense them into a summary! Here's a list of all of the important changes, starting with the biggest and ending off with the smallest.

    New Networking

    A new open-source networking backend has been introduced to Figura! You can find it here: https://github.com/Blancworks/FiguraServer

    The new networking system is the successor to the original networking system and falls under the LGPL-2.1 License, identical to Figura's license.

    Roughly one week from this announcement, versions prior to Alpha 6 will cease all network functions and be limited to the local avatars feature.

    Avatars will be migrated from the old network to the new one once the old network is shut down. Avatars on the new network will take priority over the old one, so your new stuff won't be overriden if you switch now!

    "Why is the old backend being deprecated?" - The biggest challenge that Blancworks faced is that the old backend had code that made it impossible to open-source. Open-sourcing Figura in order to give full transparency is at the utmost importance, as Figura will never store data that you don't intentionally offer to help with debugging issues.

    The old backend was also deprecated because adding new features was difficult and tedious, such as the new message system, which also introduces the ping system. The new networking backend allows for future foresight and allows for easier feature implementation.

    So, what else is new?

    Pings!

    And no, not Discord pings. As much as that joke is funny, we've heard it too many times.

    Pings are like sending messages to other players. As an example, you create a ping attached with some code in your script, then send the ping at some point in your script. When the ping is sent, other players receive it too.

    On receiving it, you along with the other players activate the code associated with the ping, allowing for near real-time interactions! With this new feature, you can create costumes, emotes and so much more!

    But you know what else came in the package?

    KEYBINDS!!

    I know you're just as excited as we are for the introduction of customisable hotkeys!

    We know the difficulty of having to figure out a way to cause actions to occur, whether it's holding a named item or sneaking three consecutive times to activate stealth mode. With keybinds, you can use any unassigned key on your keyboard to cause an action to occur! Pair this up with pings, and you're practically unstoppable at that point.

    BUT THERE'S MORE!

    ACTION WHEEL?!

    It just keeps going and going!! The fun never stops, with a FULLY customisable action wheel. Set items to slots, color the slots, change the hover color, have five slots or eight! There's so much you can do with the wheel.

    But there's one problem. Where is the paging system?

    That's where ingenuity comes in, to resolve this issue! By using a slot, you can create your OWN paging system easily! All code, no shortcuts. The wheel was built intentionally to suit your needs while also giving practical and reasonable limitations!

    But don't tell me, there's even MORE cool stuff?!

    VECTOR API

    It keeps on getting better and the ball just won't stop rolling! The new Vector API is more efficient than vector tables and gives you the flexibility you need, as opposed to the deprecated vector tables. But, worry not, for vector tables will continue to work for the foreseeable future!

    You may be asking, why would I use the Vector API over vector tables? Well, simply put, the Vector API is a lot easier to work with and runs much more efficiently, proving to decrease the instruction count of scripts by quite a bit!

    The large avatars can thank us.

    So many bugfixes!!!

    There are literally so many bugfixes in this release that we can't list them all in a reasonably-sized file. Tons of things have been fixed, changed, or tweaked to make sure Figura runs better than ever before. Enjoy!

    Source code(tar.gz)
    Source code(zip)
    figura-0.0.6-1.16.5.jar(1.13 MB)
    figura-0.0.6-1.17.x.jar(1.14 MB)
  • 0.0.5(Apr 20, 2021)

    0.0.5 (Alpha 5) Changelog

    NEW FEATURES

    • Changed file system to use folders/zips.

      • Files for any given model should be put into a named folder with the following names:
        • Models should be renamed to 'model.bbmodel'.
        • Textures should be renamed to 'texture.png'.
        • Scripts should be renamed to 'script.lua'.
      • Zip files with the same structure as above will be read and importable correctly.
    • ADDED PLAYER SKIN TEMPLATE SUPPORT.

      • Any BlockBench project set to the Player Skin (WITHOUT pose) template can be imported as-is, without weird offsets being applied.
      • Any model file saved as 'player_model.bbmodel' instead of 'model.bbmodel' will also apply the given offsets. If you switch to using a Generic Model from a Player Skin Template, name your files this instead.
    • Added blockbench keywords for Elytra.

      • LEFT_ELYTRA/RIGHT_ELYTRA will move a group to match the transformation of the matching elytra wing.
      • LEFT_ELYTRA_ORIGIN/RIGHT_ELYTRA_ORIGIN will move and rotate the original elytra wing in reference to a Blockbench group.
    • Added blockbench keywords for the held item on your vanilla model.

      • LEFT_HELD_ITEM/RIGHT_HELD_ITEM will move the held item from Minecraft to originate from that matching Blockbench group.
    • Extended Scripting API

      • Added 'setScale({x,y,z})' and '{x,y,z} getScale()' to Custom Model Parts to allow for scaling.
      • 'tick' and 'render' have been changed slightly, and now auto-subscribe to the global 'onTick' and 'onRender' events. This allows you to merge scripts much easier.
      • Lua Compiler/Runtime exceptions are now displayed in chat, rather than only logging to the minecraft console.
        • Lua errors are not logged at all from other clients.
      • Lua Errors will disable scripts, to prevent malicious behaviour, regardless.
      • Added new Vanilla Model APIs.
        • 'held_item_model' with 'LEFT_HAND' and 'RIGHT_HAND'.
        • 'elytra_model' with 'LEFT_WING' and 'RIGHT_WING'.
      • Added the Sound API, which allows you to play any vanilla sound effect. Limited by the Trust system to 4 sounds per second by default.
    • Added a Config Screen with some basic config options.

      • Show Preview NameTag, which toggles if your nametag should show in the preview for your model.
      • Show Figura Mark, which toggles if people with an avatar should have a mark on their NameTag for you.
        • Devs also have a special mark added on, too.
      • Figura Button Location, which changes where the Figura Button is on the pause menu.

    CHANGES/FIXES

    • Completely re-built the Figura Panel to be much easier to understand and use.
    • Completely re-wrote the asset loading system to be less prone to bugs, at the potential cost of loading time.
    • Completely re-wrote the rendering system to be more stable and easier to develop with.
    • Completely re-wrote the scripting system to be more stable and easier to develop with.
    • Added some localizations.
    • Fixed so many bugs, crashes, fruits, and vegetables, that it's not even funny. This list would be super long if I added them all. Here's some important ones.
      • Fixed Alex Models making the Vanilla Model API not return the correct values.
      • Fixed avatar textures sometimes turning to steve.
      • Fixed NO_PARENT parts rendering incorrectly, and not rendering in first person sometimes.
    Source code(tar.gz)
    Source code(zip)
    figura-0.0.5.jar(959.83 KB)
  • 0.0.4(Apr 1, 2021)

  • 0.0.3(Mar 27, 2021)

  • 0.0.2(Mar 25, 2021)

    Fixed disabled parts never re-enabling Fixed avatars with no script keeping previous scripts Fixed crash in Trust Screen when reloading an avatar with none selected. Fixed layered skin elements on vanilla avatar not disabling correctly. Fixed inflate not porting correctly from blockbench Fixed UI buttons being weird when too wide on some UI scales.

    Source code(tar.gz)
    Source code(zip)
    figura-0.0.2.jar(645.91 KB)
  • 0.0.1(Mar 24, 2021)

Owner
Zandra
Zandra
1002 ftc repo for the 2021 rr5 game

NOTICE This repository contains the public FTC SDK for the Freight Frenzy (2021-2022) competition season. Welcome! This GitHub repository contains the

null 3 Mar 14, 2022
The Ludii general game system, developed as part of the ERC-funded Digital Ludeme Project.

The Ludii General Game System Ludii is a general game system being developed as part of the ERC-funded Digital Ludeme Project (DLP). This repository h

Digital Ludeme Project 49 Dec 25, 2022
Dalek’s Game is a Java project for Object-Oriented Technologies classes

Dalek’s Game is a Java project for Object-Oriented Technologies classes. The goal of the game is to survive and eliminate Daleks (who are the enemies) from the board. Each time the main character (Doctor) moves, every Dalek follows him. When a Dalek bumps into another Dalek or junk, it becomes junk. When there is no Dalek left on the map, Doctor wins.

Adrian Jabłoński 4 Feb 7, 2022
A Java Project designed to manage a football clubs players and play RNG Simulated Games against other teams.

A Java Project designed to manage a football clubs players and play RNG Simulated Games against other teams.

ztrunks 0 Feb 21, 2022
An arcade game project which made using java and swing for graphics

Arcade_Game_Development This is an arcade game project which made using java and swing for graphics. Meteor Dodge Here you have to dodge the meteor an

Md. Shakib Shahariar Junayed 1 May 25, 2022
Chess made as an assignment project for OOP course 2021/22

chess Chess made as an assignment project for OOP course 2021/22 Installation Project is built with Clone the repository In the directory containing p

Michał Horodecki 3 May 1, 2022
Primary repo for the Figura Project

Downloads Modrinth Curseforge Join the Discord! Figura REQUIRES the Fabric API to run. You can find the Fabric API here. Figura The Figura Project is

Zandra 218 Dec 26, 2022
This is the primary repository for the source code of the OpenJML project.

OpenJML This is the primary repository for the OpenJML project. The active issues list for OpenJML development is here and the wiki contains informati

OpenJML 111 Dec 22, 2022
A simple figura api extention that allow you to change your avatar, or upload it with script

A simple figura api extention that allow you to change your avatar, or upload it with script

null 4 Apr 14, 2022
Custom API template for Figura :3

Info This is an example API, to run with Figura mod! Feel free to use this as example for your APIs Figura Figura is a Minecraft Java mod that allows

Kingdom of The Moon 5 Aug 31, 2022
Ribbon is a Inter Process Communication (remote procedure calls) library with built in software load balancers. The primary usage model involves REST calls with various serialization scheme support.

Ribbon Ribbon is a client side IPC library that is battle-tested in cloud. It provides the following features Load balancing Fault tolerance Multiple

Netflix, Inc. 4.4k Jan 1, 2023
Ribbon is a Inter Process Communication (remote procedure calls) library with built in software load balancers. The primary usage model involves REST calls with various serialization scheme support.

Ribbon Ribbon is a client side IPC library that is battle-tested in cloud. It provides the following features Load balancing Fault tolerance Multiple

Netflix, Inc. 4.4k Jan 4, 2023
Welcome to the EHS robotics club's GitHub repository, this will also be used as our primary community center and means of communication. Also be sure to join our remind for on the go updates @EHSFTC21

NOTICE This repository contains the public FTC SDK for the Ultimate Goal (2020-2021) competition season. Formerly this software project was hosted her

null 5 Feb 25, 2022
This repository contains the code for the Runescape private server project, and this repo is soley maintained by @Avanae and @ThePolyphia and @Xeveral

Runescape: The private server project. A Runescape private server based on the 2009 era. This repository contains the code for the Runescape private s

ProjectArchitecture 4 Oct 1, 2022
An assistance platform made using Spring framework that analyses your code, and helps you either to start a devops project, or to turn an existing project into a devops project using open source software (Git, Docker, Jenkins..)

DevOpsify Description An assistance platform made using Spring framework that analyses your code, and helps you either to start a devops project, or t

obaydah bouifadene 14 Nov 8, 2022
Eclipse Foundation 3k Dec 31, 2022
This code base is retained for historical interest only, please visit Apache Incubator Repo for latest one

Apache Kylin Apache Kylin is an open source Distributed Analytics Engine to provide SQL interface and multi-dimensional analysis (OLAP) on Hadoop supp

Kylin OLAP Engine 561 Dec 4, 2022
This repo contains a proof-of-concept for 📱🚀👑⚡, a deserialization vuln for local escalation of privilege to system_server in Android 10. This proof-of-concept only activates a privileged intent.

CVE-2020-0082-PoC This repo contains a proof-of-concept for ?? ?? ?? ⚡ , a deserialization vuln for local escalation of privilege to system_server in

null 24 Oct 11, 2022