Skip to content
AtomiCoffe

Quick rating

Community listing page, reviews may not be monitored by the author.

AtomiCoffe

By nexusrealms

No reviews yet

Bring your server to life with Lua. Atomicoffe is a Fabric scripting mod that lets you add custom commands, events, recipes, loot tables, HUDs, and more all in hot-reloadable Lua scripts.

Mod Loaders
Minecraft

About

Description

Atomicoffe

Atomicoffe is a Fabric mod that embeds a full LuaJ scripting engine into your Minecraft server and client. Write scripts once, reload them live with /atomicoffe reload no restarts, no recompiling, no Java required.


What can you do with it?

  • Custom commands register Brigadier commands directly from Lua
  • Event hooks react to player join/leave/death, block interactions, entity kills, chat, ticks, and more
  • Recipes add or modify shaped and shapeless crafting recipes at runtime
  • Loot tables inject drops into any vanilla loot table
  • Scoreboard create objectives and read/write scores from scripts
  • Per-player persistent data save and load arbitrary key/value data per player UUID
  • Scheduling run callbacks after N ticks or on a repeating interval
  • Networking send custom packets between server scripts and client scripts
  • Tags add items/blocks to vanilla tags at startup (affects recipes, mechanics, etc.)
  • Mob effects apply, remove, and query potion effects from Lua
  • Client HUD draw text and rectangles on the player's screen
  • Client keybinds register keybinds that trigger Lua callbacks or send packets to the server

Script Phases

Folder When it runs
startup_scripts/ Before the server starts for tag/registry changes
server_scripts/ When the server starts and after every /reload
client_scripts/ On the client HUD, keybinds, client-side events

All scripts live in your instance's config/atomicoffe/ folder and are hot-reloadable.


Quick Example

-- config/atomicoffe/server_scripts/welcome.lua

onEvent("player.join", function(e)
  e.player.tell("§aWelcome, §e" .. e.player.name .. "§a!")
  e.player.give("minecraft:bread", 8)
end)

command.register("ping", function(ctx)
  ctx.reply("Pong! TPS: " .. server.getTps())
end)

schedule.every(6000, function()  -- every 5 minutes
  server.broadcast("§b[Info] §fNeed help? Check our Discord!")
end)