Own runtime
Official Lua 5.4 is embedded as a language VM. HTTP, TLS, WebSocket, JSON, and the event loop are native C++ — not Luvit, not Node, not a borrowed framework.
A complete developer ecosystem: runtime, module, CLI, and versioned API reference.
Download DiscordLua-Setup.exe. The installer places the native Lua 5.4 runtime, Discord module, and CLI on PATH. Then dislua run bot.lua is enough.
local discord = require("discord")
local client = discord.Client({
intents = { "Guilds", "GuildMessages", "MessageContent" }
})
client:on("ready", function()
print("Bot is ready.")
end)
client:on("messageCreate", function(message)
if message.content == "!ping" then
message:reply("Pong!")
end
end)
client:login(os.getenv("DISCORD_TOKEN"))
Official Lua 5.4 is embedded as a language VM. HTTP, TLS, WebSocket, JSON, and the event loop are native C++ — not Luvit, not Node, not a borrowed framework.
Join voice, play Opus, receive decrypted packets, and spawn shard processes. broadcastEval takes a Lua source string.
Every release keeps its documentation. GET /api/discordlua/version is the update manifest the CLI already checks.