Mineuniverse
Log in Register
Plugins

Lukkit - Lua for Bukkit

A plugin to expose the Bukkit API to lua.
by UnwrittenFun
Download Claim this project
5,212 downloads
0 likes
Updated Jun 30, 2026
0 hypes
Developer Tools

Lukkit v1.0-alpha5

It's back! The plugin that allows you to write other plugins in Lua is now at version 1.0 with a complete re-write. With the new version you have access to ALL Bukkit functions and events.

Documentation

For documentation, go to the Bukkit docs and the Lukkit wiki.

Download

Go to the Files tab to download the alpha release

Help

If you need some help with Lukkit you can post in the forums. Make sure to take a look at the examples and documenation.

Examples

More examples are available on github

-- Add command /shout to broadcast a message to the server
-- Command name, short description, command usage
lukkit.addCommand("shout", "Broadcast a message to the server", "/shout Your message here", function(sender, args)
  broadcast(table.concat(args, " "))
end)
-- Only allow ops to break blocks
events.add("blockBreak", function(event)
  if not event:getPlayer():isOp() then
    broadcast(stringOf(format.RED) .. "You are not allowed to break blocks")
    event:setCancelled(true)
  end
end)
-- lukkit.addPlugin(pluginName, pluginVersion, pluginContent)
local helloPlugin = lukkit.addPlugin("HelloPlugin", "1.0", function(plugin)
  plugin.onEnable(function()
    plugin.print("HelloPlugin v" .. plugin.version .. " enabled")
  end)

  plugin.onDisable(function()
    plugin.warn("HelloPlugin v" .. plugin.version .. " disabled")
  end)

  -- At the moment naming a command with a capital letter will stop the command from being deregistered when running /lukkit reload or /lukkit resetenv
  plugin.addCommand("hello", "Send the sender the message 'Hello, world!'", "/hello", function(sender, args)
    sender:sendMessage("Hello, world!")
  end)

  -- Set the value if not already in the config
  -- plugin.config.setDefault(path, value)
  plugin.config.setDefault("test.bool", false)
  plugin.config.setDefault("test.int", 45)

  -- Set the value regardless of if it already exists
  -- plugin.config.set(path, value)
  plugin.config.set("test.float", 4.7)
  plugin.config.set("test.string", "a string")

  -- plugin.config.get(path, default)
  plugin.config.get("test.bool", true)

  -- Remove the config option
  plugin.clear("test.float")

  -- Save the config to file
  plugin.config.save()
end)

Videos

Overview with examples from VX | cheese

Lukkit v1.0-alpha5b
MC CB 1.7.9-R0.1
Alpha 2014-06-08 Get
Lukkit v1.0-alpha5
MC CB 1.7.2-R0.3
Alpha 2014-04-07 Get
Lukkit v1.0-alpha4
MC CB 1.7.2-R0.3
Alpha 2014-04-01 Get
Lukkit v1.0-alpha3
MC CB 1.7.2-R0.3
Alpha 2014-03-29 Get
Lukkit v1.0-alpha2c
MC CB 1.7.2-R0.3
Alpha 2014-03-28 Get
Lukkit v1.0-alpha2b
MC CB 1.7.2-R0.3
Alpha 2014-03-27 Get
Lukkit v1.0-alpha1
MC CB 1.7.2-R0.3
Alpha 2014-03-23 Get
Lukkit v1.0-alpha2
MC CB 1.7.2-R0.3
Alpha 2014-03-23 Get
Lukkit v0.5.1
MC 1.6.1
Release 2013-07-13 Get
Lukkit v0.5.0
MC 1.6.1
Release 2013-07-12 Get

More from UnwrittenFun

Wall Teleporters
9,598
Immersive Integration
9,097,867
Common Fun
8,674
UnwrittenBlocks
5,958

You Might Also Like

WorldGuard Custom Flags
WorldGuard Custom Flags
97,851
HoloAPI
Advanced and powerful holographic displays
93,959
Minequery
Minequery
91,099
SQLibrary
SQLibrary aims to streamline driver wrappers in Java for every database engine
85,675
WolfyUtilities
Utils and APIs: Config, Language and Inventory API, Protection Utils: WorldGuard, LWC, PlotSquared
84,728
DisguiseTester
Experiment with disguises!
9,677