ProFactorio
Консольные команды
Хитрые (иногда нечестные) приемы для облегчения или улучшения игрового процесса Factorio.
Консольные команды
Хитрые (иногда нечестные) приемы для облегчения или улучшения игрового процесса Factorio.
В этой статье вы узнаете про самые секретные и практически нигде не афишируемые консольные команды. Спешим уточнить, что не всегда консольные команды - это зло. Иногда они действительно помогают, например, сокращают долгое время исследований.
Команда ProFactorio
Вступление
Консольные команды и читы для Factorio помогут упростить навигацию по богатому миру игры, а также добиться главной цели – создать обширные производственные цепочки и повсеместную автоматизацию.
Всем известно, что Factorio – довольно сложная игра (особенно для новичков), и многие пользователи недостаточно терпеливы, из-за чего прибегают к использованию целого ряда консольных команд и различных читов, которые делают геймплей намного легче.
Именно поэтому мы решили найти самые полезные и популярные консольные команды и читы для Factorio, и разместили их в списке ниже.

Консоль
Консоль отображается при переключении клавиши ~(тильда). При открытии консоли появляется мигающий курсор внизу экрана. Набрав сообщение или команду нажмите Enter, чтобы отправить его (это закроет консоль).
Консоль
Консоль отображается при переключении клавиши ~(тильда). При открытии консоли появляется мигающий курсор внизу экрана. Набрав сообщение или команду нажмите Enter, чтобы отправить его (это закроет консоль).
Консоль
Консоль отображается при переключении клавиши ~(тильда). При открытии консоли появляется мигающий курсор внизу экрана. Набрав сообщение или команду нажмите Enter, чтобы отправить его (это закроет консоль).
Консоль
Консоль отображается при переключении клавиши ~(тильда). При открытии консоли появляется мигающий курсор внизу экрана. Набрав сообщение или команду нажмите Enter, чтобы отправить его (это закроет консоль).
Консоль поддерживает теги форматирования текста. Эти тэги полезны для передачи чертежей, отметок местоположения или добавления иконок для меток на карте и ж/д станций. Ctrl+Alt+ЛКМ по карте или земле автоматически вставит GPS тэг и отправит в консоль. Shift+ЛКМ по большинству предметов при открытой консоли вставляет его тэг.
Когда консоль закрывается, отображается только последнее сообщение/команда, но и оно будет постепенно исчезать. Обратите внимание, что по умолчанию все выполняемые команды видны всем игрокам. Установить время задержки сообщения можно в "Настройки" → "Интерфейс" → "Прочее" → "Задержка сообщений в чате".

Если вы хотите быстро закрыть консоль, нажмите Esc или Enter (если сообщение или команда не набраны). Это не только закроет консоль, но и скроет все предыдущие сообщения/команды. Консоль может быть очищена с помощью команды /clear.

Используя и , можно просматривать историю консоли. Tab отвечает за автодополнения команд, опций и имен игроков.

Список всех команд
Обычные команды
/alerts <enable/disable/mute/unmute> <alert>
Включить, выключить, включить оповещение или выключить его для данного типа предупреждения.
Доступные предупреждения:
entity_destroyed, entity_under_attack, not_enough_construction_robots, no_material_for_construction, not_enough_repair_packs, turret_fire, custom, no_storage, train_out_of_fuel, fluid_mixing.

/clear — Очищает консоль.

/color <color> - Изменяет ваш цвет. Может быть одним из предустановленных или RGB значением в формате "# # #". Предустановленные цвета:
default, red, green, blue, orange, yellow, pink, purple, white, black, gray, brown, cyan, acid.

/evolution — Выводит информацию о факторе эволюции кусак.

/help Выводит список доступных команд.

/permissions Открывает интерфейс прав доступа.

/seed Выводит зерно карты.
/permissions <action> <parameters>
Доступные действия:
  • add-player <group> <player>
  • create-group <name>
  • delete-group <group>
  • edit-group <group> <input_action> <true/false>
  • get-player-group <player>
  • remove-player <group> <player>
  • rename-group <group> <new_name>
  • reset
/screenshot — Делает скриншот, скрывая интерфейс, центрируя его по игроку. Скриншот сохраняется в "script-output" подкаталог в директории приложения.

/time — Выводит информацию о времени игры.

/toggle-action-logging — Переключает действий игры в журнал. Это значение не сохраняется между перезапусками игры и имеет эффект только в локальной игре в мультиплеере.

/toggle-heavy-mode— Делает игру медленной, а мультиплеер невозможным.

/unlock-shortcut-bar— Разблокирует все элементы панели ярлыков, включая импорт строки чертежей, копирования и вставки, планы деконструкции и обновления.
Обычные команды
/alerts <enable/disable/mute/unmute> <alert>
Включить, выключить, включить оповещение или выключить его для данного типа предупреждения.
Доступные предупреждения:
entity_destroyed, entity_under_attack, not_enough_construction_robots, no_material_for_construction, not_enough_repair_packs, turret_fire, custom, no_storage, train_out_of_fuel, fluid_mixing.

/clear — Очищает консоль.

/color <color> - Изменяет ваш цвет. Может быть одним из предустановленных или RGB значением в формате "# # #". Предустановленные цвета:
default, red, green, blue, orange, yellow, pink, purple, white, black, gray, brown, cyan, acid.

/evolution — Выводит информацию о факторе эволюции кусак.

/help Выводит список доступных команд.

/permissions Открывает интерфейс прав доступа.

