MC Toolkit

Guias / Comandos e dados

Tabelas de saque: pools, rolls e a diferença entre entries e functions

Uma tabela de saque que não dropa nada geralmente tem seus pesos ou suas condições na camada errada. Veja o que cada nível de aninhamento controla e as funções que valem a pena conhecer.

O JSON de uma tabela de saque tem quatro níveis de profundidade, e cada nível significa algo diferente. Quase todo "minha tabela não dropa nada" é uma condição anexada um nível acima de onde deveria estar.

Os quatro níveis

table
└── pools[]          how many independent draws
    └── entries[]    what can come out of this draw
        └── functions[]   modify the item that came out
  • rolls em um pool é o número de vezes que aquele pool sorteia. Um pool com rolls: 3 sorteia três vezes da mesma lista de entries.
  • weight em uma entry é relativo dentro do seu pool. Os pesos não precisam somar a nada; uma entry com peso 10 contra uma com peso 90 aparece um décimo das vezes.
  • conditions existem em todos os níveis e significam coisas diferentes. Em um pool, elas controlam todo o sorteio. Em uma entry, elas controlam aquela opção específica. Em uma function, elas controlam apenas a modificação.

Garantir um drop precisa de seu próprio pool

Pesos não podem garantir nada, porque um pool escolhe exatamente uma entry por roll. Uma tabela que deve sempre dropar um mapa mais saque aleatório precisa de dois pools:

"pools": [
  { "rolls": 1, "entries": [ { "type": "minecraft:item", "name": "minecraft:filled_map" } ] },
  { "rolls": { "min": 2, "max": 4 }, "entries": [ … weighted list … ] }
]

O pool um tem uma única entry, então sempre a produz. O pool dois sorteia 2–4 vezes da lista ponderada.

As funções que valem a pena conhecer

FunçãoFaz
set_countum número fixo ou um intervalo uniform
enchant_randomlyencantamentos aleatórios, opcionalmente de uma lista
enchant_with_levelscomo uma Mesa de Encantamentos em N níveis — inclui tesouros se solicitado
set_componentsnome personalizado, lore, qualquer componente de dados
looting_enchantbônus por nível de Saque; apenas tabelas de entidade
set_damagedurabilidade como uma fração, então 0.5 está meio gasta
furnace_smelta forma fundida quando a criatura morre em chamas

enchant_with_levels e enchant_randomly não são intercambiáveis. A primeira imita uma Mesa de Encantamentos e respeita os custos de nível; a segunda escolhe arbitrariamente e pode produzir combinações que o jogo nunca geraria.

Condições que as pessoas buscam

  • random_chance — uma probabilidade fixa
  • random_chance_with_enchanted_bonus — a chance moderna que considera Saque
  • killed_by_player — a razão pela qual seu drop raro nunca aparece de uma morte por queda
  • entity_properties — verifica o tipo, estado ou equipamento da vítima
  • match_tool — verifica a ferramenta usada, para tabelas de bloco

Testando sem reconstruir o mundo

/loot give @s loot my_pack:chests/treasure

dropa a tabela diretamente no seu inventário. /loot spawn, /loot insert <pos> e /loot replace cobrem os outros posicionamentos. Isso é muito mais rápido do que colocar baús e recarregar, e é a única maneira sensata de verificar distribuições de peso.

Construa tabelas com múltiplos pools com as funções e condições anexadas no nível certo no Construtor Avançado de Tabelas de Saque.

Criador avançado de tabelas de loot →

Mais guias

Ver todos →

Procurando mais ferramentas de Minecraft?

Um conjunto de geradores, visualizadores e conversores que rodam no navegador — tudo grátis.