Tablas de botín: pools, rolls y la diferencia entre entries y functions
Una tabla de botín que no suelta nada suele tener sus pesos o sus condiciones en la capa equivocada. Aquí te explicamos qué controla cada nivel de anidamiento y las funciones que vale la pena conocer.
El JSON de las tablas de botín tiene cuatro niveles de profundidad y cada nivel significa algo diferente. Casi todos los casos de "mi tabla no suelta nada" se deben a una condición adjunta un nivel más allá de donde debería ir.
Los cuatro niveles
table
└── pools[] how many independent draws
└── entries[] what can come out of this draw
└── functions[] modify the item that came out
rollsen un pool indica cuántas veces ese pool realiza una extracción. Un pool conrolls: 3extrae tres veces de la misma lista de entradas (entries).weighten una entrada es relativo dentro de su pool. Los pesos no necesitan sumar un total específico; una entrada con peso 10 frente a una con peso 90 aparecerá una décima parte de las veces.- Las
conditionsexisten en cada nivel y significan cosas diferentes. En un pool, controlan toda la extracción. En una entrada, controlan esa opción específica. En una función, controlan solo la modificación.
Garantizar un objeto requiere su propio pool
Los pesos no pueden garantizar nada, porque un pool elige exactamente una entrada por cada tirada (roll). Una tabla que siempre debe soltar un Mapa más botín aleatorio necesita dos pools:
"pools": [
{ "rolls": 1, "entries": [ { "type": "minecraft:item", "name": "minecraft:filled_map" } ] },
{ "rolls": { "min": 2, "max": 4 }, "entries": [ … weighted list … ] }
]
El pool uno tiene una sola entrada, por lo que siempre la produce. El pool dos realiza de 2 a 4 tiradas de la lista ponderada.
Las funciones que vale la pena conocer
| Función | Hace |
|---|---|
set_count | un número fijo o un rango uniform |
enchant_randomly | encantamientos aleatorios, opcionalmente de una lista |
enchant_with_levels | como una Mesa de encantamientos a N niveles — incluye tesoros si se solicita |
set_components | nombre personalizado, lore, cualquier componente de datos |
looting_enchant | bonificación por nivel de Botín; solo tablas de entidades |
set_damage | durabilidad como una fracción, por lo que 0.5 está a medio uso |
furnace_smelt | la forma fundida cuando la criatura muere en Fuego |
enchant_with_levels y enchant_randomly no son intercambiables. La primera imita una Mesa de encantamientos y respeta los costes de nivel; la segunda elige arbitrariamente y puede producir combinaciones que el juego nunca generaría.
Condiciones que la gente suele buscar
random_chance— una probabilidad fijarandom_chance_with_enchanted_bonus— la probabilidad moderna que tiene en cuenta Botínkilled_by_player— la razón por la que tu objeto raro nunca aparece tras una muerte por caídaentity_properties— comprueba el tipo, estado o equipamiento de la víctimamatch_tool— comprueba la herramienta utilizada, para tablas de bloques
Probar sin reconstruir el mundo
/loot give @s loot my_pack:chests/treasure
suelta la tabla directamente en tu inventario. /loot spawn, /loot insert <pos> y /loot replace cubren las otras ubicaciones. Esto es mucho más rápido que colocar cofres y recargar, y es la única forma sensata de comprobar las distribuciones de peso.
Crea tablas con múltiples pools con las funciones y condiciones adjuntas en el nivel correcto en el Advanced Loot Table Builder.