/seed Выводит зерно карты.
/permissions <action> <parameters>
Доступные действия:
  • add-player <group> <player>
  • create-group <name>
  • delete-group <group>
  • edit-group <group> <input_action> <true/false>
  • get-player-group <player>
  • remove-player <group> <player>
  • rename-group <group> <new_name>
  • reset
/screenshot — Делает скриншот, скрывая интерфейс, центрируя его по игроку. Скриншот сохраняется в "script-output" подкаталог в директории приложения.

/time — Выводит информацию о времени игры.

/toggle-action-logging — Переключает действий игры в журнал. Это значение не сохраняется между перезапусками игры и имеет эффект только в локальной игре в мультиплеере.

/toggle-heavy-mode— Делает игру медленной, а мультиплеер невозможным.

/unlock-shortcut-bar— Разблокирует все элементы панели ярлыков, включая импорт строки чертежей, копирования и вставки, планы деконструкции и обновления.
Команды для мультиплеера
<message> Если ввод текста в консоли не начинается с символа /, то оно обрабатывается как сообщение другим игрокам.

/admin Открывает интерфейс игроков.

/ban <player> <reason> Выдача бана конкретному игроку.

/bans Выводит список забаненых игроков.

/banlist <add/remove/get/clear> <player> Добавляет или удаляет игрока из банлиста. Тоже что и /ban или /unban.

/config <get/set> <option> <value> Выводит или устанавливает различные настройки мультиплеера.
Доступные настройки:
afk-auto-kick, allow-commands, allow-debug-settings, autosave-interval, autosave-only-on-server, ignore-player-limit-for-returning-players, max-players, max-upload-speed, only-admins-can-pause, password, require-user-verification, visibility-lan, visibility-public.

/delete-blueprint-library <player> Удаляет содержимое библиотеки чертежей выбранного игрока находящегося в не сети. Ввод “everybody confirm” удаляет содержимое библиотеки для всех игроков.

/demote <player> Снимает с игрока права админа.

/ignore <player> Игнорирует сообщения от выбранного игрока. Не работает для на админе.

/ignores Выводит список игнорируемых игроков.

/mute <player> Запрещает отправление сообщений в чат выбранному игроку.
/kick <player> <reason> Кикает выбранного игрока.

/mutes Заглушает всех игроков.

/open <player> Открывает инвентарь другого игрока.

/o <player> Тоже, что и /open.

/players [online/o/count/c] Выводит список всех игроков в игре. (параметр online/o выводит только тех игроков, которые находятся в игре; count/c выводит только количество игроков).

/p [online/o/count/c] Тоже, что и /players.

/promote <player> Наделяет игрока правами админа.

/purge <player> Удаляет все сообщения от игрока из истории чата.

/reply <message> Ответ предыдущему игроку, который упомянул вас. (Аналог: /r <message>)

/server-save Сохраняет игру на сервере в мультиплеере.

/shout <message> Отправляет сообщение всех игрокам, включая другие стороны. (Аналог: /s <message>)

/swap-players <player> [player] Переключение между своим персонажем и персонажем другого игрока или переключение между персонажами выбранных игроков.

/unban <player> Разбан игрока.

/unignore <player> Разрешает получение сообщений от игрока.

/unmute <player> Разрешает отправлять игроку сообщения в чат.

/whisper <player> <message> Отправляет сообщение выбранному игроку. (Аналог: /w <player> <message>)
Команды для мультиплеера
<message> Если ввод текста в консоли не начинается с символа /, то оно обрабатывается как сообщение другим игрокам.

/admin Открывает интерфейс игроков.

/ban <player> <reason> Выдача бана конкретному игроку.

/bans Выводит список забаненых игроков.

/banlist <add/remove/get/clear> <player> Добавляет или удаляет игрока из банлиста. Тоже что и /ban или /unban.

/config <get/set> <option> <value> Выводит или устанавливает различные настройки мультиплеера.
Доступные настройки:
afk-auto-kick, allow-commands, allow-debug-settings, autosave-interval, autosave-only-on-server, ignore-player-limit-for-returning-players, max-players, max-upload-speed, only-admins-can-pause, password, require-user-verification, visibility-lan, visibility-public.

/delete-blueprint-library <player> Удаляет содержимое библиотеки чертежей выбранного игрока находящегося в не сети. Ввод “everybody confirm” удаляет содержимое библиотеки для всех игроков.

/demote <player> Снимает с игрока права админа.

/ignore <player> Игнорирует сообщения от выбранного игрока. Не работает для на админе.

/ignores Выводит список игнорируемых игроков.

/mute <player> Запрещает отправление сообщений в чат выбранному игроку.
/kick <player> <reason> Кикает выбранного игрока.

/mutes Заглушает всех игроков.

/open <player> Открывает инвентарь другого игрока.

/o <player> Тоже, что и /open.

/players [online/o/count/c] Выводит список всех игроков в игре. (параметр online/o выводит только тех игроков, которые находятся в игре; count/c выводит только количество игроков).

/p [online/o/count/c] Тоже, что и /players.

/promote <player> Наделяет игрока правами админа.

/purge <player> Удаляет все сообщения от игрока из истории чата.

/reply <message> Ответ предыдущему игроку, который упомянул вас. (Аналог: /r <message>)

/server-save Сохраняет игру на сервере в мультиплеере.

/shout <message> Отправляет сообщение всех игрокам, включая другие стороны. (Аналог: /s <message>)

/swap-players <player> [player] Переключение между своим персонажем и персонажем другого игрока или переключение между персонажами выбранных игроков.

/unban <player> Разбан игрока.

