Нужно накладывать эффект не на игрока через зелье, а «зашивать» его в предмет (например, чтобы при использовании он давал бафф или дебафф). Для этого в Minecraft удобнее всего использовать команду, которая выдает эффект, а запуск организовать через события с предметом: крафт в связке с табличкой, либо через командный блок и теги/условия.

Ниже - рабочая логика для Java и общий подход для Bedrock.

Что такое эффект и как его накладывает команда

Эффект - это состояние сущности, которое действует заданное время и может усиливаться уровнем. Накладывается командами семейства /effect.

Базовые варианты такие:
- наложить эффект: effect give <цель> <эффект> [время] [уровень] [скрыватьЧастицы]
- снять эффект: effect clear <цель> [эффект]

Поддерживаемые параметры и общий синтаксис есть в справочниках по команде /effect в Minecraft Wiki и Fandom.

Источник: Minecraft Wiki - команда effect и правила аргументов; Fandom - пояснения синтаксиса для Java/Bedrock.

Подготовка: выбери цель и параметры эффекта

1) Цель
- @p - ближайший игрок
- @a - все игроки
- @r - случайный игрок
- @s - тот, кто выполнил команду (удобно в некоторых сценариях)

2) Эффект
В команде используется ID в формате minecraft:<название>, например:
- minecraft:speed
- minecraft:strength
- minecraft:invisibility

3) Время и уровень
- время в секундах
- уровень от 0 до 255
- опционально: скрыть частицы (true/false)

Примеры:
- Ускорение игроку на 60 секунд:

/effect give @p minecraft:speed 60 0
  • Силу всем игрокам на 120 секунд 4 уровня:
/effect give @a minecraft:strength 120 4
  • Невидимость без частиц:
/effect give @p minecraft:invisibility 300 0 true

Снятие эффекта:

/effect clear @p minecraft:speed

Команда и правила замены уровней описаны в справках по effect.

Как сделать, чтобы эффект срабатывал от предмета

Важно понимать ограничение: сама по себе команда /effect не «надевается» на предмет. Эффект накладывается только на цель (игрока/мобов), а предмет должен служить триггером - чем-то, что приводит к выполнению команды.

Ниже два самых практичных способа.

Способ 1: предмет как триггер через командный блок (универсально по логике)

Идея: ты даешь игроку предмет, и когда он делает действие с ним (использует, взаимодействует), это приводит к выполнению команды, которая накладывает эффект на @p или конкретного игрока.

Как реализовать

1) Раздай предмет игроку:

/give @p minecraft:carrot_on_a_stick 1

(предмет замени на нужный)

2) Настрой механизм триггера
Выбирай то, что доступно в твоей сборке/карте:
- командный блок с условием по событию
- краснокаменная схема, которая реагирует на использование предмета
- считывание состояния через датапаки/функции (если делаешь карту глубже)

3) В самом командном блоке накладывай эффект:

/effect give @p minecraft:speed 60 0

Таблица: типовые настройки

Задача Какой вариант цели Пример команды
Дать эффект ближайшему игроку @p /effect give @p minecraft:speed 60 0
Дать эффект всем игрокам @a /effect give @a minecraft:strength 120 4
Дать эффект без частиц @p + true /effect give @p minecraft:invisibility 300 0 true
Снять эффект @p + ID эффекта /effect clear @p minecraft:speed
Снять все эффекты @a /effect clear @a

Способ 2: «предмет с эффектом» через выдачу предмета с NBT и запуск в логике карты

Если у тебя Java и ты собираешь карту с NBT-логикой, часто делают так:
- предмет получает уникальные NBT (чтобы его было легко распознать)
- при срабатывании триггера запускается команда, которая накладывает эффект конкретному игроку

Механика выдачи предметов с NBT описана в гайдах по /give, где используются теги для названия, чар, атрибутов и других свойств. Это помогает отличать нужный предмет от обычного.

Пример выдачи зачарованного предмета:

/give @p minecraft:bow{Enchantments:[{id:"minecraft:power",lvl:5}]} 1

Дальше включай запуск команды эффекта только когда у игрока есть распознанный предмет. Это уже часть логики карты (командные блоки/датапак), но сама команда накладывает эффект стандартно через /effect.

Частые ошибки

1) Путают «эффект на предмете» и «эффект на игроке»
Команда /effect всегда работает с целью. Предмет - это триггер, а не носитель эффекта сам по себе.

2) Неправильный ID эффекта
В команде используется ID вида minecraft:speed, а не просто слово speed.

3) Ожидание, что один и тот же эффект «сразу складывается»
Если на цель уже активен тот же эффект, Minecraft применяет правила замены по уровню/времени. Это отражено в справке по команде.

4) Команда не выполняется в нужный момент
Если эффект должен срабатывать от использования предмета, триггер должен реально вызывать командный блок или функцию в тот тик, когда действие произошло.

Полезные ссылки

  • Minecraft Wiki: команда effect (синтаксис, аргументы, поведение)
    https://minecraft.wiki/w/Commands/effect
  • Fandom (RU): команда effect, примеры для Java и Bedrock
    https://minecraft.fandom.com/ru/wiki/Командные_консоли/effect
  • Playground (RU): пример объяснения селекторов и команды /effect give и /effect clear
    https://www.playground.ru/minecraft/guide/pomosch_novichkam_s_komandami_give_i_effect_give_clear_minecraft-1836349
  • MCDev (RU): расширение команды effect и пояснения по параметрам
    https://mcdev.su/threads/komanda-effect-rasshir-te-svoi-vozmozhnosti-v-minecraft.280/
  • RU Minecraft Wiki: страница про Эффект (что это и где отображается)
    https://ru.minecraft.wiki/w/Эффект