Nourritures

Création de nourritures.

This page has not been translated yet — showing the French version.

Pour la nourriture je vous conseil de créer un nouveau fichier dédié, ce sera plus simple de s'y retrouver par le suite. Créez un fichier foods.js dans le dossier startup_scripts en prenant le code donné ci dessous.

foods.jsjavascript
StartupEvents.registry('item', event => { //Vous pouvez changer le mot "event" par ce que vous voulez, j'ai pour habitude de juste mettre "e" personnellement.

//Ici sera mon code

})

Voyons comment rendre un item comestible.

javascript
//mon energy drink
event.create('energy_drink').food(food => {
    food.hunger(6)
    food.saturation(6)
    food.effect('minecraft:strength', 400, 0, 1)
    food.alwaysEdible()
    food.meat()
    food.eaten(afterEat => {
        afterEat.player.tell('Miam')
        afterEat.player.removeEffect('minecraft:nausea')
        afterEat.player.give(Item.of("minecraft:glass_bottle"))
        afterEat.player.getPotionEffects().add("cofh_core:supercharge", 600, 2, true, true)
    })
})
    .useAnimation('drink')
    .useDuration(itemstack => 20)

Dans cette exemple nous avons une boisson énergisante qui se boit donnant l'effet Strength, qui se boit n'importe quand, se boit vite, que les loups aiment, le joueur dira "miam" dans le chat et récupèrera une glass bottle tout en donnant l'effet supercharge 3.
Cette boisson énergisante donnera 3 de hunger et 36 de saturation et sera consommé en 1 seconde (20 tick).

Voici la liste des méthodes et leurs utilités:

  • .hunger(int)
    ➡️ Donne la quantité de faim restauré (1 = ½ gigot)
  • .saturation(float)
    ➡️ Donne la quantité de faim saturé (hunger × saturation)
  • .effect('effet', time, lvl, chance)
    ➡️ Ajoute un effet sur la nourriture (uniquement effet Vanilla)
  • .alwaysEdible()
    ➡️ Permet de manger n'importe quand
  • .fastToEat()
    ➡️ Permet de manger vite
  • .meat()
    ➡️ Les chiens et loups aime cette nourriture
  • .eaten(Callback)
    ➡️ Ajoute des action après avoir manger la nourriture
Plus d'info sur le Callback .eaten Dans le Callback .eaten nous avons un .player.tell , un .player.removeEffect, un .player.give et un .player.getPotionEffects().add() Le .tell notera quelque chose dans le chat ingame. Le .player.removeEffect retirera un effet de potion. Le .give givera un item au joueur. Le .getPotionEffects vous permet de mettre un effet de potion autre que vanilla. Les paramettres sont les suivants: .add('effect', time, lvl, ambient, particules) Si vous combinez ambient et particules (donc les deux en true) vous aurez des particules de beacon, si vous ne prenez que le particules en true, vous aurez des particules opaques. Et n'avoir que l'ambient en true ne sert à rien.
Tu as à la fin de ton item le .useAnimation() Celui-ci tu permet de choisir l'animation que tu souhaites lorsque tu manges ton item (ou que tu le bois dans notre exemple.)
Liste des animations - **"eat" <= Animation par défaut** ➡️ Animation de manger (par défaut pour les foods) - **"drink"** ➡️ Animation de boire (comme une potion) - **"block"** ➡️ Animation de blocage (comme un bouclier) - **"bow"** ➡️ Animation d'arc - **"crossbow"** ➡️ Animation d'arbalète - **"spear"** ➡️ Animation de lance (trident) - **"spyglass"** ➡️ Animation de longue-vue - **"none"** ➡️ Aucune animation
Tu as également le .useDuration(itemstack => ) qui lui te permet de choisir en combien de tick tu veux consommer ton item. Par défaut pour manger on prend 32 tick et en rapide .fastToEat() on prend 16 tick.

Voici quelques exemples en plus avec differents effets.

blood_bottle.png2 Ko▼ TéléchargerOuvrir ↗
javascript
//Blood Bottle
event.create('blood_bottle').displayName('Bloody Bottle').food(food => {
    food.hunger(1)
    food.saturation(1)
    food.alwaysEdible()
    food.eaten(afterEat => {
        afterEat.player.give(Item.of("minecraft:glass_bottle"))
        afterEat.player.getPotionEffects().add("botania:bloodthirst", 600, 2, true, true)
    })
})
    .useAnimation('drink')
mon_steak_bleu.png1 Ko▼ TéléchargerOuvrir ↗
javascript
//Steak Bleu
event.create('mon_steak_bleu').glow(true).food(food => {
    food.hunger(6)
    food.saturation(1)
    food.effect('minecraft:nausea', 2000, 0, 1)
    food.alwaysEdible()
    food.meat()
    food.eaten(afterEat => {
        afterEat.player.tell('Eurk')
    })
})
javascript
//Poulet
event.create('poulet').food(food => {
    food.hunger(5)
    food.saturation(2)
    food.alwaysEdible()
    food.meat()
    food.eaten(afterEat => {
        afterEat.player.removeEffect('minecraft:nausea')
        afterEat.player.give(Item.of("minecraft:bone"))
    })
})
soupe_concombre.png2 Ko▼ TéléchargerOuvrir ↗
javascript
//Soupe de Concombre
event.create('soupe_concombre').maxDamage(10).displayName('Soupe de concombre').food(food => {
    food.hunger(2)
    food.saturation(2)
    food.alwaysEdible()
    food.fastToEat()
    food.eaten(afterEat => {
        let item = afterEat.item
        let player = afterEat.player
        let newDamage = item.damageValue + 1
        if (newDamage >= item.maxDamage) {
            player.give(Item.of('minecraft:bowl'))
        } else {
            let newItem = item.copy()
            newItem.damageValue = newDamage
            player.give(newItem)
        }
    })
})
Updated on 11/10/2026