/unignore <player> Разрешает получение сообщений от игрока.

/unmute <player> Разрешает отправлять игроку сообщения в чат.

/whisper <player> <message> Отправляет сообщение выбранному игроку. (Аналог: /w <player> <message>)
Скрипты и читы
Основное
/cheat <all> Открывает все технологии и включает чит режим. Опция all дает игроку дополнительные предметы.

/command <command> Выполнение Lua команды
(если она корректна).

/editor Переключатель редактора карт.
/c <command> Выполнение Lua команды (если она корректна).

/measured-command <command> Выполнение Lua команды (если она корректна) и подсчет времени ее выполнения.

/silent-command <command> Выполнение Lua команды (если она корректна) без вывода ее в консоль.

/sc <command> Выполнение Lua команды (если она корректна) без вывода ее в консоль.
Основное
/cheat <all> Открывает все технологии и включает чит режим. Опция all дает игроку дополнительные предметы.

/command <command> Выполнение Lua команды
(если она корректна).

/editor Переключатель редактора карт.
/c <command> Выполнение Lua команды (если она корректна).

/measured-command <command> Выполнение Lua команды (если она корректна) и подсчет времени ее выполнения.

/silent-command <command> Выполнение Lua команды (если она корректна) без вывода ее в консоль.

/sc <command> Выполнение Lua команды (если она корректна) без вывода ее в консоль.
Базовые скрипты
Сброс статистики действий
Этот скрипт сбрасывает информацию о всех действиях в игре, включая статистику по убийствам и производству, технологиям, бонусам и графикам.
/c game.player.force.reset()

Отображение блоков ж/д путей
Всегда отображает блоки ж/д путей. Чтобы отключить эту функцию, необходимо true заменить на false.
/c game.player.game_view_settings.
show_rail_block
_visualisation = true

Переключение всех поездов в автоматический режим
Переключение всех поездов в автоматический режим полезно, например, после постройки чертежа.
/c for key,ent in pairs (game.player.surface.find_entities
_filtered{name="locomotive"}) do
ent.train.manual_mode = false
end
Калькулятор
/c game.player.print(1234*5678)

Масштабирование за пределы стандартных границ
Имейте в виду, что слишком сильное масштабирование может понизить производительность. Будьте осторожны.
/c game.player.zoom=0.1

Ускорение добычи
/c game.player.force.
manual_mining_speed_modifier
=1000

Ускорение крафта
/c game.player.force.manual_crafting_speed
_modifier=1000

Исследование всех технологий
/c game.player.force.
research_all_technologies()

Сброс всех исследований
Бонусы, примененные вручную, не сбрасываются.
/c for _, tech in pairs(game.player.force.technologies) do
tech.researched=false
game.player.force.set_saved_technology
_progress(tech, 0)
end
Базовые скрипты
Сброс статистики действий
Этот скрипт сбрасывает информацию о всех действиях в игре, включая статистику по убийствам и производству, технологиям, бонусам и графикам.
/c game.player.force.reset()

Отображение блоков ж/д путей
Всегда отображает блоки ж/д путей. Чтобы отключить эту функцию, необходимо true заменить на false.
/c game.player.game_view_settings.
show_rail_block
_visualisation = true

Переключение всех поездов в автоматический режим
Переключение всех поездов в автоматический режим полезно, например, после постройки чертежа.
/c for key,ent in pairs (game.player.surface.find_entities
_filtered{name="locomotive"}) do
ent.train.manual_mode = false
end
Калькулятор
/c game.player.print(1234*5678)

Масштабирование за пределы стандартных границ
Имейте в виду, что слишком сильное масштабирование может понизить производительность. Будьте осторожны.
/c game.player.zoom=0.1

Ускорение добычи
/c game.player.force.
manual_mining_speed_modifier
=1000

Ускорение крафта
/c game.
player.force.manual_crafting_speed
_modifier=1000

Исследование всех технологий
/c game.player.force.
research_all_technologies()

Сброс всех исследований
Бонусы, примененные вручную, не сбрасываются.
/c for _, tech in pairs(game.player.force.technologies) do
tech.researched=false
game.player.force.
set_saved_technology
_progress(tech, 0)
end
Скрипты для инвентаря
Чит режим
Бесконечный крафт предметов. Чтобы отключить эту функцию, необходимо true заменить на false.
/c game.player.cheat_mode=true

Пополнение ресурсов
При вводе курсор необходимо удерживать над месторождением.
/c game.player.selected.amount=7500

Командой ниже можно пополнить все месторождения на карте. Измените ore.amount на желаемое значение.
/c surface = game.player.surface
for _, ore in pairs(surface.find_entities_filtered
({type="resource"})) do
ore.amount = 10000
end

Получение предметов
Замените iron-plate на желаемый предмет в соответствии с его наименованием.
/c game.player.insert{name="iron-plate", count=100}

Например, так можно получить интерфейс электроэнергии.
/c game.player.insert{name="electric-energy-interface"}

Cледующий код позволяет получить мощную броню с модулями и инструментами для строительства:
/c local player = game.player
player.insert{name="power-armor-mk2", count = 1}
local p_armor = player.get_inventory(5)[1].grid
p_armor.put({name = "fusion-reactor-equipment"})
p_armor.put({name = "fusion-reactor-equipment"})
p_armor.put({name = "fusion-reactor-equipment"})
p_armor.put({name = "exoskeleton-equipment"})
p_armor.put({name = "exoskeleton-equipment"})
p_armor.put({name = "exoskeleton-equipment"})
p_armor.put({name = "exoskeleton-equipment"})
p_armor.put({name = "energy-shield-mk2-equipment"})
p_armor.put({name = "energy-shield-mk2-equipment"})
p_armor.put({name = "personal-roboport-mk2-equipment"})
p_armor.put({name = "night-vision-equipment"})
p_armor.put({name = "battery-mk2-equipment"})
p_armor.put({name = "battery-mk2-equipment"})
player.insert{name="construction-robot", count = 25}

