Перейти к содержимому
Mineforgian

Allium

Lua script loader for Java Minecraft

5K загрузок21 подписчиковMITfabric

Обновлён 24 марта 2026 г. · опубликован 11 марта 2025 г.

  • Icon
  • Allium Banner

Allium Logo

Github Stars Discord

Lua script loader for Java Minecraft.

Currently, only functioning and in development in Fabric, with the intent of supporting Forge/Quilt later on down the road.

Installing

Allium installs just like any other Fabric mod. Depending on the scripts you use, they may depend on Bouquet, an additional mod that adds libraries to make scripting easier. Much like Fabric API, this mod is independent and not built into the loader side of Allium and must be downloaded individually.

If you'd like to use Allium or Bouquet to extend functionality of your own Java mod, publications can be found on the Moongarden Maven.

Scripts

In the same place that you create your mods directory, create a folder named allium. This is where your lua scripts will go. They may come in the form of a .zip, but may be expanded, and put into a regular directory if you'd like to tinker with them. If you're at all familiar with the Resource/Data Pack structure, then you'll know that this is similar.

Documentation

Версии

ВерсияКаналИграЗагрузчикиДатаСкачать
0.5.0Бета26.2-snapshot-3, 26.2-snapshot-4, 26.2-snapshot-5, 26.2-snapshot-6fabric24 марта 2026 г.Скачать (709 КБ)
0.4.0Альфа1.21.1, 1.21.2, 1.21.3, 1.21.4fabric13 марта 2025 г.Скачать (617 КБ)
0.3.1Альфа1.21.1, 1.21.2, 1.21.3, 1.21.4fabric11 марта 2025 г.Скачать (616 КБ)

Ченджлог

0.5.0Бета26.2-snapshot-4, 26.2-snapshot-5, 26.2-snapshot-6 · 24 марта 2026 г.

Allium Beta 0.5.0

This update is a complete overhaul from the prior version. Much of the fundamental behaviors remains the same, but the engine behind those behaviors has been changed. Furthermore most all of the APIs have been overhauled in one way or another. For specific documentation please see the Allium Docs.

Major items have been given a title in bold.

Features

  • Mixin Support: Lua developers can now write Java mixins in Lua. While it is possible for all mixin injector types to be created, support in the API has been primarily given to the following annotations:
    • @Inject
    • @ModifyArg
    • @ModifyArgs
    • @ModifyExpressionValue
    • @ModifyReturnValue
    • @WrapMethod
    • @Definition
    • @Expression
    • @Cancellable
    • @Local
    • @Share
  • Class Builder Scope: The methods provided to a class being built now have access to private methods on themselves, and protected methods on parent classes via the self keyword.
  • Java Library Additions:
    • Java primitive types can now be accessed through the java library using the primitive name (ex. java.boolean)
    • Add method java.callWith(). Forces a method invocation with the provided parameter type list, instead of inferring them from the parameters.
    • Add method java.coerce(). Coerces an object that inherits from either Collection or Map into a table.
    • Add method java.wrap(). Forcibly wraps a primitive value in one of the Java wrapper classes.
    • Add method java.throw(). Throws a provided exception.
  • Add the mixin manifest entrypoint. Used to declare mixins before the game launches.
  • Add method script:registerReloadable(), expects a require-like path to a file that will be executed whenever the script's reload method is called.
  • The __len metamethod is now provided on all objects where a Java .size() method or .length field is present. This means that any object with either can now have their size inspected with the # prefix.

Changes

  • Class Builder Overhaul: The class builder API is now a factory pattern, where methods get chained together to build out the class. At the very end a table matching the specified class methods is supplied.
  • The allium and java APIs have been moved from Bouquet to here.
  • Java arrays no longer unidirectionally get converted to tables and instead are given a metatable that wraps the array in table-like functionality.
  • The game environment that was previously accessed with package.environment is now accessed with the allium.environment() function.
  • The static manifest entrypoint has been renamed to main
  • A wider range of java specific utility types are now supported during coercion.
  • Error messages are substantially more detailed.

Removals

  • Mapping Support Deprecation: Due to the removal of obfuscation and the overwhelming challenge of having to convert between both mappings and languages, going forward Allium now exclusively interprets scripts using Mojang's naming scheme. The "mapping" key in script's manifest.json is no longer supported.
  • Extension Support Deprecation: Everything that could possibly be done with an extension can be done by creating a dedicated class reserved for Allium scripts. The only major loss here is support for custom globals, but it's bad practice to pollute the global table anyways.
  • The dynamic entrypoint has been removed in favor of using script:registerReloadable().
0.4.0Альфа1.21.2, 1.21.3, 1.21.4 · 13 марта 2025 г.
  • Remove individual per-environment script entrypoints
  • Add package.environment to compensate for the removal mentioned above. Use package.environment == "client" in a conditional to isolate logic that's only meant to be run on the client.
  • Add mappings field to manifest.json. Currently the only available option is "yarn", but expect that to change soon!
0.3.1Альфа1.21.2, 1.21.3, 1.21.4 · 11 марта 2025 г.

Initial Public Release of Allium

Комментарии

Загружаем…