Перейти к основному содержимому

Minecraft — команды и datapack


Для кого эта статья

Подборка рабочих команд и минимального datapack для Minecraft: Java Edition — в том же формате, что популярная галерея Turtle на Python: скопировали команду → прочитали разбор по частям → увидели результат в мире.

Материал рассчитан на:

  • школьников — кружок, информатика, проект «мини-игра в Minecraft»;
  • студентов — первый опыт «кода без IDE», только чат и текстовые файлы;
  • самоучек, которые гуглят команды minecraft, телепорт minecraft, datapack как сделать, scoreboard minecraft, execute minecraft, командный блок;

теория и контекст — в Разработка в Minecraft, здесь — практика с разбором строк.

Как пользоваться страницей

  1. Найдите задачу в таблице запросов.
  2. Скопируйте блок команд в чат (T) или в .mcfunction.
  3. Сверьте с блоком «Что увидите».
  4. Прочитайте таблицу «Разбор по частям» — там смысл каждого слова.
Сначала теория

Моды, Python, ComputerCraft, сервер — Разработка в Minecraft. Игры на Python вне мира — Pygame, блоки Scratch — Scratch, Roblox Studio — Luau.

Java Edition и Bedrock

Все примеры — Java Edition (лаунчер Mojang на ПК). В Bedrock другие команды и нет datapack в этом виде.


Что ищут в Google — быстрый переход

Типичный запросКуда на странице
команды minecraft как включить, читы minecraftВключить команды
координаты minecraft f3, как узнать координатыКоординаты F3
телепорт minecraft, tp minecraft, /tp @sТелепорт
gamemode creative, режим творчества minecraftРежим игры
give minecraft, выдать предмет командойGive
setblock, поставить блок командойSetblock
fill minecraft, залить область блокамиFill — куб и пол
tellraw minecraft, цветной текст в чатеTellraw
scoreboard minecraft, счётчик убийств sidebarScoreboard
execute minecraft, execute as at runExecute
командный блок minecraft, цепочка command blockКомандные блоки
datapack minecraft, как сделать datapackСтруктура datapack
pack.mcmeta, pack_formatpack.mcmeta
mcfunction, function minecraftПервая функция
load.json tick.jsonload и tick
чекпоинт minecraft, spawnpoint командаЧекпоинт паркура
schedule function minecraftSchedule вместо tick
ошибка unknown command, функция не найденаЧастые ошибки

Оглавление по разделам

РазделСодержание
Включить командыодиночка, сервер, проверка /say
Координаты F3X Y Z, ~, высота
Обязательный минимумшесть команд «на каждый урок»
Стартовые командыtp, дом, монеты, эффект
Scoreboardпеременные, sidebar, условие
Executeas / at / if / run
Командные блокиimpulse, chain, repeat
Datapack целикомвсе файлы пакета tutorial
Чекпоинт паркурамини-игра из 5 функций
Ошибкисимптом → решение

Основы — что такое «команда» в Minecraft

В чате строка с / в начале — это не сообщение друзьям, а запрос к внутреннему интерпретатору мира (как print в Python, только выполняет действие в 3D).

Шаг урокаАналогия в программировании
/scoreboard objectives add coins dummyобъявили переменную coins
/scoreboard players add @s coins 1coins += 1
/execute … if score … run sayif coins >= 5: print(...)
файл .mcfunctionскрипт из нескольких строк
datapacks/…/load.jsonmain() при старте программы

Один игровой тик = 1/20 секунды. Команды в tick.json срабатывают 20 раз в секунду — отсюда лаги, если писать тяжёлую логику в tick.


Как включить команды

Одиночная игра

  1. Создать мирДополнительные настройки мира.
  2. Включить Разрешить читы (Allow Cheats).
  3. В мире T → ввод с /.

Что увидите после включения: в меню паузы появится «Открыть для LAN» с читами; в чате команды не краснеют как «неизвестный игрок» (при опечатке будет другая ошибка).

Свой сервер