Увеличение слотов инвентаря игрока
Дает 100 дополнительных слотов. Используется пояс для инструментов.
/c game.player.force.
character_inventory_slots
_bonus=100
Скрипты для инвентаря
Чит режим
Бесконечный крафт предметов. Чтобы отключить эту функцию, необходимо true заменить на false.
/c game.player.cheat_mode=true

Пополнение ресурсов
При вводе курсор необходимо удерживать над месторождением.
/c game.player.selected.amount=7500

Командой ниже можно пополнить все месторождения на карте. Измените ore.amount на желаемое значение.
/c surface = game.player.surface
for _, ore in pairs(surface.find_entities_filtered
({type="resource"})) do
ore.amount = 10000
end

Получение предметов
Замените iron-plate на желаемый предмет в соответствии с его наименованием.
/c game.player.insert{name="iron-plate", count=100}

Например, так можно получить интерфейс электроэнергии.
/c game.player.insert{name="electric-energy-interface"}
Cледующий код позволяет получить мощную броню с модулями и инструментами для строительства:
/c local player = game.player
player.insert{name="power-armor-mk2", count = 1}
local p_armor = player.get_inventory(5)[1].grid
p_armor.put({name = "fusion-reactor-equipment"})
p_armor.put({name = "fusion-reactor-equipment"})
p_armor.put({name = "fusion-reactor-equipment"})
p_armor.put({name = "exoskeleton-equipment"})
p_armor.put({name = "exoskeleton-equipment"})
p_armor.put({name = "exoskeleton-equipment"})
p_armor.put({name = "exoskeleton-equipment"})
p_armor.put({name = "energy-shield-mk2-equipment"})
p_armor.put({name = "energy-shield-mk2-equipment"})
p_armor.put({name = "personal-roboport-mk2-equipment"})
p_armor.put({name = "night-vision-equipment"})
p_armor.put({name = "battery-mk2-equipment"})
p_armor.put({name = "battery-mk2-equipment"})
player.insert{name="construction-robot", count = 25}

Увеличение слотов инвентаря игрока
Дает 100 дополнительных слотов. Используется пояс для инструментов.
/c game.player.force.
character_inventory_slots
_bonus=100
Изменение мира #1
Открытие карты вокруг игрока
Открытие карты вокруг игрока похоже на действие радара.
/c local radius=150
game.player.force
.chart(game.player.surface, {{game.player.position.x-radius, game.player.position.y-radius}, {game.player.position.x+radius, game.player.position.y+radius}})

или со стартовой позиции
/c local radius=150
game.player.force.
chart(game.player.surface, {{x = -radius, y = -radius}, {x = radius, y = radius}})
Большое значение радиуса может долго обрабатываться.

Сброс открытой карты
Скрывает все открытые чанки на карте.
/c local surface = game.player.surface
local force = game.player.force
for chunk in surface.get_chunks() do
force.unchart_chunk({x = chunk.x, y = chunk.y}, surface)
end

Удаление чанков
При увеличении площади открытой карты растет размер сохраняемого файла. Код ниже предотвращает генерацию всех чанков в очереди на генерацию и удаляет все чанки, находящиеся дальше 32 чанков от начальной позиции (0,0). Имейте в виду, что это удалит все объекты игрока, находящиеся за пределами заданного радиуса.
/c local surface = game.player.surface;
game.player.force.
cancel_charting(surface);
local chunk_radius = 32;
for chunk in surface.get_chunks() do
if (chunk.x < -chunk_radius or chunk.x > chunk_radius or chunk.y < -chunk_radius or chunk.y > chunk_radius) then
surface.delete_chunk(chunk)
end
end
Удаление не открытых чанков
Эта команда удаляет чанки, которые еще не открыты игроком. Может использоваться после команды сброса открытой карты для удаления чанков находящихся за пределами действия радара.
/c local surface = game.player.surface
local force = game.player.force
for chunk in surface.get_chunks() do
if not force.is_chunk_charted(surface, chunk) then
surface.delete_chunk(chunk)
end
end

Удаление загрязнения
/c game.player.surface.clear_pollution()

Выключение ночи
Устанавливает бесконечный день.
/c game.player.surface.always_day=true

Изменение скорости игры
0.5 — половина от стандартной скорости, соответственно 1 — стандартная скорость, 2 — ускорение в 2 раза и т.д. Минимум 0.01. Может использоваться, например, когда вам нужно выждать длительный период времени. Имейте ввиду, что увеличение скорости уменьшает производительность игры.
/c game.speed=X

Остановка времени
Остановка хода игры, если "BOOL" заменить на "true", и наоборот, если "BOOL" заменить на "false".
/c
game.player.surface.freeze_daytime=BOOL

Полное отключение загрязнения
/c for _, surface in pairs(game.surfaces) do
surface.clear_pollution()
end
game.map_settings.pollution.enabled = false
Изменение мира #1
Открытие карты вокруг игрока
Открытие карты вокруг игрока похоже на действие радара.
/c local radius=150
game.player.force
.chart(game.player.surface, {{game.player.position.x-radius, game.player.position.y-radius}, {game.player.position.x+radius, game.player.position.y+radius}})

