No description
  • Java 68.6%
  • Kotlin 19%
  • Lua 11%
  • CSS 0.7%
  • Astro 0.3%
  • Other 0.4%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026-08-01 16:38:59 +03:00
.github/workflows ci: migrate GitHub actions to Node 24 2026-08-01 14:54:38 +03:00
agent_docs docs: changelog, design doc, agent docs, AGENTS.md split 2026-08-01 06:15:05 +03:00
docs docs: changelog, design doc, agent docs, AGENTS.md split 2026-08-01 06:15:05 +03:00
gradle/wrapper Init comit 2026-05-22 15:46:57 +03:00
lua-types world:particle no more uses data field for particle data 2026-06-25 15:24:15 +03:00
pxluanova feat: async executor registry, thread pool, mutex, serialized resumer + docs 2026-08-01 10:16:56 +03:00
site docs: add whitelist example page and site nav entry 2026-08-01 16:38:59 +03:00
src feat: async executor registry, thread pool, mutex, serialized resumer + docs 2026-08-01 10:16:56 +03:00
.gitignore Embed PxLuaNova as pxluanova/ composite build subproject 2026-06-13 01:01:24 +03:00
AGENTS.md docs: changelog, design doc, agent docs, AGENTS.md split 2026-08-01 06:15:05 +03:00
build.gradle fix: exclude shadowed commons-lang3 to fix bootstrap crash 2026-08-01 14:36:24 +03:00
gradle.properties release: 0.17.1 - CI and bootstrap fixes 2026-08-01 14:51:27 +03:00
gradlew Init comit 2026-05-22 15:46:57 +03:00
gradlew.bat Init comit 2026-05-22 15:46:57 +03:00
LICENSE.txt Add README & license 2026-05-22 15:56:42 +03:00
log4j-dev.xml mc.task/mc.run for parallel tasks in Lua, a fea easter eggs 2026-06-28 01:56:38 +03:00
MODRINTH.md 0.16.0 2026-06-25 15:48:52 +03:00
README.md release: 0.17.1 - CI and bootstrap fixes 2026-08-01 14:51:27 +03:00
settings.gradle Embed PxLuaNova as pxluanova/ composite build subproject 2026-06-13 01:01:24 +03:00

PxIgnis

version version version

Lua scripting for Minecraft Fabric servers.

This project is developed with the assistance of AI. Humans were harmed (and included) during development too.

Full Docs · Полная документация · Quick start · Changelog


Examples

-- config/ignis/greet.lua
register("greet <name:text>", function(ctx, name)
    ctx.player:sendMessage("Hello, " .. name .. "!")
end)
mc.on("player_join", function(player)
    player.data.joins = (player.data.joins or 0) + 1
    player:sendMessage("Welcome back! (#" .. player.data.joins .. ")")
end)
mc.on("player_block_break", function(player, pos, blockId)
    if blockId == "minecraft:diamond_ore" then
        player:sendTitle({ title = "Lucky!" })
        player.world:particle("minecraft:totem_of_undying", pos)
    end
end)
-- config/ignis/shop.lua
local chestgui = require "chestgui"

register("shop", function(ctx)
    if not ctx.player:hasPermission("px.ignis.shop") then
        ctx.player:sendMessage("No permission.")
        return
    end

    ctx.player.sidebar = {
        title = "Shop",
        lines = { "1. Diamonds", "2. Emeralds" },
    }

    local gui = chestgui.create(3, "Shop")
    gui:fill(mc.createItem("gray_stained_glass_pane"))
    gui:set(2, 3, mc.createItem("diamond", 1), function(player, slot, clickType, slotItem, cursorItem)
        player:sendMessage("You bought a diamond!")
    end)
    gui:set(2, 4, mc.createItem("emerald", 1), function(player, slot, clickType, slotItem, cursorItem)
        player:sendMessage("You bought an emerald!")
    end)
    gui:open(ctx.player)
end, "px.ignis.shop")

What's inside

Area What you get
Commands Brigadier with tab completion, permissions, and types (text, word, player, int, bool, block_pos, choice=...)
Events Players, entities, blocks, items, server lifecycle
Reload /ignis reload re-executes all scripts; persistent state via mc.data / player.data
MC API Particles, sounds, blocks, entities, NBT, structures, weather, world border, explosions
UI Per-player sidebar, chest GUI lib, boss bars, holograms, titles
Async mc.fetch() for HTTP, mc.sleep() for coroutine delays
Storage Per-player and global JSON-backed key-value tables
Dev tools LuaLS types for IntelliSense, mc.dump(), metatable extension hooks

Install

Minecraft 1.21.x · Fabric Loader ≥0.19.2 · Fabric API ≥0.141.4 · Fabric Language Kotlin ≥1.10.8

  1. Drop the mod into mods/.
  2. Start the server — config/ignis/demo.lua is created.
  3. Edit scripts, run /ignis reload (OP-4 or px.ignis).

License

GNU Lesser General Public License v3.0. See LICENSE.txt.