Файл / действиеЗачем
server.propertiesenable-command-block=trueразрешить командные блоки
/op Ник или запись в ops.jsonправо на опасные команды

Проверка — разбор /say

/say Команды работают

Что увидите: в чате строка <Сервер> Команды работают (цвет серый, от имени «Сервер»).

ЧастьСмысл
/режим команды
sayотправить текст всем
Команды работаютобычный текст; пробелы допустимы

Координаты — F3 и символ ~

Нажмите F3 (на ноутбуке часто Fn+F3) — слева появится отладочный экран.

БукваОсьПример
Xвосток / западрастёт на восток
Yвысота64 — уровень моря в обычном мире
Zюг / север

В командах:

ЗаписьЗначение
100 70 -30абсолютная точка в мире
~ ~ ~«здесь, где стоит цель команды»
~ ~1 ~на один блок выше
~-1на 1 меньше по этой оси

Учебный приём: встаньте на место, запишите X Y Z из F3, подставьте в /tp @s X Y Z — вернётесь точно в «домашнюю» точку урока.


Обязательный минимум — шесть команд на урок

Скопируйте по очереди в творческом мире с читами:

/gamemode creative @s
/tp @s ~ ~10 ~
/give @s minecraft:command_block 1
/give @s minecraft:emerald_block 16
/scoreboard objectives add lesson dummy "Урок"
/scoreboard objectives setdisplay sidebar lesson
КомандаЗачем на уроке
1gamemode creativeполёт, бесконечные блоки
2tp ~ ~10 ~подняться над землёй, не искать высоту
3give command_blockавтоматизация без чата
4give emerald_blockмаркеры чекпоинта паркура
5–6scoreboard«переменная» на экране справа

Стартовые команды

Простые сцены: один блок кода → видимый эффект. Каждый подраздел — код, результат, разбор.


Телепорт — /tp

/tp @s 0 100 0

Что увидите: мгновенный перенос в точку X=0, Y=100, Z=0 (часто высоко в небе над миром).

ЧастьСмысл
tpteleport
@sself — вы, кто ввёл команду
0координата X
100высота Y
0координата Z

К игроку по нику:

/tp @s Steve
ЧастьСмысл
Steveник второго игрока (латиница, как в лаунчере)

Относительный прыжок вверх (удобно после падения в паркуре):

/tp @s ~ ~5 ~
ЧастьСмысл
~ ~5 ~X и Z не менять, Y +5 блоков

Режим игры — /gamemode

/gamemode creative @s
/gamemode survival @s

Что увидите: в creative — полёт (двойной прыжок), в инвентаре все блоки; в survival — шкала голода и добыча.

РежимКратко
creativeстроительство без лимита ресурсов
survivalклассическое выживание
adventureнельзя ломать блоки рукой (карты)
spectatorпроход сквозь блоки, наблюдение
Часть командыСмысл
gamemodeсменить правила взаимодействия
creativeимя режима
@sприменить к себе

Выдать предмет — /give

/give @s minecraft:diamond 8

Что увидите: 8 алмазов в инвентаре (или дроп, если инвентарь полон).

ЧастьСмысл
giveсоздать предметы у игрока
@sкому
minecraft:diamondID предмета: пространство имён minecraft + имя
8количество

Несколько стаков камня для стройки:

/give @s minecraft:stone 64
/give @s minecraft:oak_planks 64

Один блок — /setblock

/setblock ~ ~-1 ~ minecraft:gold_block

Что увидите: блок под ногами заменён на золотой.

ЧастьСмысл
setblockпоставить/заменить ровно один блок
~ ~-1 ~смещение: под ногами (−1 по Y)
minecraft:gold_blockтип блока

Важно: команда выполняется от позиции цели. В чате цель — вы (@s неявно). В execute as @a at @s цель — каждый игрок по очереди, ~ — под его ногами.


Залить область — /fill (пол и «домик»)

Площадка 5×5 под ногами:

/fill ~-2 ~-1 ~-2 ~2 ~-1 ~2 minecraft:stone

