Sans règle d'apparition, une créature n'apparaît qu'avec son œuf d'apparition ou /summon. Une règle d'apparition dit au jeu où et quand elle peut apparaître toute seule : dans quels biomes, à quel point il doit faire sombre, combien à la fois et à quelle fréquence par rapport aux autres créatures.
Cette page utilise le golem de rubis du guide Le fichier d'entité. Pour la créature complète, commence par Ta première créature personnalisée.
Les fichiers
BP/
entities/
ruby_golem.json
spawn_rules/
ruby_golem.jsonLe nom du fichier n'a pas d'importance. Ce qui relie la règle à la créature, c'est l'identifier à l'intérieur.
La créature doit pouvoir apparaître
Les règles d'apparition ne fonctionnent que si le fichier de comportement de la créature a "is_spawnable": true dans sa description.
Une première règle d'apparition
Les golems de rubis apparaissent dans les déserts et les badlands, en petits groupes, sur du sable ou du sable rouge, en plein jour :
{
"format_version": "1.8.0",
"minecraft:spawn_rules": {
"description": {
"identifier": "wiki:ruby_golem",
"population_control": "animal"
},
"conditions": [
{
"minecraft:spawns_on_surface": {},
"minecraft:spawns_on_block_filter": ["minecraft:sand", "minecraft:red_sand"],
"minecraft:brightness_filter": {
"min": 7,
"max": 15,
"adjust_for_weather": false
},
"minecraft:weight": { "default": 6 },
"minecraft:herd": { "min_size": 1, "max_size": 2 },
"minecraft:biome_filter": {
"any_of": [
{ "test": "has_biome_tag", "value": "desert" },
{ "test": "has_biome_tag", "value": "mesa" }
]
}
}
]
}
}Presque toutes les règles d'apparition vanilla utilisent encore "format_version": "1.8.0", et tu peux faire pareil.
La description
| Champ | Ce qu'il fait |
|---|---|
identifier | L'ID de la créature. Il doit correspondre exactement au fichier d'entité. |
population_control | Le groupe de population dans lequel la créature compte. Chaque groupe a sa propre limite, pour que ta créature ne puisse pas remplir le monde. |
Les groupes que tu utiliseras le plus :
| Groupe | Utilisé par |
|---|---|
animal | Les animaux terrestres comme les vaches, les cochons et les moutons |
water_animal | Les poissons, les calmars, les dauphins et les axolotls |
monster | Les créatures hostiles comme les zombies et les squelettes |
ambient | Les petites créatures d'ambiance, comme les chauves-souris |
Le jeu vanilla a aussi quelques groupes spéciaux, comme cat et pillager, pour des créatures uniques.
Conditions
conditions est une liste. Chaque entrée est un ensemble complet de règles. Si le jeu trouve un endroit qui correspond à n'importe laquelle des entrées, la créature peut y apparaître.
À l'intérieur d'une entrée, tous les composants doivent passer. La règle ci-dessus veut donc dire « en surface ET sur du sable ET en plein jour ET dans un biome désert ou badlands ».
Tu veux ta créature dans deux endroits très différents, comme les grottes la nuit et les plages le jour ? Ajoute une deuxième entrée à la liste au lieu de tout entasser dans une seule.
Où : surface, sous terre ou eau
Il en faut au moins un, sinon la créature n'a nulle part où apparaître. Ce sont des objets vides : leur simple présence les active.
| Composant | Fait apparaître la créature |
|---|---|
minecraft:spawns_on_surface | Au sol, à ciel ouvert |
minecraft:spawns_underground | Dans les grottes, avec des blocs au-dessus |
minecraft:spawns_underwater | Dans l'eau |
minecraft:spawns_lava | Dans la lave, comme les arpenteurs |
Tu peux les combiner. Les axolotls vanilla utilisent à la fois spawns_underground et spawns_underwater pour apparaître dans l'eau des grottes.
Sur quels blocs
"minecraft:spawns_on_block_filter": ["minecraft:sand", "minecraft:red_sand"],
"minecraft:spawns_on_block_prevented_filter": ["minecraft:cactus"]spawns_on_block_filter: le bloc sous la créature doit être l'un de ceux-ci. Un seul bloc peut s'écrire comme une simple chaîne.spawns_on_block_prevented_filter: la créature ne peut jamais apparaître sur ces blocs.
Dans quels biomes
minecraft:biome_filter est un filtre normal, en général avec le test has_biome_tag. Chaque biome porte quelques tags, comme desert, forest, ocean, frozen, overworld ou nether. Tester un tag vaut mieux que nommer les biomes un par un, car ça attrape aussi les variantes de biomes et les biomes d'autres add-ons.
"minecraft:biome_filter": [
{ "test": "has_biome_tag", "value": "overworld" },
{ "test": "has_biome_tag", "operator": "not", "value": "ocean" }
]Une simple liste fonctionne comme all_of : ici, « dans la Surface, mais pas dans un océan ». Regarde quels tags a chaque biome dans Biomes vanilla, et comment les biomes reçoivent leurs tags dans tags de biome.
Les tags animal et monster
La plupart des biomes terrestres portent les tags animal et monster. Les vaches vanilla utilisent has_biome_tag avec animal, et les zombies utilisent monster. C'est une façon simple de dire « partout où une créature normale pourrait vivre ».
Niveau de lumière
"minecraft:brightness_filter": {
"min": 0,
"max": 7,
"adjust_for_weather": true
}La lumière va de 0 (noir complet) à 15 (plein jour). Les animaux utilisent en général 7 à 15, les monstres 0 à 7. Avec adjust_for_weather à true, la pluie et les orages comptent comme plus sombres, donc des monstres peuvent apparaître par un jour d'orage.
À quelle fréquence : le poids
"minecraft:weight": { "default": 6 }Quand le jeu choisit quelle créature faire apparaître à un endroit, celles qui ont un poids plus grand sont choisies plus souvent. Pour te donner une idée : les vaches vanilla utilisent 8, les chauves-souris 10 et les zombies 100. Commence bas pour une créature rare et augmente pendant tes tests.
Combien : le troupeau
"minecraft:herd": {
"min_size": 2,
"max_size": 4,
"event": "minecraft:entity_born",
"event_skip_count": 2
}min_sizeetmax_size: combien apparaissent ensemble.event(facultatif) : un événement déclenché sur les créatures du groupe quand elles apparaissent.event_skip_count: combien de créatures apparaissent avant que l'événement commence à se déclencher.
L'exemple ci-dessus est l'astuce vanilla pour les familles : les 2 premiers apparaissent comme des adultes normaux, et les autres reçoivent minecraft:entity_born. Dans les fichiers d'entité de ces créatures, cet événement ajoute le groupe bébé, donc les autres sont des bébés. Les renards et les axolotls font exactement ça.
À quel point c'est bondé : la limite de densité
"minecraft:density_limit": {
"surface": 4,
"underground": 2
}Une limite rien que pour cette créature, en plus de la limite du groupe. Une fois que ce nombre est déjà atteint autour, plus aucune n'apparaît en surface (ou sous terre). Utile pour les créatures puissantes ou rares qui ne doivent jamais venir en foule.
Difficulté
"minecraft:difficulty_filter": {
"min": "easy",
"max": "hard"
}Les difficultés sont peaceful, easy, normal et hard. Les créatures hostiles commencent en général à easy, donc elles n'apparaissent jamais en mode Paisible.
Plus de conditions
| Composant | Ce qu'il vérifie |
|---|---|
minecraft:height_filter | La plage de hauteur (min, max) où la créature peut apparaître |
minecraft:distance_filter | À quelle distance du joueur elle doit être (min, max) |
minecraft:world_age_filter | L'âge que le monde doit avoir avant que la créature puisse apparaître (min) |
minecraft:disallow_spawns_in_bubble | L'empêche d'apparaître dans les colonnes de bulles |
minecraft:permute_type | Fait parfois apparaître une autre créature à la place, selon un poids. Les zombies s'en servent pour créer quelques zombies villageois. |
Une version de nuit
Tu veux aussi des golems de rubis en colère dans les grottes ? Ajoute une deuxième condition avec d'autres règles :
"conditions": [
{
"minecraft:spawns_on_surface": {},
"minecraft:spawns_on_block_filter": ["minecraft:sand", "minecraft:red_sand"],
"minecraft:brightness_filter": { "min": 7, "max": 15, "adjust_for_weather": false },
"minecraft:weight": { "default": 6 },
"minecraft:herd": { "min_size": 1, "max_size": 2 },
"minecraft:biome_filter": { "test": "has_biome_tag", "value": "desert" }
},
{
"minecraft:spawns_underground": {},
"minecraft:brightness_filter": { "min": 0, "max": 4, "adjust_for_weather": false },
"minecraft:height_filter": { "min": -64, "max": 0 },
"minecraft:weight": { "default": 2 },
"minecraft:herd": { "min_size": 1, "max_size": 1, "event": "wiki:become_angry" },
"minecraft:density_limit": { "underground": 2 },
"minecraft:biome_filter": { "test": "has_biome_tag", "value": "overworld" }
}
]La deuxième entrée fait apparaître des golems solitaires dans les profondeurs et déclenche aussitôt wiki:become_angry sur eux. Cet événement vient de la page Événements d'entité.
Tester les règles d'apparition
L'apparition naturelle est lente à tester, alors facilite-toi la vie :
- Crée un nouveau monde en Créatif et règle la difficulté sur Facile ou plus si ta créature est hostile.
- Augmente beaucoup le
weight(par exemple100) pendant les tests, puis rebaisse-le. - Vole dans le bon biome. Les créatures n'apparaissent qu'à une certaine distance du joueur.
- Utilise
/kill @e[type=wiki:ruby_golem]pour les supprimer et regarde les nouvelles apparaître.
Quand quelque chose ne va pas
| Ce que tu vois | Cause la plus probable |
|---|---|
| Elle n'apparaît jamais | is_spawnable vaut false, l'identifier ne correspond pas, ou la condition n'a pas de composant « où » comme spawns_on_surface |
| Elle n'apparaît jamais dans un biome | Le biome n'a pas ce tag. Vérifie dans Biomes vanilla. |
| Beaucoup trop nombreuses | Baisse weight ou max_size, ou ajoute une density_limit |
| Une créature hostile n'apparaît jamais en Paisible | C'est le difficulty_filter qui fait son travail |
| Des monstres en plein jour | adjust_for_weather est activé et il pleut |