Console
Консоль в 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))
Смотрите также
- Параметры командной строки
- http://lua-api.factorio.com/latest/ - Factorio API последней версии игры.