Что увидите: плоский каменный пол 5 блоков в сторону от вас.

ЧастьСмысл
~-2 ~-1 ~-2первый угол параллелепипеда (левый-низ-зад)
~2 ~-1 ~2противоположный угол (правый-низ-перед)
minecraft:stoneчем заполнить

Простые стены «домика» (стоя на полу, смотрите на «фасад»):

/fill ~-2 ~ ~-2 ~2 ~3 ~-2 minecraft:oak_planks
/fill ~-2 ~ ~2 ~2 ~3 ~2 minecraft:oak_planks
/fill ~-2 ~ ~-2 ~-2 ~3 ~2 minecraft:oak_planks
/fill ~2 ~ ~-2 ~2 ~3 ~2 minecraft:oak_planks

Что увидите: четыре стены; крышу можно /fill ~-2 ~4 ~-2 ~2 ~4 ~2 minecraft:glass.

Параметр fillКогда нужен
(без режима)заменить все блоки в коробке
keepне трогать воздух — только заменить существующие
outlineтолько «коробка» без заливки внутри
hollowполая коробка

Цветной текст — /tellraw

/tellraw @s {"text":"Урок начался","color":"green","bold":true}

Что увидите: сообщение только вам, зелёное и жирное (не в общем чате как /say).

Поле JSONСмысл
"text"строка
"color"red, gold, aqua, …
"bold":trueжирный шрифт

Кликабельная кнопка (продвинутый урок):

/tellraw @a {"text":"[Старт]","color":"yellow","clickEvent":{"action":"run_command","value":"/function tutorial:hello"}}
ЧастьСмысл
@aвсе игроки
clickEventпо клику выполнить команду
run_commandкак будто игрок ввёл /function …

Время, погода, эффект

/time set day
/weather clear 1000
/effect give @s minecraft:speed 60 2 true

Что увидите: день, ясно ~1000 тиков, скорость III на 60 секунд без частиц (последний true).

КомандаРазбор
time set dayфиксированное утро (~1000 тиков после полуночи)
weather clear 1000без дождя 1000 тиков
effect give @s minecraft:speed 60 2 trueэффект, цель, тип, секунды, усиление (0=I), скрыть частицы

Scoreboard — переменные на экране

