PxRP
ModA Lua framework for Minecraft Fabric servers with instant hot reload. Define chat commands, events, and server logic in Lua, no Java/Kotlin required using API made for humans.
Type
Mod
Modrinth Downloads
109
Modrinth ID
SYYlZZEi
Last Updated
Jul 29, 2026
Description
A Lua runtime for Fabric servers, with hot-reload. Edit scripts in config/ignis/, run /ignis reload, and changes apply instantly.
Full documentation at ignis.pyxiion.ru.
About
PxIgnis is developed in tandem with a fully Vanilla custom Roguelike server. The API reflects what the project itself needed.
Key Features
- Hot-reload Lua runtime — /ignis reload re-runs scripts in milliseconds. Commands are re-registered into the live Brigadier dispatcher without restarting the server.
- Command registration — register("cmd <name:type> [<name:type>]", handler, permission?). Built-in argument types: int, double, float, bool, text, word, player, block_pos, choice=.... Tab completion and permissions (admin.cmd) are part of the API.
- Events, with cancellation — 15+ hooks: player_block_break, player_chat, player_attack_entity, entity_hurt, entity_death, and more. Returning false cancels.
- Regions and scripted mob AI — spatial areas with enter/exit/move/death events, and API for custom mob AI.
- Coroutines, persistence, UI — mc.fetch / mc.sleep for sequential async code, player.data / mc.data / storage backends for persistent state, plus holograms, sidebars, and the chestgui library for custom containers.
And more, and more.
Examples
1. Region + async
local arena = world:createRegion(vec(-50, 64, -50), vec(50, 80, 50)) arena:on("entity_enter", function(entity) if entity:isPlayer() then mc.broadcast(entity.name .. " entered the arena") coroutine.wrap(function() local res = mc.fetch("https://api.example.com/arena/log") if not res.ok then mc.broadcast("log failed: " .. res.error, true) end end)() end end)2. Mob AI
--# nova syntax -- enabling cool custom syntax for trailing lambdas (just like Kotlin) mc.registerBehaviour("zombie_chase") \{ self, mob -> local p = mc.players[1] if p then local pos = p.pos mob:navigateTo(pos.x, pos.y, pos.z, 1.0) end } mc.on("entity_spawn", function(entity) if entity:isMob() and entity.type == "minecraft:zombie" then entity:setAI("zombie_chase") end end)3. Command with permission
register("pay <amount:int> <target:player>", function(ctx, amount, target) ctx.player.data.balance = (ctx.player.data.balance or 0) - amount target.data.balance = (target.data.balance or 0) + amount target:sendMessage("Received " .. amount .. " from " .. ctx.player.name) end, "pxrp.economy")Installation & Requirements
- Install Fabric Loader ≥0.19.2, Fabric API ≥0.141.4+1.21.11, and Fabric Language Kotlin ≥1.10.8.
- Place pxignis-*.jar into the mods/ folder of your server.
- Start the server. config/ignis/demo.lua is created on first boot.
- Edit scripts under config/ignis/, then run /ignis reload.
License
GNU Lesser General Public License v3.0
Compatibility
Mod Loaders
Game Versions
Recommended Gear
AffiliateHardware and extras that pair well with this mod.
As an Amazon Associate I earn from qualifying purchases.
Similar Mods
Numismatics' Exchanger
Adds compatibility between Create:Deco's and Create:Numismatics' coins
Cobblemon: Pokestop
Brings the Pokémon GO experience to Cobblemon by adding functional PokeStop structures that drop pokeballs!
Village and Pillage Tweaks
A collection of server-side tweaks to villagers and pillagers
Count Easy
Automatically counts items inside opened chests and barrels and displays totals in a clean overlay 상자와 통 안의 아이템...
ShootScreen
Make your game screen look like a screenshot.
Orbital Staff
This Mod adds Many New overpowered Items to the game AND MORE!