или со стартовой позиции
/c local radius=150
game.player.force.
chart(game.player.surface, {{x = -radius, y = -radius}, {x = radius, y = radius}})
Большое значение радиуса может долго обрабатываться.

Сброс открытой карты
Скрывает все открытые чанки на карте.
/c local surface = game.player.surface
local force = game.player.force
for chunk in surface.get_chunks() do
force.unchart_chunk({x = chunk.x, y = chunk.y}, surface)
end

Удаление чанков
При увеличении площади открытой карты растет размер сохраняемого файла. Код ниже предотвращает генерацию всех чанков в очереди на генерацию и удаляет все чанки, находящиеся дальше 32 чанков от начальной позиции (0,0). Имейте в виду, что это удалит все объекты игрока, находящиеся за пределами заданного радиуса.
/c local surface = game.player.surface;
game.player.force.
cancel_charting(surface);
local chunk_radius = 32;
for chunk in surface.get_chunks() do
if (chunk.x < -chunk_radius or chunk.x > chunk_radius or chunk.y < -chunk_radius or chunk.y > chunk_radius) then
surface.delete_chunk(chunk)
end
end
Удаление не открытых чанков
Эта команда удаляет чанки, которые еще не открыты игроком. Может использоваться после команды сброса открытой карты для удаления чанков находящихся за пределами действия радара.
/c local surface = game.player.surface
local force = game.player.force
for chunk in surface.get_chunks() do
if not force.is_chunk_charted(surface, chunk) then
surface.delete_chunk(chunk)
end
end

Удаление загрязнения
/c game.player.surface.clear_pollution()

Выключение ночи
Устанавливает бесконечный день.
/c game.player.surface.always_day=true

Изменение скорости игры
0.5 — половина от стандартной скорости, соответственно 1 — стандартная скорость, 2 — ускорение в 2 раза и т.д. Минимум 0.01. Может использоваться, например, когда вам нужно выждать длительный период времени. Имейте ввиду, что увеличение скорости уменьшает производительность игры.
/c game.speed=X

Остановка времени
Остановка хода игры, если "BOOL" заменить на "true", и наоборот, если "BOOL" заменить на "false".
/c game.player.
surface.freeze_daytime=BOOL

Полное отключение загрязнения
/c for _, surface in pairs(game.surfaces) do
surface.clear_pollution()
end
game.map_settings.pollution.enabled = false
Изменение мира #2
Добавление загрязнения
/c game.player.surface.pollute(game.player.
position, 1000000)

Определение местонахождения программируемого динамика и его хозяина
/c speakers = game.player.surface.find_entities_filtered{force = game.player.force, type="programmable-speaker"}
for key, speaker in pairs(speakers) do
game.player.print("Динамик игрока " .. speaker.last_user.name .. " расположен X=" .. speaker.position.x .. ", Y=" .. speaker.position.y)
end

Отключение огня по союзникам
/c game.player.force.friendly_fire = false

Удаление месторождений
Удаляет все месторождения в радиусе 50x50 вокруг игрока.
/c local surface=game.player.surface
local size=50
local pos=game.player.position
for _, e in pairs(surface.find_entities_filtered{area={{pos.x-size, pos.y-size},{pos.x+size, pos.y+size}}, type="resource"})
do e.destroy()
end
Добавление месторождения нефти
Добавляет 9 источников нефти в квадрате 3×3.
/c for y=0,2 do
for x=0,2 do
game.player.surface.create_entity
({name="crude-oil", amount=100000, position={game.player.position.x+x*7-7, game.player.position.y+y*7-7}})
end
end

или случайно, без коллизий:

/c local position=nil
for i=1,9 do
position=game.player.surface.find_non
_colliding_position("crude-oil", game.player.position, 0, i/2+1.5)
if position then
game.player.surface.
create_entity({name="crude-oil", amount=100000, position=position})
end
end

Количество объектов
Количество объектов, имя которых указано в "entity".
/c local entity="belt"
local surface=game.player.surface
local count=0
for key, ent in pairs(surface.find_entities_filtered
({force=game.player.force})) do
if string.find(ent.name,entity) then
count=count+1
end
end
game.player.print(count)
Изменение мира #2
Добавление загрязнения
/c
game.player.surface.
pollute(game.player.
position, 1000000)

