
Lazuli
A personal library mod aiming to make modding less tedious.
About this Mod
Lazuli
Lazuli is a personal library mod made to make modding a little less tedious.
This library is the culmination of all the foundational and API code that I
wrote for my mods. I started to dislike having to rewrite it all every time, so
I decided that it's time to make Yet Another Library Mod.
You're welcome modpackers, now you'll have one extra mod to pad your mod counts
with to make your modpacks look larger than they are :3
"Features"
Lazuli ultimately boils down to tons of helper functions, and there are quite a lot of
them at that. Here are the "highlights" or "interesting" things (I guess).
- Blocks
- Generic "block with entity" helpers (
AbstractBlockWithEntity) - Energy-capable BE helpers (
IEnergyBE,AbstractEnergyBE,AbstractCapacitorBE,AbstractGeneratorBE) - Inventory-capable BE helpers (
IInventoryBE,AbstractInventoryBE) - Fluid-capable BE helpers (
IFluidBE,AbstractSingleTankBE) - "Zoned" block entities, ripped from Minefactorial (
IZonedBE)
- Generic "block with entity" helpers (
- Client Things
- Particle helpers
- A 2D particle engine for GUIs or wherever else you want to use them (
IParticleEngine2D,ScreenParticleEngine2D) - Screen Helpers
- Crafting
- Ingredients/outputs for in-world blocks, entities, item entities, and fluids
- Collections (a more flexible
WeightedRandomListimplementation,HistoryList) - Colours (
UnpackedColour,ColourPalette) - Energy (
LazuliEnergyStorage,ProtectiveEnergyStorage) - Fluids
- Inventories (
ContainerUtils,RoundRobinInventory,GhostStackHandler) - Items (
GhostItemStack) - Mathematics (
CubicBezier,QuadraticBezier) - Menus (
AbstractBlockEntityContainer,GhostSlot,SlotOutputOnly) - Misc helpers (
TickScheduler) - World helpers (
AABBHelpers,FakePlayerHelpers,Raycasting)
Usage
Lazuli is extensively documented using Javadocs. I also publish source and
Javadoc JARs for you to include via Gradle.
To add Lazuli to your project, just add it as a modImplementation in Gradle:
// Applies to all Gradle plugins
repositories {
// Modrinth maven is the easiest and most reliable place for me to publish at the moment.
// I publish sources and JavaDocs here too.
exclusiveContent {
forRepository {
maven("https://api.modrinth.com/maven")
}
filter {
includeGroup("maven.modrinth")
}
}
}
dependencies {
// Loom and Architectury Loom
modImplementation("maven.modrinth:lazuli:VERSION")
}
Available Versions
How to Install Lazuli on Your Server
Order Server
Order a Minecraft Java server with at least 3 GB RAM (4 GB recommended).
Set neoforge Loader
In the panel under "Egg", select the neoforge loader and matching Minecraft version (1.21.1).
Install Mod
Open the mod browser in the dashboard and search for "Lazuli". Click "Install" – done! Alternatively, upload the .jar via SFTP to the /mods folder.
Compatibility
Mod Loaders
Minecraft Versions
1.21.1, 1.21
Server-side
✓ RequiredRecommended RAM
4 GB(min. 3 GB)Frequently Asked Questions
Lazuli server crashes on startup – what to do?
Most common cause: wrong neoforge version or insufficient RAM. Check the server log (latest.log) for "OutOfMemoryError" or "Mixin" errors. With Mado Hosting: ensure at least 3 GB RAM is allocated and the loader matches the mod version (1.21.1). You can switch loaders with one click in the panel.
Is Lazuli compatible with neoforge?
Lazuli officially supports neoforge for Minecraft 1.21.1, 1.21. The Mado dashboard automatically detects incompatible loader combinations.
Server lagging with Lazuli – how to optimize performance?
Recommended RAM: 4 GB (per 8 players). Use /spark profiler to check if Lazuli consumes the most tick time. Common fixes: reduce server view-distance to 8-10, install "performant" or "starlight" as supplementary mods on Forge. With Mado Hosting, your server runs on NVMe SSDs with dedicated CPU cores for minimal latency.
Similar Mods
Rent Modded Server
Install Lazuli with just one click on your server.