Scoreboard хранит числа по игрокам (и по «фиктивным» именам вроде #global). Это основа квестов, монет, этапов паркура.

Создать цель и показать справа

/scoreboard objectives add coins dummy "Монеты"
/scoreboard objectives setdisplay sidebar coins
/scoreboard players set @s coins 0
/scoreboard players add @s coins 1

Что увидите: справа табличка «Монеты» и число у вашего ника; после add число увеличится на 1.

СтрокаРазбор
objectives add coinsсоздать «столбец» с именем coins
dummyтип: меняется только командами, сам не растёт
"Монеты"подпись на экране (кириллица в кавычках)
setdisplay sidebarпоказать справа
players set @s coins 0обнулить ваш счёт
players add @s coins 1coins += 1

Автоматический счётчик смертей (ванильная статистика):

/scoreboard objectives add deaths deathCount "Смерти"
/scoreboard objectives setdisplay list deaths
Тип целиПоведение
dummyтолько команды
deathCount+1 при смерти игрока
playerKillCountубийства игроков
minecraft.used:minecraft.stoneсколько раз использовали камень (пример критерия)

Условие «если монет ≥ 5»

/execute as @a[scores={coins=5..}] run say У вас пять или больше монет!

Что увидите: сообщение только у тех, у кого coins от 5 и выше.

ЧастьСмысл
execute as @aдля каждого игрока
[scores=&#123;coins=5..&#125;]фильтр: значение 5…∞
run say …выполнить say от имени этого игрока

Диапазоны: 5..9 — от 5 до 9; ..3 — до 3 включительно; 10 — ровно 10.


Execute — главная «конструкция» 1.13+

Команда /execute связывает кто, где, при каком условии и что выполнить.

Шаблон для копирования

/execute as <цель> at @s <условия> run <команда>
СловоРоль
as«я — этот игрок» для следующих команд
at @sпозиция и поворот этого игрока (@s после as)
if block …проверка блока в точке
if score …проверка scoreboard
runчто выполнить при успехе

Пример 1 — золотой блок под каждым

/execute as @a at @s run setblock ~ ~-1 ~ minecraft:gold_block

Что увидите: под ногами каждого онлайн-игрока появится золотой блок (один раз на выполнение).

Шаг интерпретатораЧто происходит
1взять список @a
2для Steve: встать в координаты Steve
3setblock под Steve
4повторить для Alex, …

Пример 2 — стоит на алмазе → свечение

/execute as @a at @s if block ~ ~-1 ~ minecraft:diamond_block run effect give @s minecraft:glowing 5 0 true

Что увидите: стоя на алмазном блоке и введя команду (или в repeat-блоке) — краткая подсветка тела.

ЧастьСмысл
if block ~ ~-1 ~ minecraft:diamond_blockблок под ногами — алмаз
effect give @s glowingэффект «свечение» 5 секунд
0уровень I
trueбез частиц

Пример 3 — зона спавна 20 блоков

/execute as @a[x=100,y=70,z=-50,distance=..20] run title @s actionbar {"text":"Вы в зоне урока","color":"aqua"}

Что увидите: над хотбаром бирюзовая полоска текста, пока вы в сфере 20 блоков от точки (100, 70, −50).

ЧастьСмысл
x=100,y=70,z=-50якорь зоны (подставьте свои F3)
distance=..20радиус ≤ 20
title @s actionbarтекст над инвентарём

Командные блоки

Получить блок: /give @s minecraft:command_block.

Режим в GUIАнгл.Когда срабатывает
ИмпульсныйImpulseраз по кнопке / редстоуну
ЦепнойChainсразу после предыдущего в цепочке
ПовторяющийRepeatкаждый тик, пока включён

Настройки блока: Needs Redstone — только с сигналом; Always Active у repeat — без рычага.

Цепочка «монета + звук» — три блока

Поставьте в линию три командных блока, стрелки в одну сторону. Первый — Impulse + кнопка, остальные — Chain, Auto.

Блок 1 (импульс):

scoreboard players add @p coins 1

Блок 2 (цепь):

execute as @p if score @p coins matches 5.. run say Пять монет!

Блок 3 (цепь):

playsound minecraft:entity.experience_orb.pickup master @p

Что увидите: каждое нажатие — +1 монета; на 5-й раз — фраза в чат и звук опыта.

БлокРазбор строки
1@p — ближайший игрок к блоку; add coins 1
2matches 5.. — синтаксис сравнения scoreboard
3playsoundmaster @p — звук только этому игроку
В командных блоках без /

Внутри GUI блока пишут scoreboard players add …без слэша в начале. В чате и в .mcfunction в datapack — тоже без /.


Структура datapack

Datapack — папка внутри мира. Игра читает её при загрузке и по /reload.

Windows (одиночка):

%APPDATA%\.minecraft\saves\ИМЯ_МИРА\datapacks\tutorial_pack\

Linux:

~/.minecraft/saves/ИМЯ_МИРА/datapacks/tutorial_pack/

Дерево файлов учебного пакета:

tutorial_pack/
pack.mcmeta
data/
tutorial/
functions/
hello.mcfunction
init.mcfunction
tick_counter.mcfunction
every_second.mcfunction
parkour_init.mcfunction
parkour_tick.mcfunction
set_checkpoint.mcfunction
tags/
minecraft/
functions/
load.json
tick.json
ПутьНазначение
pack.mcmetaметаданные и pack_format
data/tutorial/functions/*.mcfunctionкоманды, одна строка = одна команда
tags/.../load.jsonчто запустить при загрузке
tags/.../tick.jsonчто запускать каждый тик

tutorialnamespace (ваше имя пакета латиницей). Вызов функции: tutorial:hello.


pack.mcmeta — разбор файла

Создайте текстовый файл pack.mcmeta (кодировка UTF-8):

{
"pack": {
"pack_format": 48,
"description": "Учебный пак — команды и функции"
}
}
ПолеСмысл
"pack"корневой объект метаданных
"pack_format": 48версия схемы; должна совпадать с версией Minecraft
"description"подпись в меню datapack
Версия Java (ориентир)pack_format
1.20.441
1.20.5–1.20.642–43
1.21.x48+

Таблица на вики: Pack format. После обновления игры число часто меняют — при жёлтом предупреждении в чате обновите одно число.


Первая функция — hello.mcfunction

Файл: data/tutorial/functions/hello.mcfunction

tellraw @a {"text":"Datapack tutorial: привет!","color":"green"}
playsound minecraft:block.note_block.pling master @a ~ ~ ~ 1 1

Что увидите: зелёная строка всем + звук нотного блока.

СтрокаРазбор
tellraw @a {…}JSON-сообщение всем игрокам
"color":"green"цвет текста
playsound minecraft:block.note_block.plingзвук
master @aкатегория master, слышат все @a
~ ~ ~координаты звука — у каждого игрока свои при execute нет; здесь глобально от (0,0,0) мира при прямом вызове — для урока достаточно

Подключить при загрузкеdata/tutorial/tags/minecraft/functions/load.json:

{
"values": [
"tutorial:hello"
]
}
ПолеСмысл
"values"список функций
"tutorial:hello"namespace tutorial, файл functions/hello.mcfunction

В игре после правок:

/reload

Что увидите в чате: сообщение о перезагрузке datapack; если JSON верный — сработает hello (зелёный текст).

Ручной вызов:

/function tutorial:hello

load и tick

init.mcfunction — один раз при загрузке

scoreboard objectives add tick_timer dummy
scoreboard players set #global tick_timer 0
tellraw @a {"text":"Счётчики готовы","color":"aqua"}
СтрокаСмысл
objectives add tick_timerцель-счётчик тиков
#globalфиктивный игрок для «глобальных» чисел; # обязателен
players set #global tick_timer 0обнулить счётчик
tellraw @aсообщить всем, что init прошёл

load.json (можно два значения — сначала init, потом hello):

{
"values": [
"tutorial:init",
"tutorial:hello"
]
}

tick — раз в секунду без лагов

data/tutorial/functions/tick_counter.mcfunction:

scoreboard players add #global tick_timer 1
execute if score #global tick_timer matches 20.. run function tutorial:every_second

data/tutorial/functions/every_second.mcfunction:

scoreboard players set #global tick_timer 0
title @a actionbar {"text":"1 секунда прошла","color":"yellow"}

tick.json:

{
"values": [
"tutorial:tick_counter"
]
}

Логика по шагам (каждый тик):

Тик#global tick_timerДействие
11только +1
2020вызов every_second, сброс в 0, жёлтый actionbar
Не кладите тяжёлый fill в tick

fill на большую область 20 раз в секунду — лаг мира. Тяжёлое — в load, по кнопке, или через schedule.


Schedule — цикл без tick.json

В every_second.mcfunction в конце можно добавить:

schedule function tutorial:every_second 20t

Первый запуск из чата:

/schedule function tutorial:every_second 20t
ЧастьСмысл
schedule functionотложить вызов функции
tutorial:every_secondкакая функция
20tчерез 20 тиков (1 секунда)

Смысл: функция вызывает сама себя через 1 с — цикл без постоянного tick. Для уроков и слабых ПК — предпочтительнее.


Собрать пакет tutorial с нуля — чеклист

ШагДействиеПроверка
1Создать папку tutorial_pack в datapacksпуть существует
2Записать pack.mcmetaJSON без лишей запятой
3Создать data/tutorial/functions/
4Положить hello.mcfunction
5Создать load.json с "tutorial:hello"
6В мире /reloadзелёный tellraw
7/datapack listtutorial_pack в списке

Команда списка пакетов:

/datapack list

Чекпоинт паркура — мини-игра

Задача: наступил на изумрудный блок → запомнили точку возрождения, надпись, звук; повторно не срабатывает.

Файл 1 — parkour_init.mcfunction

scoreboard objectives add checkpoint dummy "Чекпоинт"
scoreboard players set @a checkpoint 0
СтрокаСмысл
checkpointимя переменной этапа
set @a … 0всем игрокам этап «не пройден»

Добавьте в load.json строку "tutorial:parkour_init" (после init).

Файл 2 — parkour_tick.mcfunctiontick.json)

execute as @a at @s if block ~ ~-1 ~ minecraft:emerald_block if score @s checkpoint matches ..0 run function tutorial:set_checkpoint

Разбор цепочки execute:

ФрагментСмысл
as @aпроверяем каждого игрока
at @sв его координатах
if block ~ ~-1 ~ emeraldпод ногами изумруд
if score @s checkpoint matches ..0счёт 0 или «ещё не брал чекпоинт»
run function tutorial:set_checkpointвызвать функцию награды

Файл 3 — set_checkpoint.mcfunction

scoreboard players set @s checkpoint 1
spawnpoint @s ~ ~ ~
title @s title {"text":"Чекпоинт!","color":"green"}
playsound minecraft:ui.toast.challenge_complete master @s
СтрокаСмысл
set @s checkpoint 1больше не срабатывать на этом блоке
spawnpoint @s ~ ~ ~точка возрождения здесь
title @s titleбольшой текст по центру
playsound … challenge_completeзвук «достижение»

Проверка в мире

  1. /reload
  2. Поставьте ряд emerald_block на маршруте.
  3. Пройдите по блоку — заголовок и звук.
  4. Упадите и возродитесь — появитесь у чекпоинта.
  5. Сброс урока: /scoreboard players set @a checkpoint 0

Частые ошибки новичков

СимптомПричинаЧто сделать
Команда «не найдена»Bedrock / старая версияJava Edition 1.13+
Недостаточно правчиты выкл. / нет OPвключить читы или /op
В блоке «ничего»написали / в командном блокеубрать /
Функция не найденаопечатка namespaceфайл tutorial/...tutorial:имя
После правки староене reload/reload
JSON ошибказапятая в конце, кавычкипроверить jsonlint
Пакет жёлтыйневерный pack_formatтаблица на вики
Лагитяжёлый fill в tickschedule или редкий сенсор
~ ставит блок не тамнет at @s в executeдобавить at @s

Лог: F3 + L → папка мира → logs/latest.log — строки Loaded … datapack или текст ошибки парсера JSON.


Куда дальше

ТемаМатериал
Моды, Python, APIРазработка в Minecraft
Игры на PythonPygame
Roblox StudioLuau
Git для папки пакетаШаблоны
ВикиCommands, Function

Практика на неделю

ДеньЗадачаКритерий «готово»
1F3, /tp, /gamemodeвернулись в точку по координатам
2/fill пол 7×7, /setblockплощадка под паркур
3scoreboard coins, sidebarчисло растёт от команд
4цепочка из 3 командных блоковзвук на 5 монет
5пакет hello + load.jsontellraw после /reload
6init + tick раз в секундуactionbar раз в секунду
7чекпоинт изумруд + spawnpointвозрождение на маркере

Шпаргалка селекторов и scoreboard

Селекторы

ЗаписьКого выбирает
@sисточник (вы / текущий в execute)
@pближайший игрок
@aвсе игроки
@e[type=minecraft:zombie]все зомби
@a[distance=..10]игроки в 10 блоках

Сравнение score в execute

ЗаписьЗначение
matches 5ровно 5
matches 5..≥ 5
matches ..3≤ 3
matches 5..10от 5 до 10

Сохраните страницу в закладки и идите по таблице запросов — так же удобно искать, как по Turtle 111 с готовыми фигурами.


См. также

Другие статьи этого же раздела в боковом меню (как на странице "О разделе").

Освоение главы0%