На других языках: Deutsch English 日本語 한국어 中文

Console

From Official Factorio Wiki
Jump to navigation Jump to search

Консоль в Factorio это интерфейс командной строки в игре. См. параметры командной строки для интрефейса командной строки исполняемых файлов.

В игре консоль может использоваться для:

  • Общения с другими игроками;
  • Редкого обновления статуса;
  • Запуска команд/скриптов/читинга.

Существует три типа команд:

  • Обычные — отображают информацию о игре и кастомизируют ваш опыт игры.
  • Мультиплеерные — фильтрация сообщений, бан игроков и др.
  • Скрипты/Читинг — запуск небольших Lua скриптов (выключит достижения для сохраненной игры).



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

Консоль отображается при переключении клавиши ~ (тильда). Вы можете изменить эти клавиши через Настройки → Управление → Базовое взаимодействие. При открытии консоли, появляется мигающий курсор внизу экрана; набрав сообщение или команду нажмите Enter, чтобы отправить его (это закроет консоль). Документацию о сообщениях и префиксах команд можно найти ниже.

Консоль поддерживает теги форматирования текста. Эти тэги полезны для передачи чертежей, отметок местоположения или добавления иконок для меток на карте и ж/д станций. Ctrl + Alt  + ЛКМ по карте или земле автоматически вставит GPS тэг и отправит в консоль. Shift + ЛКМ по большинству предметов при открытой консоли вставляет его тэг.

Когда консоль закрывается, отображается только последнее сообщение/команда, но и оно будет постепенно исчезать. Обратите внимание, что по умолчанию все выполняемые команды видны всем игрокам. Установить время задержки сообщения можно в "Настройки" → "Интерфейс" → "Прочее" → "Задержка сообщений в чате".

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

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

Обычные команды

Команда Пример Описание Только для админа
/alerts <enable/disable/mute/unmute> <alert> /alerts disable turret_fire Включить, выключить, включить оповещение или выключить его для данного типа предупреждения. Доступные предупреждения: 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 /clear Очищает консоль. Нет
/color <color> /color 20 255 255 Изменяет ваш цвет. Может быть одним из предустановленных или RGB значением в формате “# # #”. Предустановленные цвета: default, red, green, blue, orange, yellow, pink, purple, white, black, gray, brown, cyan, acid. Нет
/evolution /evolution Выводит информацию о факторе эволюции кусак. Нет
/help [command] /help Выводит список доступных команд, необязательный аргумент может указывать на конкретную команду. Нет
/h [command] /h Тоже что и /help. Нет
/mute-programmable-speaker <mute/unmute> <local/everyone> /mute-programmable-speaker mute local Включение или выключение общих звуков создаваемых программируемым динамиком. Используя “local” можно выключить локального клиента. Админ может использовать “everyone” для отключения всех звуков на сервере. Нет
/perf-avg-frames <number> /perf-avg-frames 100 Количество тиков/обновлений для вычисления средней производительности. По умолчанию равен 100. Значение 5-10 рекомендуется для лучшей сходимости, однако числа будут быстро изменяться. Нет
/permissions /permissions Открывает интерфейс прав доступа. Да
/permissions <action> <parameters> /permissions add-player DeveloperGroup kovarex Доступные действия: 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 Да
/reset-tips /reset-tips Сброс статуса, как если бы игра только начиналась. Нет
/screenshot [x resolution] [y resolution] [zoom] /screenshot Делает скриншот, скрывая интерфейс, центрируя его по игроку. Скриншот сохраняется в "script-output" подкаталок в директории приложения. Разрешение указывать необязательно. По умолчанию оно соответствует размеру текущего окна. Увеличение по умолчанию равно 1. Нет
/seed /seed Выводит зерно карты. Нет
/time /time Выводит информацию о времени игры. Нет
/toggle-action-logging /toggle-action-logging Переключает действий игры в журнал. Это значение не сохраняется между перезапусками игры и имеет эффект только в локальной игре в мультиплеере Да
/toggle-heavy-mode /toggle-heavy-mode Делает игру медленной, а мультиплеер невозможным. Для изучения темы см. desyncs. Да
/unlock-shortcut-bar /unlock-shortcut-bar Разблокирует все элементы панели ярлыков, включая импорт строки чертежей, копирования и вставки, планы деконструкции и обновления. Нет
/unlock-tips /unlock-tips Откроет все подсказки и советы. Нет
/version /version Выводит текущую версию игры. Нет

