Community listing page, reviews may not be monitored by the author.
LootInj
No reviews yet
Simple data-driven loot table modification library
Community voices
Reviews
No reviews yet. Be the first to review this project!
Get it on
Available Platforms
Compatibility
Supported Environments
Runs entirely on the server. Also works in singleplayer.
About
Project Details
For authors
Embed Badge
If you're the author of this project, you can embed a live badge anywhere that supports HTML or Markdown. It updates automatically whenever ratings change.
Use HTML for any page that supports it, or Markdown for README files and Markdown-based descriptions.
Identifiers
Platform IDs
About
Description
⚠️ LootInj seems to have a crash on dedicated servers in 26.3+ and may require breaking changes to fix. I do not recommend using that version of LootInj in production until it is resolved.
LootInj is a simple data-driven loot modification library, primarily for mods. It essentially acts as a JSON frontend to the Fabric API LootTableEvents.MODIFY event.
Features
- Can add pools & modifiers, and modify pools
- Supports data generation via
FabricDynamicRegistryProvider(26.3+) orFabricCodecDataProvider(26.1-26.2)- Datagen matches the vanilla/FAPI
LootTable.BuilderandLootPool.Builderapi
- Can access other loot registries such as
minecraft:predicate,minecraft:item_modifier,minecraft:context_int_provider, etc. (26.3+) - Can be reloaded without relogging using
/reload
- Datagen matches the vanilla/FAPI
Format
In your mod data/datapack, loot modifications are JSON files at data/<namespace>/lootinj/loot_modification/<path>.json. The exact namespace and path do not matter, they should just be unique.
The format generally follows the vanilla loot table format:
26.3+ Format
{
// All fields are optional except `targets`
// A loot table id or list of ids to modify
"targets": [
"minecraft:blocks/dirt"
],
// A list of loot pools to add
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "minecraft:diamond"
}
]
}
],
// A loot function or list of functions to add to the whole table
"modifier": {
"count": 2,
"function": "minecraft:set_count"
},
// Modify all existing pools
// Requires some extra processing so only include if you need to modify pools
"modify_pools": {
// Again, all fields are optional
// A list of entries to add to the pool
"entries": [
{
"type": "minecraft:item",
"name": "minecraft:gold_ingot"
}
],
// A loot condition or list of conditions to add to the whole pool
"condition": {
"type": "minecraft:survives_explosion"
},
// A loot function or list of functions to add to the whole pool
"modifier": {
"count": 3,
"function": "minecraft:set_count"
}
}
}
26.1-26.2 Format
{
// All fields are optional except `targets`
// A loot table id or list of ids to modify
"targets": [
"minecraft:blocks/dirt"
],
// A list of loot pools to add
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "minecraft:diamond"
}
]
}
],
// A list of loot functions to add to the whole table
"functions": [
{
"count": 2,
"function": "minecraft:set_count"
}
],
// Modify all existing pools
// Requires some extra processing so only include if you need to modify pools
"modify_pools": {
// Again, all fields are optional
// A list of entries to add to the pool
"entries": [
{
"type": "minecraft:item",
"name": "minecraft:gold_ingot"
}
],
// A list of loot condition to add to the whole pool
"conditions": [
{
"type": "minecraft:survives_explosion"
}
],
// A list of loot functions to add to the whole pool
"functions": [
{
"count": 3,
"function": "minecraft:set_count"
}
]
}
}
Comparison
I made this library because Datapatched did not quite fit my needs:
- I usually like to datagen as much as possible, and Datapatched does not work with data generation
- I usually try to update my mods within a few days of a minecraft update, and Datapatched sometimes takes longer to update
- I primarily mod for Fabric 26.1+ so this library will only support those versions
If you are an end user who doesn't care about these and/or is on Neoforge, Datapatched will probably work better for you as it is better documented and supports more versions & loaders.
Developer Installation
For use in a mod, install and JiJ it from the Modrinth maven.
# gradle.properties
lootinj_version=1.0.2+mc26.3
// build.gradle
repositories {
exclusiveContent {
forRepository {
maven {
name = "Modrinth"
url = "https://api.modrinth.com/maven"
}
}
filter {
includeGroup "maven.modrinth"
}
}
}
dependencies {
// ...
implementation include("maven.modrinth:lootinj:${project.lootinj_version}")
}
Screenshots
Gallery
Versions
Files
Relations
Project Relations
More like this
Similar Mods
Suggestions use data such as tags, dependencies, dependents, descriptions, titles, and more to rank how much they overlap with this mod.
On ModDex
Community snapshot
By the numbers
Statistics
Get it on
Available Platforms
On ModDex
Community snapshot
By the numbers