介绍
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
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.4+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}")
}
常见问题
LootInj 支持哪些 Minecraft 版本?
LootInj 支持 Minecraft Java 版 26.1–26.3,共 5 个版本,可用的加载器:Fabric。下载时注意选择和你游戏版本一致的文件。
LootInj 怎么安装?
先用 PCL2 或 HMCL 启动器安装对应版本的 Fabric,再把下载的 .jar 文件放进游戏目录的 mods 文件夹,重新启动游戏即可。开启了版本隔离的,mods 文件夹在 versions/版本名 下面。运行环境:仅服务端。
ThePotatoArchivist 的其他作品
查看全部 →Tool Trims Mod
JoeFly's Tool Trims 的 Fabric 版
Kitchen Projectiles
让农夫乐事的刀具可以投掷
OmniCrossbow
用弩射出各种物品,还附带大量自定义效果!
Gravestones Fix
修复 Geometrically 制作的 Gravestones,使其不会被水流或爆炸摧毁,并兼容 Trinkets。
评论
登录后评论和评分