Мультиплеерные команды

Команда Пример Описание Только для админа
<message> Всем привет! Если ввод текста в консоли не начинается с символа /, то оно обрабатывается как сообщение другим игрокам. Нет
/admin /admin Открывает интерфейс игроков. Да
/ban <player> <reason> /ban xTROLLx Throwing grenades in base Выдача бана конкретному игроку. Да
/bans /bans Выводит список забаненых игроков. Нет
/banlist <add/remove/get/clear> <player> /banlist get Добавляет или удаляет игрока из банлиста. Тоже что и /ban или /unban. Нет
/config <get/set> <option> <value> /config set password hunter2 Выводит или устанавливает различные настройки мультиплеера. Доступные настройки: 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> /delete-blueprint-library everybody confirm Удаляет содержимое библиотеки чертежей выбранного игрока находящегося в не сети. Ввод “everybody confirm” удаляет содержимое библиотеки для всех игроков. Да
/demote <player> /demote AzureDiamond Снимает с игрока права админа. Да
/ignore <player> /ignore Cthon98 Игнорирует сообщения от выбранного игрока. Не работает для на админе. Нет
/ignores /ignores Выводит список игнорируемых игроков. Нет
/kick <player> <reason> /kick xTROLLx Throwing grenades in base Кикает выбранного игрока. Да
/mute <player> /mute Cthon98 Запрещает отправление сообщений в чат выбранному игроку. Да
/mutes /mutes /mute для всех игроков. Нет
/open <player> /open AzureDiamond Открывает инвентарь другого игрока. Да
/o <player> /o AzureDiamond Тоже, что и /open. Да
/players [online/o/count/c] /players Выводит список всех игроков в игре. (параметр online/o выводит только тех игроков, которы находятся в онлайне; count/c выводит только количество игроков) Нет
/p [online/o/count/c] /p o c Тоже, что и /players. Нет
/promote <player> /promote AzureDiamond Наделяет игрока правами админа. Да
/purge <player> /purge Cthon98 Удаляет все сообщения от игрока из истории чата. Да
/reply <message> /reply oh, really? Ответ предыдущему игроку, который упомянул вас. Нет
/r <message> /r oh, really? Тоже, что и /reply. Нет
/server-save /server-save Сохраняет игру на сервере в мультиплеере. Да
/shout <message> /shout Hello world! Отправляет сообщение всех игрокам, включая другие стороны. Нет
/s <message> /s Hello world! Тоже, что и /shout. Нет
/swap-players <player> [player] /swap-players AzureDiamond Переключение между своим персонажем и персонажем другого игрока или переключение между персонажами выбранных игроков. Да
/unban <player> /unban xTROLLx Разбан игрока. Да
/unignore <player> /unignore Cthon98 Разрешает получение сообщений от игрока. Нет
/unmute <player> /unmute Cthon98 Разрешает отправлять игроку сообщения в чат. Да
/whisper <player> <message> /whisper AzureDiamond that's what I see Отправляет сообщение выбранному игроку. Нет
/w <player> <message> /w AzureDiamond that's what I see Тоже, что и /whisper. Нет
/whitelist <add/remove/get/clear> [player] /whitelist get Добавляет или удаляет игрока из вишлиста (белый список), списка игроков, которые могут присоединится к игре. Ввод “get” без имени игрока выводит список игроков отмеченных в вишлисте. Пустой вишлист означает, что к игре могут присоединится все желающие. Нет

Скрипты и читы

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

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

Базовые примеры скриптов

Калькулятор

/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

Манипуляции с инвентарем

Чит режим

Бесконечный крафт предметов. Чтобы отключить эту функцию, необходимо 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	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

Изменение мира

Открытие карты вокруг игрока

Открытие карты вокруг игрока похоже на действие радара.

/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

Открытие всей сгенерированной карты

Открытие всей сгенерированной карты для всех игроков.

/c game.player.force.chart_all()

Удаление чанков

При увеличении площади открытой карты, растет размер сохраняемого файла. Код ниже предотвращает генерацию всех чанков в очереди на генерацию и удаляет все чанки находящиеся дальше 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.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 game.player.surface.clear_pollution()

Полное отключение загрязнения

/c for _, surface in pairs(game.surfaces) do
  surface.clear_pollution()
end
game.map_settings.pollution.enabled = false

Добавление загрязнения

/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

