Aesthetic — Lua Scripting

Aesthetic lets you write your own modules in Lua — no client rebuild required. A script declares a module, its settings and event handlers; the module shows up in the GUI next to the built-in ones and its settings are saved to the config.

Script location

<Minecraft config folder>/aesthetic/scripts/*.lua

Every .lua file in this folder is a separate script. The folder is created on first launch together with a sample example.lua.

Hot reload

Scripts reload automatically:

  • save a file — the script reloads instantly, keeping setting values and the module's enabled state;
  • create a file — the script loads on the fly;
  • delete a file — its modules are unloaded.

Every reload is announced in chat with the [lua] prefix.

Errors

A load error prints to chat and the script is skipped. An error inside a callback prints to chat and disables the module so it doesn't spam every tick. Fix the code and save — the script reloads.

Minimal script

local module = ui.category("scripts"):module("code", "Hello")

module:event("tick", function()
    -- runs 20 times a second while the module is enabled
end)

Next: Getting Started.