Команда Set — установка блоков

Команда //set является одной из фундаментальных операций в плагине и моде WorldEdit, позволяющей мгновенно заполнить выделенную область указанными блоками. Это один из самых часто используемых инструментов для массового редактирования мира, создания построек, ландшафтного дизайна и автоматизации рутинных задач.

Базовый синтаксис команды //set

//set <pattern> 

Пример

//set glass 

Установка стекла
Заполнить регион стеклом

Команда заменяет все блоки в текущем выделении на указанный паттерн. Поддерживается отмена действия через //undo .

Как выделить регион вы можете узнать в статье Как пользоваться wordledit или на странице команды Wand. Используйте волшебный топорик, введя команду //wand, а затем кликая поочередно левой и правой кнопкой мыши в противоположных углах кубоида, внутри которого хотите заменить блоки с помощью команды set.

Требуемое право доступа: worldedit.region.set

Использование паттернов

Паттерн определяет, какие блоки будут размещены при выполнении команды. WorldEdit поддерживает широкий спектр паттернов — от простых до сложных комбинированных конструкций.

Одиночный блок

Самый базовый вариант — указание одного типа блока:

//set stone 

Установка камня

Установить камень

Замена на воздух

//set 0 или //set air заменяет все блоки на воздух, что равносильно удалению.

//set 0 

Вставка блока из руки

//set hand 

Установка из руки

Установить блок, который в руке

Паттерн со случайными блоками

Позволяет устанавливать блоки случайным образом из списка:

//set gold_block,diamond_block,emerald_block 

Установка случайных блоков

Установка золотого, алмазного и изумрудного блоков
//set 5%diamond_ore,95%stone 

Установка с процентами

5% алмазной руды и 95% камня

Веса указываются через знак % и являются относительными: 5%dirt,15%stone можно пересчитать как 25% грязи и 75% камня.

Паттерн случайных состояний

Префикс * перед типом блока выбирает случайное состояние для каждого блока:

//set *oak_stairs 

Ступеньки

Ступеньки смотрят в разные стороны, часть являются затопленными

Паттерн из буфера обмена

#clipboard использует блоки из вашего буфера в том же расположении:

//set #clipboard 

Из буфера обмена

Вставка из буфера обмена

Смещение @[x,y,z] позволяет сдвинуть паттерн относительно исходной позиции, пример: //set #clipboard@[5,0,-3].

Паттерн изменения типа или состояний

Префикс ^ изменяет только тип блока или указанные состояния, не затрагивая остальное:

//set ^oak_stairs 
//set ^[facing=west]

Дубовые ступеньки

Вторая команда поворачивает ступеньки

Полезно для изменения материала лестниц, плит или дверей без потери их ориентации.

Паттерн категорий блоков (тегов)

Синтаксис ##<tag> выбирает случайный блок из указанной категории:

//set ##*wool 
//set ##planks
//set ##logs

Шерсть

Вставка шерсти случайного цвета

Добавление * (##*tag) использует все состояния блоков категории, а не только дефолтные.

Специальный синтаксис для отдельных блоков

  • Текст на табличках: используйте символ | для разделения строк: //set oak_sign|Привет|Мир. Работает с ошибками
  • Головы игроков: //set player_head|Notch установит голову со скином указанного игрока. Вставляет обычную голову в новых версиях
  • Спаунеры мобов: //set spawner|zombie задаст тип моба для спаунера

Решение распространённых проблем

Команда не выполняется: «No permission»

Причина: Отсутствие права worldedit.region.set.

Решение: Выдайте право через менеджер привилегий (LuckPerms, PermissionsEx) или убедитесь, что у операторов есть доступ по умолчанию.

Блоки устанавливаются не там, где ожидалось

Причина: Неправильное выделение региона или смещение буфера.

Решение: Используйте мод CUI, чтобы видеть текущее выделение или проверьте выделение командой //size.

Сервер лагает при выполнении //set на большой области

Причина: Синхронное выполнение в стандартном WorldEdit.

Решение: Установите FastAsyncWorldEdit или разбейте операцию на части с помощью //expand и промежуточных сохранений.

Рекомендации по безопасному использованию

  • Проверяйте выделение: Перед массовыми изменениями используйте //size для оценки количества затронутых блоков
  • Тестируйте на малой области: Сначала выполните команду на небольшом выделении, чтобы убедиться в корректности паттерна
  • Используйте //undo: Команда //undo отменяет последнее действие WorldEdit
  • Резервное копирование: Перед масштабными изменениями создайте снапшот мира или используйте //copy для сохранения области

Связанные команды

Команда Описание Право
//replace <mask> <pattern> Заменяет блоки, соответствующие маске, на паттерн worldedit.region.replace
//undo Отменяет последнее действие WorldEdit worldedit.undo
//redo Возвращает отменённое действие worldedit.redo
//gmask <mask> Устанавливает глобальную маску для всех операций worldedit.mask
//size Показывает размер и количество блоков в выделении worldedit.selection.info

Вопросы и ответы

Как удалить все блоки в выделении?

Используйте //set air или //set 0 — оба варианта заменяют блоки на воздух, «удаляя» их из выделения.

Как установить блоки случайным образом?

Используйте запятую для равномерного распределения: //set stone,dirt,glass. Для весов добавьте проценты: //set 70%stone,30%dirt. Веса относительные, не обязательно доводить их сумму до 100%.

Как изменить только состояние блока, не меняя его тип?

Используйте паттерн с префиксом ^: //set ^[facing=north] изменит ориентацию блоков, не затрагивая их тип. Это полезно для лестниц, дверей и других блоков с состояниями.

Как применить //set только к определённым блокам?

Используйте команду //replace

Можно ли использовать //set в консоли?

Да, но команда требует активного выделения региона. В консоли выделение должно быть установлено заранее через команды с координатами или от имени игрока с сохранённым регионом.

Как установить текст на таблички через //set?

Используйте символ | для разделения строк: //set oak_sign|Строка1|Строка2. Если текст содержит пробелы, оберните весь паттерн в кавычки: "oak_sign|Привет мир".

В чём разница между //set и //replace?

//set заменяет все блоки в выделении на паттерн. //replace <mask> <pattern> заменяет только блоки, соответствующие маске. Например, //replace stone dirt заменит только камень, оставив другие блоки нетронутыми.