Генерация нового месторождения

Код ниже создает месторождение размером 11×11 на клетках без воды с центром соответствующим местоположению игрока. Месторождение создается в форме идеального квадрата, однако генерация количества ресурсов в клетке соответствует естественной генерации: больше в центре, меньше по краям. По умолчанию, ресурсоемкость месторождения равна 25000-30000 единиц.

Если вы хотите увеличить размер месторождения, измените переменную "local size". С размером месторождения экспоненциально растет его ресурсоемкость. Значение "local size" более 30 не рекомендуется.

Если вы хотите увеличить ресурсоемкость месторождения, измените переменную "local density". Ввод очень больших чисел не должно ничего повредить, но, возможно, нет смысла превышать 100.

Для выбора вида ресурса, замените "stone" на "iron-ore", "copper-ore", "coal", или "uranium-ore".

/c local surface=game.player.surface
local ore=nil
local size=5
local density=10
for y=-size, size do
	for x=-size, size do
		a=(size+1-math.abs(x))*10
		b=(size+1-math.abs(y))*10
		if a<b then
			ore=math.random(a*density-a*(density-8), a*density+a*(density-8))
		end
		if b<a then
			ore=math.random(b*density-b*(density-8), b*density+b*(density-8))
		end
		if surface.get_tile(game.player.position.x+x, game.player.position.y+y).collides_with("ground-tile") then
			surface.create_entity({name="stone", amount=ore, position={game.player.position.x+x, game.player.position.y+y}})
		end
	end
end

Удаление месторождений

Удаляет все месторождения в радиусе 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

Регенерация месторождений

Для твердых ресурсов, таких как железо, уничтожает все месторождения и заново создает их как при старте карты. Для жидких ресурсов, таких как нефть, возвращает доходность в изначальное состояние. Восстанавливает ресурсы на всей поверхности.

/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

Создание рыб

Создает 10 рыб вокруг игрока. Игрок должен находится у воды.

/c local player = game.player
local surface = player.surface
for i = 1, 10 do
  local position = surface.find_non_colliding_position('fish', player.position, 10, 1)
  if not position then return end
  surface.create_entity {name = 'fish', position = position}
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)

Выключение генерации скал

Применяется только для несгенерированных чанков. Для удаления существующих скал используйте следующий скрипт.

/c local mgs = game.player.surface.map_gen_settings
mgs.cliff_settings.cliff_elevation_0 = 1024
game.player.surface.map_gen_settings = mgs

Удаление скал

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

/c for _, v in pairs(game.player.surface.find_entities_filtered{type="cliff"}) do
  v.destroy()
end

Удаление декоративных элементов

/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

Характеристики игрока

Команды касающиеся непосредственно персонажа игрока.

Получение позиции игрока

Выводит координаты игрока.

/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.technologies['electric-energy-distribution-1'].researched=true
/c game.player.force.technologies['steel-processing'].researched=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.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 for name, recipe in pairs(game.player.force.recipes) do recipe.enabled = true end

Инструменты для моддинга

Список всех объектов и предметов игры можно найти в data.raw.

Доступ к данным мода

__rso-mod__ — это название мода в формате __mod-name__. Указание __mod-name__ в начале строки заставляет работать код в контексте указанного мода. Ниже представлен код, выводящий информацию моде Resource Spawner Overhaul.

/c __rso-mod__ game.player.print(serpent.dump(global))

Вывод в консоль типа клетки, на которой находится игрок

/c game.player.print(game.player.surface.get_tile(game.player.position).name)

Вывод всех исследованных технологий в файл

Файл отправится в директорию приложения в подкаталог "script-output".

/c local list = {}
for _, tech in pairs(game.player.force.technologies) do 
	if tech.researched then
    list[#list+1] = tech.name
  end
end
game.write_file("techs.lua", serpent.block(list) .. "\n", true)

Вывод всех доступных рецептов в файл

Файл отправится в директорию приложения в подкаталог "script-output".

/c local list = {}
for _, recipe in pairs(game.player.force.recipes) do 
	if recipe.enabled then
    list[#list+1] = recipe.name
  end
end
game.write_file("recipes.lua", serpent.block(list) .. "\n", true)

Вывод списка модов в файл

Записывает все текущие активные моды и их версии в файл script-output/mods.txt находящейся в директории приложения.

/c game.write_file("mods.txt", serpent.block(game.active_mods))

Смотрите также