Определение местонахождения программируемого динамика и его хозяина
/c speakers = game.player.surface.
find_entities_filtered{force = game.player.force, type="programmable-speaker"
for key, speaker in pairs(speakers) do
game.player.print("Динамик игрока " .. speaker.last_user.name .. " расположен X=" .. speaker.position.x .. ", Y=" .. speaker.position.y)
end

Отключение огня по союзникам
/c game.player.force.friendly_fire = false

Удаление месторождений
Удаляет все месторождения в радиусе 50x50 вокруг игрока.
/c local surface=game.player.surface
local size=50
local pos=game.player.position
for _,
e in pairs(surface.
find_entities_filtered{area={{pos.x-size, pos.y-size},{pos.x+size, pos.y+size}}, type="resource"})
do e.destroy()
end
Добавление месторождения нефти
Добавляет 9 источников нефти в квадрате 3×3.
/c for y=0,2 do
for x=0,2 do
game.player.surface.create_entity
({name="crude-oil", amount=100000, position={game.player.position.x+x*7-7, game.player.position.y+y*7-7}})
end
end

или случайно, без коллизий:

/c local position=nil
for i=1,9 do
position=game.player.
surface.find_non
_colliding_position("crude-oil",
game.player.position, 0, i/2+1.5)
if position then
game.player.surface.
create_entity({name="crude-oil", amount=100000, position=position})
end
end

Количество объектов
Количество объектов, имя которых указано в "entity".
/c local entity="belt"
local surface=game.player.surface
local count=0
for key, ent in pairs(surface.find_entities_filtered
({force=game.player.force})) do
if string.find(ent.name,entity) then
count=count+1
end
end
game.player.print(count)
Изменение мира #3
Регенерация месторождений
Для твердых ресурсов, таких как железо, уничтожает все месторождения и заново создает их как при старте карты. Для жидких ресурсов, таких как нефть, возвращает доходность в изначальное состояние. Восстанавливает ресурсы на всей поверхности.
/c local surface = game.player.surface
for _, e in pairs(surface.find_entities_filtered
{type="resource"}) do
if e.prototype.infinite_resource then
e.amount = e.initial_amount
else
e.destroy()
end
end
local non_infinites = {}
for resource, prototype in pairs(game.get_filtered_entity_prototypes
{{filter="type", type="resource"}}) do
if not prototype.infinite_resource then
table.insert(non_infinites, resource)
end
end
surface.regenerate_entity(non_infinites)
for _, e in pairs(surface.find_entities_filtered
{type="mining-drill"}) do
e.update_connections()
end

Удаление скал
Удаляет все существующие скалы в мире. Используйте скрипт для отключения генерации новых скал.
/c for _, v in pairs(game.player.surface.find_entities
_filtered{type="cliff"}) do
v.destroy()
end
Выключение генерации скал
Применяется только для несгенерированных чанков. Для удаления существующих скал используйте следующий скрипт.
/c local mgs = game.player.surface.map_gen_settings
mgs.cliff_settings.cliff_elevation_0 = 1024
game.player.surface.map_gen_settings = mgs

Удаление декоративных элементов
/c game.player.surface.
destroy_decoratives({})

Изменение настроек генерации мира
Позволяет изменить настройки генерации для новых чанков; не меняет существующие чанки. Удаление чанков сбрасывает их настройки, благодаря чему, при повторном открытии они буду сгенерированы по новым правилам.

Для изменения вида ресурса, к которому необходимо применить настройки, измените переменную "resource" в соответствии с его наименованием в игре. Значение "very-high" может быть заменено на другое из списка MapGenSize. В данном коде, "iron-ore" можно заменить на "enemy-base", чтобы изменить настройки генерации ульев кусак.
/c local surface = game.player.surface
local resource = "iron-ore"
local mgs = surface.map_gen_settings
mgs.autoplace_controls[resource].size = "very-high"
mgs.autoplace_controls[resource].frequency = "very-high"
mgs.autoplace_controls[resource].richness = "very-high"
surface.map_gen_settings = mgs

Код ниже, меняет настройки генерации воды.
/c local surface = game.player.surface
local mgs = surface.map_gen_settings
mgs.water = "very-high" --[[ size]]
mgs.terrain_segmentation = "very-high" --[[ frequency]]
surface.map_gen_settings = mgs
Изменение мира #3
Регенерация месторождений
Для твердых ресурсов, таких как железо, уничтожает все месторождения и заново создает их как при старте карты. Для жидких ресурсов, таких как нефть, возвращает доходность в изначальное состояние. Восстанавливает ресурсы на всей поверхности.
/c local surface = game.player.surface
for _, e in pairs(surface.find_entities_filtered
{type="resource"}) do
if e.prototype.infinite_resource then
e.amount = e.initial_amount
else
e.destroy()
end
end
local non_infinites = {}
for resource, prototype in pairs(game.
get_filtered_entity_prototypes0
{{filter="type", type="resource"}}) do
if not prototype.infinite_resource then
table.insert(non_infinites, resource)
end
end
surface.
regenerate_entity(non_infinites)
for _, e in pairs(surface.find_entities_filtered
{type="mining-drill"}) do
e.update_connections()
end

Удаление скал
Удаляет все существующие скалы в мире. Используйте скрипт для отключения генерации новых скал.
/c for _, v in pairs(game.
player.surface.find_entities
_filtered{type="cliff"}) do
v.destroy()
end
Выключение генерации скал
Применяется только для не сгенерированных чанков. Для удаления существующих скал используйте следующий скрипт.
/c local mgs = game.player.surface.
map_gen_settings
mgs.cliff_settings.cliff_elevation_0 = 1024
game.player.surface.
map_gen_settings = mgs

Удаление декоративных элементов
/c game.player.surface.
destroy_decoratives({})

Изменение настроек генерации мира
Позволяет изменить настройки генерации для новых чанков; не меняет существующие чанки. Удаление чанков сбрасывает их настройки, благодаря чему, при повторном открытии они буду сгенерированы по новым правилам.

Для изменения вида ресурса, к которому необходимо применить настройки, измените переменную "resource" в соответствии с его наименованием в игре. Значение "very-high" может быть заменено на другое из списка MapGenSize. В данном коде, "iron-ore" можно заменить на "enemy-base", чтобы изменить настройки генерации ульев кусак.
/c local surface = game.player.surface
local resource = "iron-ore"
local mgs = surface.map_gen_settings
mgs.autoplace_controls[resource].
size = "very-high"
mgs.autoplace_controls[resource].
frequency = "very-high"
mgs.autoplace_controls[resource].
richness = "very-high"
surface.map_gen_settings = mgs

Код ниже, меняет настройки генерации воды.
/c local surface = game.player.surface
local mgs = surface.map_gen_settings
mgs.water = "very-high" --[[ size]]
mgs.terrain_segmentation = "very-high" --[[ frequency]]
surface.map_gen_settings = mgs
Враги и эволюция
Фактор эволюции
Изменяется от 0 (новая игра) до 1.
/c game.forces["enemy"].evolution_factor=X

Отключение эволюции с течением времени и увеличение эволюции от загрязнения
/c game.map_settings.enemy_evolution.time
_factor=0
/c game.map_settings.
enemy_evolution.pollution
_factor=
game.map_settings.
enemy_evolution.pollution
_factor*2
Двойка в последней строчке удваивает изначальный фактор эволюции. Это значение можно менять по своему усмотрению.

Уничтожение всех вражеских юнитов
Имейте в виду, что эта команда убьет только самих юнитов, а не их улья.
/c game.forces["enemy"].kill_all_units()

Уничтожение всех врагов
Этот скрипт уничтожает всех кусак, плевак и их улья. Любые враги будут уничтожены. Применяется только для врагов, находящихся на открытой части карты, т.о. на не открытых участках, которые будут сгенерированны после, враги остаются. Если это неприемлемо, воспользуйтесь следующим скриптом.
/c local surface=game.player.surface
for key, entity in pairs(surface.find_entities_filtered
({force="enemy"})) do
entity.destroy()
end
Уничтожение ближайших врагов
Убивает всех кусак, улья и червей в заданном радиусе. По умолчанию равен 250 клеткам, что соответствует двухкратному увеличению Full HD экрана. После уничтожения, выводит количество убитых врагов.
/c local surface=game.player.surface
local pp = game.player.position
local cnt = 0
for key, entity in pairs(surface.find_entities_filtered
({force="enemy", radius=250, position=pp })) do
cnt = cnt+1
entity.destroy()
end
game.player.print(cnt)

Мирный режим
В мирном режиме, кусаки не атакуют до тех пор, пока их не спровоцировали. Замените "true" на "false" для отключения мирного режима. Не применяется к уже существующим кусакам.
/c game.player.surface.peaceful_mode = true

Экспансия кусак
При активированной экспансии (включено по умолчанию) кусаки создают новые гнезда. Замените "true" на "false" для отключения экспансии.
/c game.map_settings.enemy_expansion.enabled = true

Отключение появления кусак в новых чанках
Отключает появление кусак в новых чанках; не применяется к уже существующим чанкам. Эквивалентно настройке "Вражеские базы" в генераторе карты при старте игры.
/c local surface = game.player.surface
local mgs = surface.map_gen_settings
mgs.autoplace_controls["enemy-base"].size = "none"
surface.map_gen_settings = mgs
Враги и эволюция
Фактор эволюции
Изменяется от 0 (новая игра) до 1.
/c game.forces["enemy"].
evolution_factor=X

Отключение эволюции с течением времени и увеличение эволюции от загрязнения
/c game.map_settings.enemy_evolution.
time_factor=0
/c game.map_settings.
enemy_evolution.pollution
_factor=
game.map_settings.
enemy_evolution.pollution
_factor*2
Двойка в последней строчке удваивает изначальный фактор эволюции. Это значение можно менять по своему усмотрению.

Уничтожение всех вражеских юнитов
Имейте в виду, что эта команда убьет только самих юнитов, а не их улья.
/c game.forces["enemy"].kill_all_units()

Уничтожение всех врагов
Этот скрипт уничтожает всех кусак, плевак и их улья. Любые враги будут уничтожены. Применяется только для врагов, находящихся на открытой части карты, т.о. на не открытых участках, которые будут сгенерированны после, враги остаются. Если это неприемлемо, воспользуйтесь следующим скриптом.
/c local surface=game.player.surface
for key, entity in pairs(surface.find_entities_filtered
({force="enemy"})) do
entity.destroy()
end
Уничтожение ближайших врагов
Убивает всех кусак, улья и червей в заданном радиусе. По умолчанию равен 250 клеткам, что соответствует двухкратному увеличению Full HD экрана. После уничтожения, выводит количество убитых врагов.
/c local surface=game.player.surface
local pp = game.player.position
local cnt = 0
for key, entity in pairs(surface.find_entities_filtered
({force="enemy", radius=250, position=pp })) do
cnt = cnt+1
entity.destroy()
end
game.player.print(cnt)

Мирный режим
В мирном режиме, кусаки не атакуют до тех пор, пока их не спровоцировали. Замените "true" на "false" для отключения мирного режима. Не применяется к уже существующим кусакам.
/c game.player.surface.peaceful_mode = true

Экспансия кусак
При активированной экспансии (включено по умолчанию) кусаки создают новые гнезда. Замените "true" на "false" для отключения экспансии.
/c game.map_settings.
enemy_expansion.enabled = true

Отключение появления кусак в новых чанках
Отключает появление кусак в новых чанках; не применяется к уже существующим чанкам. Эквивалентно настройке "Вражеские базы" в генераторе карты при старте игры.
/c local surface = game.player.surface
local mgs = surface.map_gen_settings
mgs.autoplace_controls["enemy-base"].size = "none"
surface.map_gen_settings = mgs
Характеристики игрока
Получение позиции игрока
Выводит координаты игрока.
/c game.player.print(game.player.position.x .. ", " .. game.player.position.y)

Телепортирование
Перемещает игрока в указанную позицию. Вы можете переместиться к другому игроку, если будете знать его координаты.
/c game.player.teleport({X, Y})
Для телепортации в исходную точку, введите (0,0).

Режим бога
В режиме бога удаляется персонаж игрока, позволяя перемещаться через препятствия.
Дизассоциация управления с персонажем:
/c game.player.character=nil

Удерживая курсор на персонаже, удаляет его:
/c game.player.selected.destroy()
Создает нового персонажа в точке возрождения и передает ему управление:
/c game.player.create_character()

Область действия
Позволяет увеличить область действия для строительства и взаимодействия с другими объектами. По умолчанию равна 10.
/c local reach = 10000
game.player.force.character_build_distance
_bonus = reach
game.player.force.character_reach_distance
_bonus = reach

Поиск трупов игроков
Показывает местоположение трупов игроков.
/c local found_corpses = game.player.surface.find_entities_filtered
{type="character-corpse"}
for _,corpse in pairs(found_corpses) do
local player = game.get_player(corpse.character_corpse
_player_index)
local name = player and player.name or "????"
game.player.print(name .. " --> [gps=" .. corpse.position.x .. "," .. corpse.position.y .. "]")
end
Характеристики игрока
Получение позиции игрока
Выводит координаты игрока.
/c game.player.print(game.player.
position.x .. "," .. game.player.position.y)

Телепортирование
Перемещает игрока в указанную позицию. Вы можете переместиться к другому игроку, если будете знать его координаты.
/c game.player.teleport({X, Y})
Для телепортации в исходную точку, введите (0,0).

Режим бога
В режиме бога удаляется персонаж игрока, позволяя перемещаться через препятствия.
Дизассоциация управления с персонажем:
/c game.player.character=nil

Удерживая курсор на персонаже, удаляет его:
/c game.player.selected.destroy()
Создает нового персонажа в точке возрождения и передает ему управление:
/c game.player.create_character()

Область действия
Позволяет увеличить область действия для строительства и взаимодействия с другими объектами. По умолчанию равна 10.
/c local reach = 10000
game.player.force.
character_build_distance
_bonus = reach
game.player.force.
character_reach_distance
_bonus = reach

Поиск трупов игроков
Показывает местоположение трупов игроков.
/c local found_corpses =
game.player.surface.
find_entities_filtered
{type="character-corpse"}
for _,corpse in pairs(found_corpses) do
local player = game.get_player(corpse.
character_corpse
_player_index)
local name = player and player.name or "????"
game.player.
print(name .. " --> [gps=" .. corpse.position.x
.. "," .. corpse.position.y .. "]")
end
Исследования
Очередь исследования
Включает очередь исследования для текущей команды игрока. Может быть включена после старта карты.
/c game.player.force.research_queue_enabled = true

Ускорение исследований
/c game.player.force.
laboratory_speed_modifier=1
1 нормальная скорость, 2 — двойная, 3 — тройная и т.д.

Получение рецепта
Открывает указанный рецепт.
/c game.player.force.recipes["electric-energy-interface"].enabled=true
/c game.player.force.recipes["rocket-silo"].enabled=true
/c game.player.force.recipes.loader.
enabled=true
/c game.player.force.recipes["fast-loader"].enabled = true
/c game.player.force.recipes["express-loader"].enabled = true
Отмена исследования технологии
Отменяет указанную технологию.
/c game.player.force.technologies['electric-energy-distribution-1'].researched=false; game.player.force.set_saved_technology
_progress('electric-energy-distribution-1', 0)
/c game.player.force.technologies['steel-processing'].researched=false; game.player.force.set_saved_technology
_progress('steel-processing', 0

Исследование технологии
Завершает указанную технологию.
/c game.player.force.technologies['electric-energy-distribution-1'].researched=true
/c game.player.force.technologies['steel-processing'].researched=true

Получение всех рецептов
/c for name, recipe in pairs(game.player.force.recipes) do recipe.enabled = true end
Исследования
Очередь исследования
Включает очередь исследования для текущей команды игрока. Может быть включена после старта карты.
/c game.player.force.
research_queue_enabled = true

Ускорение исследований
/c game.player.force.
laboratory_speed_modifier=1
1 нормальная скорость, 2 — двойная, 3 — тройная и т.д.

Получение рецепта
Открывает указанный рецепт.
/c game.player.force.
recipes["electric-energy-interface"].
enabled=true
/c game.player.force.recipes["rocket-silo"].
enabled=true
/c game.player.force.recipes.loader.
enabled=true
/c game.player.force.recipes["fast-loader"].
enabled = true
/c game.player.force.recipes["express-loader"].
enabled = true
Отмена исследования технологии
Отменяет указанную технологию.
/c game.player.force.
technologies['electric-energy-distribution-1'].researched=false;
game.player.force.
set_saved_technology
_progress('electric-energy-distribution-1',
0)
/c
game.player.force.
technologies['steel-processing'].
researched=false;
game.player.force.
set_saved_technology
_progress('steel-processing',
0

Исследование технологии
Завершает указанную технологию.
/c game.player.force.
technologies
['electric-energy-distribution-1'].
researched=true
/c game.player.
force.
technologies['steel-processing'].researched=true

Получение всех рецептов
/c for name,
recipe in pairs(game.player.force.recipes)
do
recipe.enabled = true end
На этом наша долгая, но ресурсоемкая статья, завершается. Используйте консоль для развлечения в конце игры или же в течение игры для облегчения вашего игрового процесса. Спасибо за внимание, переходите к нашим другим статьям.
Команда ProFactorio
This site was made on Tilda — a website builder that helps to create a website without any code
Create a website