LuaCord

Write real Minecraft plugins in Lua.

LuaCord is a modern fork of Lukkit, rewritten in Kotlin (87%) with full Paper compatibility and extended API support. Create powerful Minecraft plugins using Lua scripting with access to the complete Spigot/Paper API.

License: GPL v3 Spigot Paper


🎯 Features


πŸ“¦ Installation

For Server Owners

  1. Download LuaCord-0.2.5-BETA.jar
  2. Place it in your server’s /plugins/ folder
  3. Place your .lkt or .jar plugin files in the same /plugins/ folder
  4. Start/restart your server

Requirements:

For Plugin Developers

Check out the JAR Generator to convert your .lkt plugins to .jar files for distribution!


πŸš€ Quick Start

Plugin Structure

A LuaCord plugin can be either:

Option 1: .lkt file (ZIP archive containing):

MyPlugin.lkt/
β”œβ”€β”€ main.lua          # Your plugin code
β”œβ”€β”€ plugin.yml        # Plugin metadata
└── config.yml        # Optional default config

Option 2: .jar file (For distribution on CurseForge/Modrinth):

Option 3: Folder (For development):

/plugins/MyPlugin.lkt/ # Folder name ending with .lkt
β”œβ”€β”€ main.lua
β”œβ”€β”€ plugin.yml
└── config.yml

Creating Your First Plugin

main.lua:

plugin:onEnable(function()
    logger:info("My plugin is enabled!")
end)

plugin:addCommand({
    name = "hello",
    description = "Say hello!",
    usage = "/hello"
}, function(event)
    local sender = event:getSender()
    sender:sendMessage("Hello from Lua!")
end)

plugin:registerEvent("PlayerJoinEvent", function(event)
    local player = event:getPlayer()
    player:sendMessage("Welcome to the server!")
end)

plugin.yml:

name: MyPlugin
version: 1.0
main: main.lua
author: YourName
description: My first LuaCord plugin

For .lkt: ZIP these files and rename to MyPlugin.lkt
For .jar: Use the JAR Generator
For folder: Just place the folder in /plugins/

That’s it! Restart your server and your plugin is live.


βš™οΈ Configuration

config.yml options:

# Enable debug mode for verbose logging
debug-mode: false

# Paper compatibility mode (recommended for Paper servers)
bypass-plugin-registration: true

# Enable Lua debug globals
lua-debug: false

# Check for updates on startup
update-checker: false

# Allow /luacord run command
can-run-code: true

For Paper servers: Keep bypass-plugin-registration: true
For Spigot servers: You can set it to false


πŸ“š Commands


πŸ”Œ Plugin API

-- Lifecycle hooks
plugin:onLoad(function() end)
plugin:onEnable(function() end)
plugin:onDisable(function() end)

-- Commands
plugin:addCommand({ name = "cmd", ... }, function(event) end)

-- Events
plugin:registerEvent("EventName", function(event) end)

-- Server access
local server = plugin:getServer()

-- Config
config:getValue("path")
config:set("path", value)
config:save()

-- Logging
logger:info("message")
logger:warn("message")
logger:severe("message")

For full API documentation, see the Lukkit Wiki (LuaCord is backwards compatible).


πŸ“¦ JAR Distribution

Why JAR Support?

Before 0.2.0, LuaCord plugins were .lkt files - great for development but:

Now with JAR support in 0.2.0:

How to Create a JAR

  1. Write your plugin as a .lkt file
  2. Go to luacordmc.github.io/generator.html
  3. Upload your .lkt and fill in metadata
  4. Download the generated .jar
  5. Upload to CurseForge/Modrinth!

The JAR generator is 100% client-side - your files never leave your browser.


πŸ› Known Issues

When using bypass-plugin-registration: true (Paper mode):

Note: .lkt files still don’t show in /plugins due to bypass mode. Use JAR plugins for better compatibility.


πŸ“ Changelog

0.2.5-BETA (Current)

Stability & Rebrand Update

Bug Fixes:

Changes:

0.2.0-BETA

JAR Support Release - The Distribution Update

New Features:

Technical:

Compatibility:

0.1.0-BETA

Initial LuaCord release - forked from Lukkit 2.2.0

Inherited from Lukkit 2.2.0 (by TheGamingMahi):


🎯 Roadmap

0.3.0 - Quality of Life Update

Future / Up to 1.0.0 - Stable Release


πŸ“œ License

LuaCord Core: GPL v3 - This ensures the framework remains open source.

Plugin Wrapper Template (LuaCord-Connector): MIT - Maximum freedom for plugin developers.

See LICENSE for details.


πŸ™ Credits

LuaCord

Original Lukkit Team

Special thanks to the Lukkit community for keeping the project alive!

Original Lukkit repository: https://github.com/jammehcow/Lukkit (archived)


πŸ”— Links


πŸ’¬ Support

Found a bug? Open an issue on GitHub Issues

Need help? Check the Lukkit Wiki (LuaCord is backwards compatible)


⚠️ Important Notes


Write plugins. Ship faster. LuaCord makes it easy. πŸš€