Compatibility
Minecraft: Java Edition
Platforms
Supported environments
Links
Tags
Creators
Details
MLua
MLua is a pure Java scripting mod for Minecraft. It brings Lua/Luau-style scripting into Minecraft with APIs designed around players, worlds, events, registries, commands, networking, files, UI, and more.
The goal is to make mod scripting feel simple and familiar while still fitting naturally into Minecraft’s systems.
Features
- Lua/Luau-style scripting powered by a Java backend
- Support for client, server, command, registry, and module scripts
- Roblox/Luau-inspired APIs adapted for Minecraft
- Object-style wrappers for players, entities, blocks, items, and worlds
- Scriptable items, blocks, entities, commands, events, and networking
- Runtime-generated documentation that matches the current build
Scripts
During development, scripts can be placed in:
run/mlua/scripts/
Mods can also bundle scripts inside their jar at:
assets/<modid>/mlua/scripts/
Supported script types:
*.mixin.lua mixins i guess
*.registry.lua early registry scripts
*.commands.lua command registration scripts
*.server.lua server-side scripts
*.client.lua client-side scripts
*.lua module scripts
Documentation
MLua generates documentation at runtime inside the Minecraft client.
After launching the game, open:
run/mlua/docs/index.html
This generated documentation is the best source of truth because it reflects the APIs available in the build you are currently running.
Example
local Players = Minecraft:GetService("Players")
local World = Minecraft:GetService("World")
Players.PlayerAdded:Connect(function(player)
player:SendMessage("Hello from MLua!")
player:SetGameMode(GameMode.Creative)
end)
World:SetWeather(Weather.Clear)
Using MLua From Another Mod
To use MLua from another mod, add MLua alongside your mod and declare it as a dependency in mods.toml:
[[dependencies.yourmodid]]
modId="mlua"
mandatory=true
versionRange="[0.1.0,)"
ordering="AFTER"
side="BOTH"


