Este tutorial mostra como criar um pacote de dados.
- 1 Primeiros passos
- 1.1 O que não fazer
- 2 Criação de um pacote de dados
- 2.1 Criação de um arquivo MCMETA
- 2.1.1 Editor de texto
- 2.1.2 conteúdo pack.mcmeta
- 2.1.3 "pack_format"
- 2.1.3.1 "descrição"
- 2.2 Testando seu pacote
- Solução de problemas 2.2.1
- 2.3 Nomenclatura
- 2.3.1 Caráteres legais
- 2.3.2 Namespace
- Funções 2.4
- 2.5 Tabelas de saque
- 2.6 Estruturas
- 2.7 Geração mundial
- 2.8 avanços
- 2.9 Receitas
- 2.9.1 Elaboração de moldes
- 2.9.2 Fabricação sem forma
- 2.10 tags
- 2.11 Predicados
- Dimensões do 2.12
- 2.1 Criação de um arquivo MCMETA
- 3 Utilitários
- 4
Iniciando
Os pacotes de dados podem ser usados para adicionar ou modificar funções, tabelas de loot, estruturas de mundo, avanços, receitas, tags, dimensões, predicados e geração de mundo.
O que não fazer
Existem algumas coisas que você não deve fazer ao criar um pacote de dados. Aqui está uma lista de "não fazer":
- Lance versões ou modificações do Minecraft que permitem aos jogadores jogar sem ter comprado o Minecraft da Mojang.
- Libere o código-fonte descompilado do Minecraft de qualquer forma.
Criação de um pacote de dados
Para criar um pacote de dados, comece navegando até a pasta datapacks dentro da pasta world.
Para encontrar a pasta do mundo, localize a pasta saves dentro do diretório do jogo, que é .minecraft por padrão.
- No modo singleplayer, você pode selecionar o seu mundo, clicar em "Editar" e em "Abrir pasta do mundo".
- Em um servidor, você pode navegar até seu diretório raiz (onde server.properties está localizado) e, em seguida, inserir o diretório mundial.
Uma vez na pasta datapacks, crie uma pasta com um nome de sua escolha. Será o nome do seu pacote de dados. Entre na pasta do pacote de dados.
A primeira coisa a fazer depois de entrar na pasta é criar um arquivo pack.mcmeta. Isso permite que o Minecraft identifique seu pacote de dados.
Criação de um arquivo MCMETA
: Data_pack § pack.mcmetaPara criar um arquivo MCMETA, clique com o botão direito na pasta do pacote de dados e crie um novo documento de texto. Nomeie esse arquivo "pack.mcmeta".
ImportanteCertifique-se de que a extensão do arquivo seja .mcmeta e não .txt ao renomeá-lo! Em outras palavras, remova sua extensão de arquivo antiga. Você pode ser avisado de que alterar uma extensão de nome de arquivo pode inutilizá-lo. No entanto, isso realmente indica que você renomeou o arquivo pack.mcmeta corretamente.
Se você estiver usando o Microsoft Windows e não conseguir ver as extensões dos arquivos, no Windows 10, você pode ativá-los acessando o menu Exibir do explorador de arquivos e marcando a caixa de seleção para extensões de nome de arquivo. Para Windows abaixo do Windows 10, você pode desmarcar "ocultar extensões" nas configurações de pasta.
Editor de texto
Qualquer editor de texto deve funcionar. Recomenda-se que o editor de texto escolhido suporte JSON, que é o formato usado por arquivos de extensão mcmeta e a maioria dos outros arquivos em um pacote de dados. Observe que a maioria dos editores de texto não reconhece a extensão mcmeta como JSON. Portanto, você precisa configurar os editores manualmente.
pack.mcmeta content
Abra pack.mcmeta em seu editor de texto e cole ou digite o seguinte:
{"pack": {"pack_format": 7, "description": "Pacote de dados do tutorial"}} NotaEste arquivo foi escrito em JSON! Este tutorial não entra em detalhes sobre o formato agora, mas esteja ciente de como as coisas estão dispostas. Tenha muito cuidado para não esquecer aspas, dois-pontos e colchetes ou curvas. Certifique-se de não escrever vírgulas finais. A falta de um deles pode fazer com que seu pacote de dados não funcione corretamente! Para verificar seus arquivos, você pode usar um validador JSON, como o encontrado no JSONLint.
"pack_format"
O valor de "pack_format" diz ao Minecraft para qual versão o pacote de dados foi projetado e é diferente para certas versões. A lista a seguir a quais versões cada valor está associado:
- 4 para as versões 1.13 - 1.14.4
- 5 para as versões 1.15 - 1.16.1
- 6 para as versões 1.16.2 - 1.16.5
- 7 para versões 1.17+
Nota: Conforme mais atualizações são lançadas, os valores podem ser alterados ou adicionados.
"Descrição"
O texto após a "descrição" pode ser qualquer string ou um texto JSON bruto. Ele aparecerá quando você passar o mouse sobre o pacote de dados na saída da lista / datapack e na interface do usuário do pacote de dados ao criar um mundo. Em pack.mcmeta, é possível usar o símbolo § (consulte os códigos de formatação do Minecraft) na descrição de pack.mcmeta e no nome do pacote de dados.
Testando seu pacote
Depois de criar seu pack.mcmeta, tente testá-lo no jogo! Abra o mundo ou, se você já estiver no mundo, digite / reload e, em seguida, digite / datapack list. Deve listar duas entradas. Um deve ser [vanilla] (embutido), o segundo deve ser nomeado como [arquivo / (nome do seu pacote de dados) (mundo)], onde fica o nome da pasta do seu pacote de dados (nome do seu pacote de dados). Quando você passa o mouse sobre a entrada do seu pacote de dados, você deve ver a descrição do seu pacote de dados como você escreveu na descrição do seu pack.mcmeta.
Quando sua mochila aparecer, você estará pronto para seguir em frente.
Se você não encontrar seu pacote na lista, verifique se o arquivo pack.mcmeta está correto e salvo. Procure por chaves ausentes {}, vírgulas, dois pontos:, aspas "" ou colchetes. Lembre-se de que para cada chave aberta, citação ou colchete, você deve ter um colchete de fechamento, citação ou colchete. Se você ainda não consegue ver seu pacote, certifique-se de que está na pasta certa.
Nomeando
: Localização do recursoCrie uma pasta chamada data em sua pasta de pacote de dados, onde você colocou o arquivo pack.mcmeta. Nesta pasta de dados você deve criar uma ou mais pastas que irão atuar como seus namespaces.
As entradas em pacotes de dados têm localizações de recursos na forma de namespace: path. O arquivo correspondente estaria localizado em data / namespace / (data_type) / path. (Sufixo). Observe que os caracteres / no caminho serão traduzidos em separadores de diretório.
Alguns exemplos:
- uma etiqueta de item de ID dummy: foo_proof / bar estaria localizada em data / dummy / tags / item / foo_proof / bar.json
- uma função de ID foo: handler / bar_call estaria localizada em data / foo / functions / handler / bar_call.mcfunction
Personagens legais
Namespaces, caminhos e outros nomes de pastas e arquivos no pacote de dados devem conter apenas os seguintes símbolos:
- Números 0123456789
- abcdefghijklmnopqrstuvwxyz Letras minúsculas
- _ Sublinhado
- - Hífen / menos
- / Barra para frente / Separador de diretório (não pode ser usado no namespace)
- . Período
A convenção de nomenclatura preferida é lower_case_with_underscores, chamada de lower snake case.
Namespace
A maioria dos objetos no jogo usa locais de recursos com namespace para evitar possíveis conflitos de conteúdo ou substituições não intencionais.
Por exemplo, se dois pacotes de dados adicionarem dois novos mecanismos de minigame ao Minecraft e ambos tiverem uma função chamada start. Sem os namespaces, essas duas funções entrariam em conflito e os minijogos seriam interrompidos. Mas se eles tiverem namespaces diferentes de minigame_one e minigame_two, as funções se tornarão minigame_one: start e minigame_two: start, que não entram em conflito.
Na maioria das vezes, quando o Minecraft requer um ID, como para / função, você deve fornecer o namespace além do caminho. Se você não especificar o namespace, ele retornará ao minecraft.
Certifique-se de sempre usar seu próprio namespace para qualquer coisa nova que você adicionar, e apenas use outros namespaces se você estiver substituindo explicitamente alguma outra coisa ou, no caso de tags, acrescentando a outra coisa.
Por exemplo, o Minecraft usa o namespace minecraft, o que significa que esse namespace só deve ser usado quando o pacote de dados precisa sobrescrever os dados existentes do Minecraft ou adicionar suas entradas às tags vanilla.
Funções
Artigo principal: Função (Java Edition): Tutoriais / blocos de comando e funçõesFunções são um conjunto de comandos que podem ser executados em ordem.
Para adicionar funções, primeiro crie uma pasta chamada functions dentro da pasta do namespace. Em seguida, crie um arquivo chamado (function_name) .mcfunction nesta pasta ou em qualquer uma de suas subpastas. Este será o seu arquivo de função. Sua função será nomeada no jogo como (namespace) :( name) ou (namespace) :( subfolder1) / (subfolder2) /.../ (name) quando o arquivo de função estiver localizado em uma subpasta.
Mesas de saque
Artigo principal: Tabela de saqueAs tabelas de loot dirão ao Minecraft o que deve ser descartado quando um mob morre ou o que deve ser gerado dentro de contêineres, como baús, quando abertos pela primeira vez, eles também podem ser chamados pelo comando / loot.
Para adicionar tabelas de saque, primeiro crie uma pasta chamada loot_tables dentro da pasta do namespace. Em seguida, crie um arquivo chamado (loot_table_name) .json nesta pasta ou em qualquer uma de suas subpastas. Este será o seu arquivo de tabela de loot. Sua tabela de loot será nomeada no jogo como (namespace) :( name) ou (namespace) :( subfolder1) / (subfolder2) /.../ (name) se o arquivo estiver localizado em uma subpasta. Todas as tabelas de loot vanilla estão no namespace minecraft.
Aqui está um exemplo de mesa de pilhagem de uma vaca, ela pode ser usada como referência:
1 {2 "tipo": "minecraft: entidade", 3 "piscinas": [4 {5 "rolos": 1, 6 "entradas": [7 {8 "tipo": "minecraft: item", 9 "funções ": [10 {11" function ":" minecraft: set_count ", 12" count ": {13" min ": 0, 14" max ": 2, 15" type ":" minecraft: uniform "16} 17} , 18 {19 "function": "minecraft: looting_enchant", 20 "count": {21 "min": 0, 22 "max": 1 23} 24} 25], 26 "name": "minecraft: leather" 27} 28] 29}, 30 {31 "rolos": 1, 32 "entradas": [33 {34 "tipo": "minecraft: item", 35 "funções": [36 {37 "função": "minecraft : set_count ", 38" count ": {39" min ": 1, 40" max ": 3, 41" type ":" minecraft: uniforme "42} 43}, 44 {45" function ":" minecraft: furnace_smelt ", 46" conditions ": [47 {48" condition ":" minecraft: entity_properties ", 49" predicate ": {50" flags ": {51" is_on_fire ": true 52} 53}, 54" entity ":" este "55} 56] 57}, 58 {59" function ":" minecraft: looting_enchant ", 60" count ": {61" min ": 0, 62" max ": 1 63} 64} 65], 66" nome ":" minecraft: carne "67} 68] 69} 70] 71}Para saber o que cada tag significa, consulte as tabelas de loot. Há também uma lista de tabelas de loot de baunilha nessa página.
Estruturas
As estruturas podem ser usadas com blocos de estrutura e blocos de quebra-cabeça e / ou podem sobrescrever a aparência de certas estruturas básicas no Minecraft. Ele é salvo no formato NBT. Você pode criar um arquivo NBT usando um bloco de estrutura ou exportando uma compilação usando um programa de terceiros como o MCEdit.
Para adicionar estruturas a um pacote de dados, primeiro crie uma pasta chamada estruturas dentro da pasta do namespace. Em seguida, coloque seu arquivo de estrutura nesta pasta ou em qualquer uma de suas subpastas. Sua estrutura será nomeada no jogo como (namespace) :( nome) ou (namespace) :( subpasta1) / (subpasta2) /.../ (nome) se o arquivo estiver localizado em uma subpasta.
Geração mundial
Artigo principal: geração de mundo personalizadoGeração de mundo personalizado permite que os pacotes de dados mudem a forma como o mundo é gerado. Isso é particularmente útil em conjunto com mundos personalizados.
Para alterar a geração do mundo, primeiro crie uma pasta chamada worldgen dentro da pasta do namespace. Em seguida, coloque o arquivo noise_settings nesta pasta ou em qualquer uma de suas subpastas. Suas alterações serão nomeadas no jogo como (namespace) :( nome) ou (namespace) :( subpasta1) / (subpasta2) /.../ (nome) se o arquivo estiver localizado em uma subpasta.
Avanços
Artigo principal: AvançosOs avanços podem ser concluídos pelos jogadores e dar várias recompensas.
Para adicionar avanços, primeiro crie uma pasta chamada avanços dentro da pasta do namespace. Em seguida, crie um arquivo chamado (advancement_name) .json (Você não pode colocar espaços no nome do arquivo. Use letras minúsculas no nome do arquivo). nesta pasta ou em qualquer uma de suas subpastas. Este será o seu arquivo de avanço. Seu avanço será nomeado no jogo como (namespace) :( name) ou (namespace) :( subfolder1) / (subfolder2) /.../ (name) se o arquivo estiver localizado em uma subpasta.
Receitas
Artigo principal: ReceitaAs receitas são usadas para permitir que os jogadores criem itens.
Para adicionar receitas, primeiro crie uma pasta chamada receitas dentro da pasta do namespace. Em seguida, crie um arquivo chamado (recipe_name) .json nesta pasta ou em qualquer uma de suas subpastas. Este será o seu arquivo de receita. Sua receita será nomeada no jogo como (namespace) :( name) ou (namespace) :( subfolder1) / (subfolder2) /.../ (name) se o arquivo estiver localizado em uma subpasta.
Artesanato moldado
: Receita § minecraft: crafting_shapedO primeiro tipo comum de elaboração é a confecção de formas.
{"tipo": "minecraft: crafting_shaped", "padrão": ["123", "231", "312"], "chave": {"1": {"item": "Localização do recurso do item" }, "2": {"item": "Local do recurso do item"}, "3": {"item": "Local do recurso do item"}}, "resultado": {"item": "Recurso localização do item "," contagem ":" Número de itens produzidos "}}Este é um exemplo aproximado de receita de modelagem de artesanato, conforme especificado pelo tipo crafting_shaped. padrão é uma lista usada para especificar a forma da receita de artesanato. Ele contém no máximo 3 cordas, cada corda representando uma linha na grade de crafting. Essas sequências contêm, no máximo, 3 caracteres únicos um ao lado do outro, cada caractere representando um ponto na grade de criação. Você não precisa de todas as 3 strings, nem precisa de 3 caracteres em cada string. Mas cada string deve conter a mesma quantidade de caracteres. Você pode usar espaços para indicar pontos vazios.
key é um composto usado para especificar qual item deve ser usado para qual caractere no padrão. Isso pode ser especificado usando o item seguido por um ID do item ou marca seguida por uma marca do pacote de dados do item.
O composto do resultado fala por si mesmo, ele especificou qual deveria ser o item resultante. a contagem é usada para especificar quantos itens do item devem ser fornecidos.
Esta é a receita original para um pistão (pode ser usada como referência):
{"type": "crafting_shaped", "pattern": ["TTT", "# X #", "# R #"], "key": {"R": {"item": "minecraft: redstone"} , "#": {"item": "minecraft: cobblestone"}, "T": {"tag": "minecraft: planks"}, "X": {"item": "minecraft: iron_ingot"}}, "resultado": {"item": "minecraft: pistão"}}Fabricação sem forma
: Receita § minecraft: crafting_shapelessExiste outro tipo comum de receita, uma receita sem forma.
{"tipo": "crafting_shapeless", "ingredientes": [{"item": " " }, { "item": " " }, [ { "item": " " }, { "item": " "}]]," resultado ": {" item ":" "," contar ": 5}}Conforme especificado pelo tipo crafting_shapeless, esta é uma receita sem um padrão. Os ingredientes podem ser colocados na grade de artesanato em qualquer formato ou forma. No exemplo, há uma lista dentro do composto dos ingredientes. Isso significa que qualquer um dos itens desta lista pode ser usado.
Esta é a receita original para Fire Charge (pode ser usada como referência):
{"tipo": "crafting_shapeless", "ingredientes": [{"item": "minecraft: pólvora"}, {"item": "minecraft: blaze_powder"}, [{"item": "minecraft: carvão"} , {"item": "minecraft: charcoal"}]], "result": {"item": "minecraft: fire_charge", "count": 3}}Também é possível criar novas receitas de fundição.
{"tipo": "fundição", "ingrediente": {"item": " "}," resultado ":" "," experiência ": 0.35," tempo de cozimento ": 200}Este é um exemplo aproximado de uma receita de fundição. "ingrediente" é usado para especificar o item que você vai fundir. "result" irá especificar o resultado. Em "experiência", você pode escolher a quantidade de XP ganha para a fundição, e em "tempo de cozimento" a quantidade de tempo que o item levará para fundir, que neste caso é de 10 segundos (200 ticks = 10 segundos )
Esta é a receita de fundição padrão para um minério de diamante:
{"tipo": "fundição", "ingrediente": {"item": "minecraft: diamond_ore"}, "resultado": "minecraft: diamante", "experiência": 1, "tempo de cozimento": 200}Identificações
Artigo principal: tagAs tags são usadas para agrupar blocos, itens, entidades ou funções. Além disso, a tag de função minecraft: tick é usada para executar funções a cada tick e a tag de função minecraft: load é usada para executar funções toda vez que o mundo é (re) carregado.
Para adicionar tags, primeiro crie uma pasta chamada tags dentro da pasta do namespace. Dentro desta pasta, crie pastas chamadas blocos, itens e funções. Em seguida, crie um arquivo chamado (tag_name) .json em uma dessas pastas ou em qualquer uma de suas subpastas. Este será o seu arquivo de tag. Sua tag será nomeada no jogo como (namespace) :( name) ou (namespace) :( subfolder1) / (subfolder2) /.../ (name) se o arquivo estiver localizado em uma subpasta.
Predicados
Artigo principal: PredicadoPredicados são arquivos JSON técnicos que representam as condições para tabelas de loot, / execute if predicate comando ou argumento do seletor de destino do predicado.
Para adicionar predicados, primeiro crie uma pasta chamada predicados dentro da pasta do namespace. Em seguida, crie um arquivo chamado (predicate_name) .json (Você não pode colocar espaços no nome do arquivo. Use letras minúsculas no nome do arquivo). nesta pasta ou em qualquer uma de suas subpastas. Este será o seu arquivo de predicado. Seu predicado será nomeado no jogo como (namespace) :( name) ou (namespace) :( subfolder1) / (subfolder2) /.../ (name) se o arquivo estiver localizado em uma subpasta.
dimensões
Artigo principal: Dimensão personalizadaDimensões são arquivos JSON usados para especificar todas as dimensões que um mundo contém.
Para adicionar dimensões, primeiro crie uma pasta chamada dimensão dentro da pasta do namespace. Em seguida, crie um arquivo chamado (dimension_name) .json (Você não pode colocar espaços no nome do arquivo. Use letras minúsculas no nome do arquivo). nesta pasta. Este será o seu arquivo de dimensão.
As dimensões personalizadas podem ser acessadas no jogo usando / execute em (namespace) :( dimension_name)
Utilidades
Esta lista está incompleta; Você pode ajudar expandindo-o.Muitos utilitários foram criados para facilitar a programação em funções mc. Esta é uma lista de referência para utilitários como transpiladores ou plug-ins de realce de sintaxe. Tenha cuidado ao baixar o software para o seu PC, pois os criadores são responsáveis pelo conteúdo fornecido.
Compiladores / Transpiladores e FrameworksNome | Hosting | Descrição | Ligação |
---|---|---|---|
Minecraft Script | GitHub | Uma linguagem baseada em JavaScript que pode ser compilada em um pacote de dados funcional usando um compilador Node.js. | https://mcscript.stevertus.com/ |
TMS Transpiler | GitHub | Uma ferramenta python que pode reunir código mcfunction recuado em arquivos válidos. Ótimo se você não quer aprender um novo idioma. | https://github.com/davidkowalk/advanced_minecraft_scripting |
ObjD | pub | Uma estrutura de dardo para criar pacotes de dados para minimizar o trabalho repetitivo a ser feito. | https://objd.stevertus.com/ |
Outra opção é usar uma interface visual para criar a estrutura ou o conteúdo do seu projeto.
Geradores VisuaisNome | Hosting | Descrição | Ligação |
---|---|---|---|
Datapack Creator | Planeta Minecraft | Um IDE para criar pacotes de dados com algumas ferramentas úteis | https://www.planetminecraft.com/mod/datapack-creator-ide/ |
NBTData Pack Generator | nbt-data.com | Um gerador online para uma estrutura de pacote de dados brutos sem quaisquer funções. | https://www.nbt-data.com/datapack-generator |
Gerador de Receitas | thedestruc7i0n.ca | Um gerador online para gerar os arquivos JSON necessários para a elaboração. | https://crafting.thedestruc7i0n.ca/ |
Gerador de receitas de ferramentas do Minecraft | minecraft.tools | Um gerador online para gerar os arquivos JSON necessários para a elaboração. | https://minecraft.tools/en/custom-crafting.php |
Gerador de pacote de dados do Misode | GitHub | JSON Generator para Minecraft Data Packs | https://misode.github.io/ |
MCStacker para MC 1.16 | mcstacker.net/ | Uma coleção de geradores de comando. | https://mcstacker.net/ |
Origin Creator | GitHub | Uma ferramenta da web com todos os recursos para a criação de pacotes de dados. | https://xmgzx.github.io/apps/origin-creator/ |
MCreator | mcreator.net | Uma ferramenta gráfica fácil de usar e repleta de recursos para a criação de pacotes de dados. | https://mcreator.net/ |
Se você usar um IDE, convém destacar a sintaxe da sintaxe mcfunction. Dependendo do seu IDE ou do seu editor de texto, etapas extras podem ser necessárias para instalá-lo em seu ambiente.
Realce de sintaxeIDE / Editor | Descrição | Ligação |
---|---|---|
átomo | Destaque de sintaxe e snippets | https://atom.io/packages/mcfunction |
átomo | Destaque de sintaxe e preenchimento automático. | https://atom.io/packages/mcfunction-novum |
Código do Visual Studio | Uma extensão para trazer suporte para um servidor de linguagem minecraft para Visual Studio Code. | https://github.com/Levertion/vscode-mcfunction |
Código do Visual Studio | Gramáticas de linguagem e destaque de sintaxe para arquivos mcfunction. | https://github.com/Arcensoth/language-mcfunction |
Notepad + + | Realce de sintaxe. | https://pastebin.com/hbMiJ3YV |
- Pacotes de dados
- Pacotes de recursos
- Tutoriais / Instalando um pacote de dados
Pacotes de Dados | |
---|---|
componentes |
|
Tutoriais |
|
Tutoriais | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Introdutório |
| ||||||||||||
Geral |
| ||||||||||||
Desafios |
| ||||||||||||
Construções |
| ||||||||||||
Sustentável |
| ||||||||||||
Encantador e fundido |
| ||||||||||||
Blockbreaking |
| ||||||||||||
Mecanismos |
| ||||||||||||
servidores |
| ||||||||||||
Técnico |
| ||||||||||||
desatualizado |
|