In other languages: Deutsch English 한국어 Русский 简体中文

Console/ja: Difference between revisions

From Official Factorio Wiki
Jump to navigation Jump to search
(英語版のページにあるスクリプトを一部移植。)
(updated for latest version.)
Line 1: Line 1:
{{Languages}}
{{Languages}}{{Translation verification|revisionID=199188}}
== 概要 ==
'''コンソール'''はFactorioのゲーム内コマンドラインインターフェースである。Factorio起動時のコマンドラインインターフェースについては、[[command line parameters/ja|コマンドラインパラメータ]]を参照すること。
'''コンソール(Console)'''はFactorioのコマンドラインインターフェース。


ゲーム内コンソール(in-game console)は以下に用いられる。
ゲーム内コンソールは以下に用いられる。


* 他プレイヤーとのチャット
* 他プレイヤーとのチャット
* 時々の近況報告(ゲームの状況を知らせるメッセージのこと)
* コマンド/スクリプト/チートの実行
* コマンド/スクリプト/チートの実行
* ときどきステータス更新


以下の3種のコマンドがある。
以下の3種のコマンドがある。


* '''マルチプレイヤー(Multiplayer)''' - メッセージフィルタリング、ユーザBAN、などなど
* '''[[#通常コマンド|通常]]''' - ゲームに関する情報を表示し、ゲーム体験をカスタマイズする。
* '''情報(Information)''' - ゲームに関する様々な情報を表示
* '''[[#マルチプレイヤーコマンド|マルチプレイヤー]]''' - メッセージフィルタ、ユーザの禁止など。
* '''スクリプト/チート(Scripting/Cheating)''' - Luaスクリプト片を実行 (<span style="color:#FF0000">そのセーブで実績が無効になる</span>)
* '''[[#スクリプトとチートコマンド|スクリプト/チート]]''' - 小さなLuaスクリプトを実行する。(ただし、<span style="color:#FF0000">このゲームでは実績が無効化される</span>)
 
__TOC__


=== コンソールの利用 ===
=== コンソールの利用 ===
コンソール窓は{{keybinding|/}}(スラッシュ)か{{keybinding|~}}(チルダ)キーで切り替えられる。
コンソール窓は、{{Keybinding|grave}}(全角/半角)キーで表示を切り替えられる。このキーは、<code>1</code>キーの左側か、<code>Tab</code>の上にある。


キー設定は'''Options Menu -> Keyboard -> Toggle Lua console'''から設定可能。
このキーは、'''設定メニュー → コントロール → チャット(Luaコンソール)の表示'''から変更できる。
コンソールが開いている間、スクリーン下部でカーソルが点滅する。メッセージやコマンドを入力して'''Return'''を押すと送信(してコンソールも閉じる)。
コンソールが開いている間、スクリーン下部でカーソルが点滅する。メッセージやコマンドを入力して'''Return'''を押すと送信する(また、コンソールも閉じる)。
メッセージやコマンドプレフィックスに関するドキュメントはこのページの更に下にある。
メッセージやコマンドプレフィックスに関するドキュメントはこのページの更に下にある。
コンソールでは[[rich text/ja|リッチテキスト]]タグが使用できる。これらのタグは、建設計画を共有したり、マップの場所に印をつけたり、マーカーや駅のアイコンをマップに追加したりするのに役立つ。Ctrl + Alt を押しながらマップや地面をクリックすると、自動的にGPSタグが挿入され、コンソールに送信される。コンソールを開いた状態で、大半のものをShiftを押しながらクリックすると、クリックしたもののタグがコンソールに挿入される。


コンソールを閉じると最後のメッセージ/コマンドだけが表示されるが、徐々に消えていく(コンソールを開き直すと即座に直近のメッセージすべてが再表示される)。
コンソールを閉じると最後のメッセージ/コマンドだけが表示されるが、徐々に消えていく(コンソールを開き直すと即座に直近のメッセージすべてが再表示される)。
デフォルトでは、全ての実行されたコマンドは全ユーザに見える。消える時間は'''Options Menu -> Other Settings -> Message Delay'''から設定可能。
デフォルトでは、全ての実行されたコマンドは全ユーザに見える。消える時間は'''設定メニュー → インターフェース → 会話メッセージ表示時間'''から設定できる。


コンソールを即座に隠したい場合、コンソールを開いて'''Escape''' キーを押す(か、メッセージやコマンドを入力しないまま'''Return''')。
これはコンソールを隠すだけでなく、直近のメッセージ/コマンドすべてを隠す。
コンソールは'''/clear'''コマンドでクリアできる。
コンソールは'''/clear'''コマンドでクリアできる。


コンソールはゲームコマンド(game command)同様、生Luaコードも受け付けることを覚えておこう。
履歴内を移動するには、{{keybinding|&uarr;}}と{{keybinding|&darr;}}キーを使用する。{{keybinding|Tab}}キーはコマンドやプレイヤー名をオートコンプリートする。
 
=== コンソール履歴 ===


コンソールは備え付けの履歴を持つ。ややテキストエディタっぽく、一度に1行のテキストしか表示されない。
== 通常コマンド ==


{{keybinding|&uarr;}}と{{keybinding|&darr;}}キーで履歴内を移動。
{| class="wikitable"
|-
! style="width:25%"| コマンド
! style="width:25%"| 例
! style="width:46%"| 説明
! style="width:4%"| 管理者のみ
|-
| /alerts <enable/disable/mute/unmute> <alert>
| /alerts disable turret_fire
| 指定した[[alerts/ja|警報]]種別を有効化・無効化・ミュート・ミュート解除する。以下の種類が指定できる。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
| No
|-
| /clear
| /clear
| コンソールをクリアする。
| No
|-
| /color <color>
| /color 20 255 255
| あなたの色を変更する。事前に決まっている色か、“# # #”形式の[[:Wikipedia:ja:色空間|RGB値]]のどちらでもよい。以下の色が利用できる。default, red, green, blue, orange, yellow, pink, purple, white, black, gray, brown, cyan, acid
| No
|-
| /enable-research-queue
| /enable-research-queue
| [[research/ja|研究]]の待ち行列を有効化する。
| Yes
|-
| /evolution
| /evolution
| [[enemies/ja#進化|敵]]の進化因子を表示する。
| No
|-
| /help [コマンド]
| /help
| 利用可能なコマンドの一覧を表示する。オプション引数のコマンド名を指定すると、詳細な説明が表示される。
| No
|-
| /h [コマンド]
| /h
| /help と同じ。
| No
|-
| /mute-programmable-speaker <mute/unmute> <local/everyone>
| /mute-programmable-speaker mute local
| [[Programmable speaker/ja|プログラマブルスピーカー]]が発するグローバル音声をミュートまたはミュート解除する。"local"を使用すると、自分自身にのみ適用される。管理者は "everyone" を使用する事ができ、サーバ上の全員に対して音声をミュートできる。
| No
|-
| /perf-avg-frames <number>
| /perf-avg-frames 100
| 平均的な性能を計測するために使用する、指定したティック数の間の更新回数。既定値は100である。すばやく収束させるには、5-10の値が推奨だが、数値はもっと小刻みに変動する。
| No
|-
| /permissions
| /permissions
| [[permissions/ja|権限]]のGUIを開く。
| Yes
|-
| /permissions <action> <parameters>
| /permissions add-player DeveloperGroup kovarex
| 利用可能な action は以下の通り。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
| Yes
|-
| /reset-tips
| /reset-tips
| ヒントの状態を、初めてゲームを開始したかのような状態にリセットする。
| No
|-
| /screenshot [x 解像度] [y 解像度] [倍率]
| /screenshot
| GUIを非表示にし、プレイヤーを中心にしてスクリーンショットを撮影する。画像は、[[Application directory/ja#ユーザーデータディレクトリ|ユーザーデータディレクトリ]]の中の"script-output"フォルダに保存される。解像度はオプションで、既定値は現在のウィンドウサイズとなる。倍率も任意で、規定値は1である。
| No
|-
| /seed
| /seed
| 開始マップのシード値を表示する。
| No
|-
| /time
| /time
| このマップをプレイしている時間を表示する。
| No
|-
| /toggle-action-logging
| /toggle-action-logging
| ゲームでの入力操作をすべて記録するモードを切り替える。この設定は、ゲームを再開すると消えてしまい、マルチプレイヤーでは自分自身にしか作用しない。
| Yes
|-
| /toggle-heavy-mode
| /toggle-heavy-mode
| [[Desynchronization#Using_heavy_mode_command|非同期化(英語)]]の調査のために使用する。ゲームが低速化し、マルチプレイヤーは遊べなくなる。
| Yes
|-
| /unlock-shortcut-bar
| /unlock-shortcut-bar
| 建設計画のインポート・コピー&ペースト・解体プランナー・アップグレードプランナーを含む、すべての[[shortcut bar/ja|ショートカットバー]]アイテムを解放する。
| No
|-
| /unlock-tips
| /unlock-tips
| すべてのヒントを解放する。
| No
|-
| /version
| /version
| 現在のゲームバージョンを表示する。
| No
|-
|}


{{keybinding|&larr;}}と{{keybinding|&rarr;}}キーで現在表示している編集(削除、挿入など)対象のメッセージやコマンド内でカーソルを移動、ならびに再送信('''Return'''を押す)。
== マルチプレイヤーコマンド ==
{| class="wikitable"
|-
! style="width:25%"| コマンド
! style="width:25%"| 例
! style="width:46%"| 説明
! style="width:4%"| 管理者のみ
|-
| <message>
| Hello team!
| {{keybinding|/}}で始まらない入力は、チャットメッセージとして自分のチームに表示される。
| No
|-
| /admin
| /admin
| プレイヤー管理GUIを開く。
| Yes
|-
| /admins
| /admins
| ゲーム管理者の一覧を表示する。
| No
|-
| /ban <player> <reason>
| /ban xTROLLx Throwing grenades in base
| 特定のプレイヤーをBANする。
| Yes
|-
| /banlist <add/remove/get/clear> <player>
| /banlist get
| プレイヤーをBANリストに追加または削除する。/ban や /unban と同じ。
| No
|-
| /config
| /config
| サーバ管理GUIを開く。
| Yes
|-
| /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 afk-auto-kickとautosave-intervalオプションの単位は分である。
| Yes
|-
| /delete-blueprint-library <player>
| /delete-blueprint-library everybody confirm
| 指定されたオフラインプレイヤーの建設計画のライブラリをセーブファイルから削除する。"everybody confirm" を入力すると、すべてのオフラインプレイヤーのデータが削除される。
| Yes
|-
| /demote <player>
| /demote AzureDiamond
| プレイヤーを管理者から降格させる。
| Yes
|-
| /ignore <player>
| /ignore Cthon98
| プレイヤーからのメッセージ表示を抑止する。管理者のメッセージは表示される。
| No
|-
| /ignores
| /ignores
| 無視された(メッセージ表示を抑止された)プレイヤーの一覧を表示する。
| No
|-
| /kick <player> <reason>
| /kick xTROLLx Throwing grenades in base
| 特定のプレイヤーを追放する。
| Yes
|-
| /mute <player>
| /mute Cthon98
| プレイヤーがチャットで発言することを禁止する。
| Yes
|-
| /open <player>
| /open AzureDiamond
| 他のプレイヤーのインベントリを開く。
| Yes
|-
| /o <player>
| /o AzureDiamond
| /open と同じ。
| Yes
|-
| /players [online/o/count/c]
| /players
| ゲーム中のプレイヤーリストを表示する。(online/o パラメータはオンラインのプレイヤーのみ、count/c は人数のみ表示する)
| No
|-
| /p [online/o/count/c]
| /p o c
| /players と同じ。
| No
|-
| /promote <player>
| /promote AzureDiamond
| プレイヤーを管理者に昇格させる。
| Yes
|-
| /purge <player>
| /purge Cthon98
| このプレイヤーからのすべてのメッセージをチャットログから削除する。
| Yes
|-
| /reply <message>
| /reply oh, really?
| 最後にあなたに囁いたプレイヤーに返信する。
| No
|-
| /r <message>
| /r oh, really?
| /reply と同じ。
| No
|-
| /server-save
| /server-save
| サーバ上にマルチプレイヤーゲームを保存する。
| Yes
|-
| /shout <message>
| /shout Hello world!
| 他の勢力も含めて、全プレイヤーにメッセージを送信する。
| No
|-
| /s <message>
| /s Hello world!
| /shout と同じ。
| No
|-
| /swap-players <player> [player]
| /swap-players AzureDiamond
| あなたのキャラクターと指定したプレイヤーのキャラクターを入れ替える。プレイヤーを2つ指定した場合、2人のプレイヤーキャラクターを入れ替える。
| Yes
|-
| /unban <player>
| /unban xTROLLx
| 特定のプレイヤーのBANを解除する。
| Yes
|-
| /unignore <player>
| /unignore Cthon98
| 指定したプレイヤーのメッセージが表示されるようにする。
| No
|-
| /unmute <player>
| /unmute Cthon98
| プレイヤーがチャットで会話できるようにする。
| Yes
|-
| /whisper <player> <message>
| /whisper AzureDiamond that's what I see
| 特定のプレイヤーにメッセージを送信する。
| No
|-
| /w <player> <message>
| /w AzureDiamond that's what I see
| /whisper と同じ。
| No
|-
| /whitelist <add/remove/get/clear> [player]
| /whitelist get
| ホワイトリストにプレイヤーを追加または削除する。ホワイトリストに入っているプレイヤーのみゲームに参加できる。"get"を使用するとき、"player"に何も入れないと、ホワイトリストに入っているプレイヤーの一覧を表示する。ホワイトリストが空になると、ホワイトリストの機能が無効化され、誰でも参加可能になる。
| No
|}


{{keybinding|Tab}}キーはコマンドやプレイヤーIDをオートコンプリートする。
== スクリプトとチートコマンド ==
{| class="wikitable"
|-
! コマンド
! 説明
|-
| /cheat <all>
| すべてのテクノロジーを研究し、チートモードを有効化する。'''all'' オプションを使うと、プレイヤーに追加のアイテムを与える。
|-
| /command <command>
| (可能なら) Luaコマンドを実行する。
|-
| /c <command>
| (可能なら) Luaコマンドを実行する。
|-
| /editor
| マップエディタを切り替える。
|-
| /measured-command <command>
| (可能なら) Luaコマンドを実行し、かかった時間を計測する。
|-
| /mc <command>
| (可能なら) Luaコマンドを実行し、かかった時間を計測する。
|-
| /silent-command <command>
| (可能なら) Luaコマンドを実行し、コンソールには何も出力しない。
|-
| /sc <command>
| (可能なら) Luaコマンドを実行し、コンソールには何も出力しない。
|}


== マルチプレイヤーチャット ==
これは非常に強力な機能だが、不正行為も可能であるため、スクリプト・コマンドを使用した時点で、<span style="color:#FF0000">セーブ中の実績は永久に無効</span>となる。
 
特定のプレイヤーにプライベートメッセージを送るには'''/whisper''' (または'''/w'''):
<syntaxhighlight lang="lua">
/whisper <playerId> <message>
</syntaxhighlight>
 
最後にプライベートメッセージを受け取ったプレイヤーに返信するには'''/reply''' (または'''/r'''):
<syntaxhighlight lang="lua">
/reply <message>
</syntaxhighlight>
 
グループチャットは以下のように機能する:
<syntaxhighlight lang="lua">
hello my team!
</syntaxhighlight>
<syntaxhighlight lang="lua">
/s hello all players!
/shout same as /s
</syntaxhighlight>
 
これらはメインのチャット機能にすぎない。プレイヤーのBAN、無視、ミュートなどのオプションもある。完全なリストはコンソールで'''/help'''。
 
== コマンド ==
利用可能なコマンドのリストを見るには、コンソールで'''/help''' (または'''/h''')を入力。
利用可能なコマンドはFactorioのバージョンとゲームセットアップに依る。
<syntaxhighlight lang="lua">
/help
</syntaxhighlight>
 
[https://forums.factorio.com/viewtopic.php?f=3&t=32248 Factorio 0.14.4以降]では、'''/help'''コマンドは単にコマンドのリストを表示するだけである。コマンドの完全な詳細を得るにはコマンド名(スラッシュを除く)を'''/help''' (または'''/h''')の後に加える。例えば、 '''/evolution'''コマンドのヘルプは:
<syntaxhighlight lang="lua">
/h evolution
</syntaxhighlight>
 
=== スクリプト/チートコマンド ===
コンソールからLuaスクリプトを実行できる。
任意のコマンドラインインターフェースやブラウザのJavaScriptコンソールに類似した挙動をする。
 
これは非常に強力な機能で、チートもでき、なのでスクリプトコマンドを使用した瞬間<span style="color:#FF0000">実績はそのセーブに対して永続的に無効化される</span>
 
スクリプトを実行するには、'''/command''' (または'''/c''')を前置する。例えば:
<syntaxhighlight lang="lua">
/c game.player.print 'hello me!'
</syntaxhighlight>
 
マルチプレイヤーゲームでは、adminのみがコマンドを利用可能で、コマンドは他の全プレイヤーにechoする。
 
マルチプレイヤーのserver adminは(RCON/server consoleからのみ)'''/c'''の代わりに'''/silent-command''' を用いることで、他のプレイヤーにechoされるのを防ぐことができる。
<syntaxhighlight lang="lua">
/silent-command game.player.print 'only admins can use (and see) silent commands'
</syntaxhighlight>
 
Mod製作者もまた、特別なコマンド'''/measured-command'''を利用可能。これは'''/c'''に似ているが、実行時間を測定する。
スクリプトのパフォーマンスチューニングにとても便利。
<syntaxhighlight lang="lua">
/measured-command game.player.print 'how much time does this take to run?'
</syntaxhighlight>
 
「スクリプトレット(scriptlets)」をコンソールにペーストする際、改行は無視される。
つまり、エディタではヒューマンリーダブルな形式で書いておいてコンソールにコピペできるので、理解と編集がちょっと楽になる。


== 基本的なコマンドと例 ==
== 基本的なコマンドと例 ==


=== 大きいスクリーンショット ===
=== 計算機として使う ===
 
HD画質のスクリーンショットを取る方法は以下。
 
ファイルはmodsフォルダ同様、[[application directory/ja]]の「script-output」と呼ばれるフォルダに置かれる。
画像はとても巨大になりうる。
<syntaxhighlight lang="lua">
<syntaxhighlight lang="lua">
/c game.take_screenshot{<parameter>=<value>,...}
/c game.player.print(1234*5678)
</syntaxhighlight>
</syntaxhighlight>


このコマンドは以下のパラメータを取る。
=== 通常よりズームアウトする ===
 
ズームアウトしすぎるとパフォーマンスに問題を起こしかねないので注意。
* showgui - Boolean値、 trueかfalse。 TrueならGUIがスクリーンショットに含まれる。
* resolution - xとyを{x = ''<x-size>'', y = ''<y-size>''}の形式で取る。
* show_entity_info - Boolean値、 Trueならalt infoがスクリーンショットに含まれる。
* zoom - ズームレベル。1は通常、2はエリアの半分にズームイン、0.5は倍のエリアにズームアウト、など。
 
例として、以下は1000x1000のスクリーンショットをalt-modeをONにして、でもGUIは表示せず、ズームレベル2で撮る。
<syntaxhighlight lang="lua">
<syntaxhighlight lang="lua">
/c game.take_screenshot{resolution = {x = 1000, y = 1000}, zoom = 2, show_entity_info = true}
/c game.player.zoom=0.1
</syntaxhighlight>
 
=== 計算機として使う ===
<syntaxhighlight lang="lua">
/c game.player.print(1234*5678)
</syntaxhighlight>
</syntaxhighlight>


Line 147: Line 368:
</syntaxhighlight>
</syntaxhighlight>


次節のコマンドでUndo。
次節のコマンドでUndoできる。
 
注:特定のテクノロジーは、[[map editor/ja|マップエディタ]]を使って、テクノロジーのGUIで「研究開始」をShift+クリックすることで研究できる。


=== 全研究を未研究に ===
=== 全研究を未研究に ===
Line 154: Line 377:
/c for _, tech in pairs(game.player.force.technologies) do  
/c for _, tech in pairs(game.player.force.technologies) do  
tech.researched=false
tech.researched=false
game.player.force.set_saved_technology_progress(tech, 0)
end
end
</syntaxhighlight>
</syntaxhighlight>
注:特定のテクノロジーは、[[map editor/ja|マップエディタ]]を使って、テクノロジーのGUIで「未研究に」をクリックすることで未研究にできる。
=== 強さリセット ===
=== 強さリセット ===
キル数、生産統計、技術、ボーナス、マップ状況を含む強さを全リセットする。
キル数、生産統計、技術、ボーナス、マップ状況を含む強さを全リセットする。
Line 163: Line 388:
</syntaxhighlight>
</syntaxhighlight>


=== 通常よりズームアウトする ===
=== 常にレールブロック視覚化を表示する ===
ズームアウトしすぎるとパフォーマンスに問題を起こしかねないので注意。
列車用信号を手に持っているときだけでなく、レールブロックの視覚化を恒久的に表示する。trueをfalseに置き換えて無効にする。
 
<syntaxhighlight lang="lua">
<syntaxhighlight lang="lua">
/c game.player.zoom=0.1
/c game.player.game_view_settings.show_rail_block_visualisation = true
</syntaxhighlight>
</syntaxhighlight>


=== プレイ時間 ===
=== すべての列車を自動モードにセットする ===
何時間何分何秒プレイしたか教えてくれる。
すべての列車を自動モードにセットする。例えば、建設計画から配置したあとなど。
 
<syntaxhighlight lang="lua">
<syntaxhighlight lang="lua">
/time
/c for key,ent in pairs (game.player.surface.find_entities_filtered{name="locomotive"}) do
    ent.train.manual_mode = false
end
</syntaxhighlight>
</syntaxhighlight>


== インベントリ操作 ==
== インベントリ操作スクリプト ==
 
=== チートモード ===
無限・無料製作を可能にする。trueをfalseにすれば無効化できる。
<syntaxhighlight lang="lua">
/c game.player.cheat_mode=true
</syntaxhighlight>


=== 資源の補充(油、鉄など) ===
=== 資源の補充(油、鉄などの補充) ===
ゲーム内の資源タイルにマウスオーバーした状態で
ゲーム内の資源タイルにマウスオーバーした状態で実行する。
<syntaxhighlight lang="lua">
<syntaxhighlight lang="lua">
/c game.player.selected.amount=7500
/c game.player.selected.amount=7500
</syntaxhighlight>
以下のコマンドで、マップ上のすべての資源を補充する。ore.amount を希望する値に変更すること。
<syntaxhighlight lang="lua">
/c surface = game.player.surface
for _, ore in pairs(surface.find_entities_filtered({type="resource"})) do
    ore.amount = 10000
end
</syntaxhighlight>
</syntaxhighlight>


=== プレイヤーのインベントリにアイテム追加 ===
=== プレイヤーのインベントリにアイテム追加 ===
iron-plateの部分を欲しいアイテムの内部名称に置換して使うべし。
iron-plateの部分を欲しいアイテムの[[data.raw|内部名称(英語)]]に置換して使うべし。
(内部名称を知りたい場合、Wikiでそのアイテムのページに行き、Internal name の項目を見る)
<syntaxhighlight lang="lua">
<syntaxhighlight lang="lua">
/c game.player.insert{name="iron-plate", count=100}
/c game.player.insert{name="iron-plate", count=100}
</syntaxhighlight>
</syntaxhighlight>


例えば、エネルギーシステムのgod-modeインタフェースは以下。
例えば、エネルギーシステムの神モードインタフェースは以下のようにする。
<syntaxhighlight lang="lua">
<syntaxhighlight lang="lua">
/c game.player.insert{name="electric-energy-interface"}
/c game.player.insert{name="electric-energy-interface"}
</syntaxhighlight>
</syntaxhighlight>
神モードアイテムは、以下のものがある。
* <code>infinity-chest</code>
* <code>infinity-pipe</code>
* <code>electric-energy-interface</code>
* <code>heat-interface</code>


装備品付きで強力アーマーゲットだぜ。
装備品付きで強力アーマーゲットだぜ。
Line 214: Line 464:
</syntaxhighlight>
</syntaxhighlight>


=== チートモード ===
=== プレイヤーのインベントリスロットを増やす ===
無限・無料製作。trueをfalseにすれば無効化。
あなたの勢力のプレイヤー全員のインベントリに100スロット追加する。[[Toolbelt (research)/ja|ツールベルト]]でも使用している。
<syntaxhighlight lang="lua">
<syntaxhighlight lang="lua">
/c game.player.cheat_mode=true
/c game.player.force.character_inventory_slots_bonus=100
</syntaxhighlight>
</syntaxhighlight>


== ワールド操作 ==
== ワールド操作スクリプト ==


=== プレイヤー周辺のマップを確認 ===
=== プレイヤー周辺のマップを表示 ===


[[radar/ja|レーダー]]風にプレイヤー周辺のマップを確認。
[[radar/ja|レーダー]]風にプレイヤー周辺のマップを表示する。
<syntaxhighlight lang="lua">
<syntaxhighlight lang="lua">
/c local radius=150
/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}})
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}})
</syntaxhighlight>
</syntaxhighlight>
もしくはスタートポジションから
もしくはスタート地点から
<syntaxhighlight lang="lua">
<syntaxhighlight lang="lua">
/c game.forces.player.chart(game.player.surface, {{x = -2000, y = -2000}, {x = 2000, y = 2000}})
/c game.forces.player.chart(game.player.surface, {{x = -2000, y = -2000}, {x = 2000, y = 2000}})
</syntaxhighlight>
</syntaxhighlight>
150は好きな半径に変更して構わない。大きくすればするほど時間食うけど。
150は好きな半径に変更して構わない。大きくすればするほど時間食うけど。
=== 表示されたマップを隠す ===
マップ表示の逆で、表示されたすべてのチャンクを隠す。
<syntaxhighlight lang="lua">
/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
</syntaxhighlight>
=== 生成済みのマップをすべて表示 ===
プレイヤーのチームに、生成済みのマップ全てを表示する。
<syntaxhighlight lang="lua">
/c game.player.force.chart_all()
</syntaxhighlight>


=== チャンクを削除 ===
=== チャンクを削除 ===
確認されたマップが大きくなるとセーブファイルのサイズも増える。以下のコマンドで現在キューされているチャンク生成をすべてキャンセルし 0,0 周辺の半径32チャンク以外を除去する。
表示されたマップが大きくなるとセーブファイルのサイズも増える。以下のコマンドで現在キューされているチャンク生成をすべてキャンセルし 0,0 周辺の半径32チャンク以外を除去する。当該チャンク内のプレイヤーのものも除去される事に注意。
当該チャンク内のプレイヤーのものも除去される事に注意。
<syntaxhighlight lang="lua">
<syntaxhighlight lang="lua">
/c local surface = game.player.surface;
/c local surface = game.player.surface;
Line 248: Line 515:
end  
end  
</syntaxhighlight>
</syntaxhighlight>
=== 非表示のチャンクを削除 ===
このコマンドは、プレイヤーに表示されていないチャンクを削除する。[[#表示されたマップを隠す|表示されたマップを隠す]]コマンドのあとに使うと、レーダーがカバーしていないチャンクを削除できる。
<syntaxhighlight lang="lua">/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</syntaxhighlight>


=== 夜をオフ ===
=== 夜をオフ ===
Line 261: Line 538:
</syntaxhighlight>
</syntaxhighlight>


=== 高コスト(マラソン)かノーマルモードか ===
=== 時間停止 ===
ノーマルから高コストモードプリセットに切り替える(研究コストと中間生成物の製作コストを変更)。
時間の進行を止める。"true""false"にすると凍結解除する。
<syntaxhighlight lang="lua">
/c game.difficulty_settings.recipe_difficulty=1
game.difficulty_settings.technology_difficulty=1
game.difficulty_settings.technology_price_multiplier=4
</syntaxhighlight>
 
ノーマルに戻す。
<syntaxhighlight lang="lua">
/c game.difficulty_settings.recipe_difficulty=0
game.difficulty_settings.technology_difficulty=0
game.difficulty_settings.technology_price_multiplier=1
</syntaxhighlight>
 
=== 凍れる時間の秘法 ===
「BOOL」を「true」にすれば時間の進行が止まる。凍結解除には「false」にする。
<syntaxhighlight lang="lua">
<syntaxhighlight lang="lua">
/c game.player.surface.freeze_daytime=BOOL
/c game.player.surface.freeze_daytime=true
</syntaxhighlight>
</syntaxhighlight>


=== 汚染を全除去 ===
=== 全ての汚染を消去 ===
<syntaxhighlight lang="lua">
<syntaxhighlight lang="lua">
/c game.player.surface.clear_pollution()
/c game.player.surface.clear_pollution()
Line 295: Line 557:
</syntaxhighlight>
</syntaxhighlight>


=== 汚染を追加 ===
=== 汚染を大量に追加 ===
<syntaxhighlight lang="lua">
<syntaxhighlight lang="lua">
/c game.player.surface.pollute(game.player.position, 1000000)
/c game.player.surface.pollute(game.player.position, 1000000)
</syntaxhighlight>
=== スピーカーの場所と設置者を表示 ===
<syntaxhighlight lang="lua">
/c local 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 .. " placed a speaker at " .. speaker.gps_tag)
end
</syntaxhighlight>
</syntaxhighlight>


Line 306: Line 576:


=== 新たな資源パッチを追加 ===
=== 新たな資源パッチを追加 ===
プレイヤーキャラクターを中心に11x11の新たな資源パッチを生成。
プレイヤーキャラクターを中心に11×11の範囲で、水場でない地面に新たな資源パッチを生成する。
パッチは完全な正方形だが、埋蔵量は自然生成と同様にランダムで中心部は多くの資源がある。
パッチは完全な正方形だが、埋蔵量は自然生成と同様にランダムで中心部は多くの資源がある。
デフォルトでは2500-3000鉱石となる。
デフォルトでは2500-3000鉱石となる。


より大きなパッチが欲しいなら、「local size = 5」をより大きな数字に変更。
より大きなパッチが欲しいなら、「local size = 5」をより大きな数字に変更する。
大きなパッチは指数的に多くの鉱石を含む。
大きなパッチは指数的に多くの鉱石を含む。
30以上の数字は推奨できない。
30以上の数字は推奨できない。


より潤沢なパッチが欲しいなら、「local density = 10」をより大きな数字に変更。
より潤沢なパッチが欲しいなら、「local density = 10」をより大きな数字に変更する。
大きすぎる数字を入れても害はないが、100以上が必要なことはまずないだろう。
大きすぎる数字を入れても害はないが、100以上が必要なことはまずないだろう。


生成される資源を選ぶには、下の方の「stone」を「iron-ore」「copper-ore」「coal」「uranium-ore」に変更。
生成される資源を選ぶには、下の方の「stone」を「iron-ore」「copper-ore」「coal」「uranium-ore」に変更すること。


<syntaxhighlight lang="lua">
<syntaxhighlight lang="lua">
Line 339: Line 609:
</syntaxhighlight>
</syntaxhighlight>


=== 油パッチを追加 ===
より柔軟にするには、[[map editor/ja|マップエディタ]] で資源パッチの生成・変更・削除ができる。
3x3の9原油パッチを生成。
 
=== プレイヤーの周りの資源を除去 ===
プレイヤーの周り50 x 50の範囲の全ての資源パッチを除去する。
 
<syntaxhighlight lang="lua">
/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
</syntaxhighlight>
 
=== 原油パッチを追加 ===
3x3の9原油パッチを生成する。
<syntaxhighlight lang="lua">
<syntaxhighlight lang="lua">
/c for y=0,2 do
/c for y=0,2 do
Line 360: Line 645:
</syntaxhighlight>
</syntaxhighlight>


=== プレイヤーの周りの資源を除去 ===
=== 資源を再生する ===
プレイヤーの周り50 x 50の範囲の資源パッチを除去する。
鉄のような固形資源の場合、すべての資源エンティティを破壊し、元のマップ生成と同じように資源エンティティを作成する。石油のような流体資源の場合、既存のすべての資源エンティティの収量を元の量に設定する。世界全体の資源を再生成する。


<syntaxhighlight lang="lua">
<syntaxhighlight lang="lua">
/c local surface=game.player.surface
/c local surface = game.player.surface
local size=50
for _, e in pairs(surface.find_entities_filtered{type="resource"}) do
local pos=game.player.position
  if e.prototype.infinite_resource then
 
    e.amount = e.initial_amount
for _, e in pairs(surface.find_entities_filtered{area={{pos.x-size, pos.y-size},{pos.x+size, pos.y+size}}, type="resource"})  
  else
do e.destroy()  
    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
end
</syntaxhighlight>
surface.regenerate_entity(non_infinites)
 
for _, e in pairs(surface.find_entities_filtered{type="mining-drill"}) do
=== 魚を10匹追加 ===
    e.update_connections()
プレイヤーの周りに魚を10匹生成する。生成するときは、水辺の淵にいなければならない。
<syntaxhighlight lang="lua">
/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
end
</syntaxhighlight>
</syntaxhighlight>


=== エンティティをカウント ===
=== エンティティを数える ===
local entityに格納されたstringを名前に含むエンティティ全てを数える。
local entity の文字列を名前に含むエンティティを数える。
<syntaxhighlight lang="lua">
<syntaxhighlight lang="lua">
/c local entity="belt"
/c local entity="belt"
Line 397: Line 681:
end
end
game.player.print(count)
game.player.print(count)
</syntaxhighlight>
=== 全パイプ・地下パイプを空にする ===
パイプに入ってほしくない流体が入ってしまったとき便利。
<syntaxhighlight lang="lua">
/c local surface = game.player.surface
local deleted=0
for key, entity in pairs(surface.find_entities_filtered({force=game.player.force})) do
if string.find(entity.name, "pipe") then
for i=1,#entity.fluidbox do
deleted = deleted + 1
entity.fluidbox[i] = nil;
end
end
end
game.player.print("Pipes emptied: "..deleted)
</syntaxhighlight>
</syntaxhighlight>


=== 崖の生成をオフにする ===
=== 崖の生成をオフにする ===
このコマンドは、実行した後に生成されるチャンクにのみ効果を発揮する。すでに生成されているチャンクの崖を除去したい場合[[#すべての崖を除去する]]のコマンドを使う。
このコマンドは、実行した後に生成されるチャンクにのみ効果を発揮する。すでに生成されているチャンクの崖を除去したい場合[[#すべての崖を消去]]のコマンドを使う。


<syntaxhighlight lang="lua">
<syntaxhighlight lang="lua">
Line 424: Line 692:
</syntaxhighlight>
</syntaxhighlight>


=== すべての崖を除去する ===
=== すべての崖を消去 ===
ワールド中に存在する崖を除去する。新しいチャンクで崖が生成されないようにするには[[#崖の生成をオフにする]]のコマンドを使う。
世界中の崖を全て消去する。新しいチャンクで崖が生成されないようにするには[[#崖の生成をオフにする]]のコマンドを使う。


<syntaxhighlight lang="lua">
<syntaxhighlight lang="lua">
Line 433: Line 701:
</syntaxhighlight>
</syntaxhighlight>


== /進化 ==
=== 全ての装飾を消去 ===
=== バイターがどのくらい進化したか確認 ===
世界中に存在する装飾を消去する。
"/c"で始まらないコマンドは実績を無効化しないことに気をつけよう。
 
<syntaxhighlight lang="lua">
/c game.player.surface.destroy_decoratives({})</syntaxhighlight>
 
=== マップ生成設定の変更 ===
これは新しいチャンクのマップ生成設定を変更するもので、すでに生成されたチャンクは変更されません。すでに生成されたチャンクは変更されません。[[#チャンクを削除|削除されたチャンク]]は、再び探索されたときに新しく生成されるため、設定変更の影響を受けます。
 
資源生成の設定を変更するには、以下のコマンドの "iron-ore" を変更したい[[Data.raw#resource|資源]]に置き換え、"very-high" を希望の [https://lua-api.factorio.com/latest/Concepts.html#MapGenSize MapGenSize] に置き換える。"iron-ore" を "enemy-base" に置き換えると敵の巣の生成設定を変更できる。
 
<syntaxhighlight lang="lua">
/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</syntaxhighlight>
 
水生成の設定を変更するには、以下のコマンドで "very-high" を希望の [https://lua-api.factorio.com/latest/Concepts.html#MapGenSize MapGenSize] に置き換えること。
 
<syntaxhighlight lang="lua">
/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 </syntaxhighlight>
 
=== 構造物を破壊不能にする ===
バイターなどによって、エンティティにダメージを与えたり殺したりできなくする。エンティティにカーソルを合わせて実行すること。
<syntaxhighlight lang="lua">
/c game.player.selected.destructible = false
</syntaxhighlight>
 
=== linked beltの接続 ===
少なくとも2つの[[Prototype/LinkedBelt|linked belt]]が存在する場合、それらの1つは"エンティティタグ"<code>in</code> を持ち、もう1つは"エンティティタグ" <code>out</code> を持っている。以下のコマンドは、それら2つのlinked beltをリンクする。
 
<syntaxhighlight lang="lua">
<syntaxhighlight lang="lua">
/evolution
/c local i = game.get_entity_by_tag('in')
local o = game.get_entity_by_tag('out')
i.linked_belt_type = 'input'
o.linked_belt_type = 'output'
i.connect_linked_belts(o)
</syntaxhighlight>
</syntaxhighlight>


=== 進化ファクター(evolution factor)をセット ===
== 敵/進化のスクリプト ==
 
=== 進化因子を設定 ===
範囲は0(ゲーム開始時)から1。
範囲は0(ゲーム開始時)から1。
<syntaxhighlight lang="lua">
<syntaxhighlight lang="lua">
Line 446: Line 755:
</syntaxhighlight>
</syntaxhighlight>


=== 時間に依る進化を無効化しつつ汚染に依る進化を加速 ===
=== 時間による進化を無効化しつつ汚染による進化を加速 ===
<syntaxhighlight lang="lua">
<syntaxhighlight lang="lua">
/c game.map_settings.enemy_evolution.time_factor=0
/c game.map_settings.enemy_evolution.time_factor=0
Line 452: Line 761:
</syntaxhighlight>
</syntaxhighlight>


最後の「2」はデフォルト汚染ファクターの倍加。他の数字に変えれば汚染ファクターをもっと大きく(小さく)できる。
最後の「2」はデフォルト汚染因子を2倍にしている。他の数字に変えれば汚染ファクターをもっと大きく(小さく)できる。


=== 「敵」軍バイターを全滅させる ===
=== 「敵」勢力バイターを全滅させる ===
機動部隊とワームだけを殺し、巣は殺されないことに注意。
機動部隊とワームだけを殺し、巣は殺されないことに注意。
<syntaxhighlight lang="lua">
<syntaxhighlight lang="lua">
Line 461: Line 770:


=== 敵を鏖殺 ===
=== 敵を鏖殺 ===
バイター、ワーム、基地すべてを殺す。敵であるものすべてが完全に殲滅される。探査済みの世界に存在する敵にのみ影響し、マップの未探索で生成されていない部分にはまだ敵がいる。
バイター、ワーム、巣のすべてを殺す。敵であるものすべてが完全に殲滅される。探査済みの世界に存在する敵にのみ影響し、マップの未探索で生成されていない部分にはまだ敵がいる。望むなら、[[#新しく生成されるチャンクにバイターを発生させない|新しく生成されるチャンクにバイターを発生させない]]こともできる。
 
<syntaxhighlight lang="lua">
<syntaxhighlight lang="lua">
/c local surface=game.player.surface
/c local surface=game.player.surface
Line 469: Line 779:
</syntaxhighlight>
</syntaxhighlight>


=== ピースフルモード有効化 ===
=== 付近の敵を殺す ===
ピースフルモード(Peaceful mode)ではバイターが自発的に攻撃しない。falseをtrueにすれば無効化。
 
設定した半径内のバイター、ワーム、巣のすべてを殺す。デフォルトは250タイルで、概ねFullHDで2段階ズームアウトした画面の幅である。破壊後に、破壊したオブジェクトの数を表示する。
 
<syntaxhighlight lang="lua">
/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)
</syntaxhighlight>
 
=== ピースフルモードの有効化/無効化 ===
ピースフルモードを有効にすると、バイターは挑発されるまで攻撃しない。trueをfalseにすれば無効化される。すでに存在しているバイターは、このコマンドの影響を受けないので、ピースフルモードを有効にしたあとも、攻撃は暫く続くことがある。
<syntaxhighlight lang="lua">
<syntaxhighlight lang="lua">
/c game.player.surface.peaceful_mode=true
/c game.player.surface.peaceful_mode=true
</syntaxhighlight>
</syntaxhighlight>


=== バイターの戦線拡大を無効化 ===
=== バイターの拡大を有効化/無効化 ===
バイターが新たな巣を作らなくなる。
バイターの拡大を有効化すると、バイターは新たな巣を作る。デフォルトで有効。trueをfalseに変えると無効化される。
<syntaxhighlight lang="lua">
<syntaxhighlight lang="lua">
/c game.map_settings.enemy_expansion.enabled=false
/c game.map_settings.enemy_expansion.enabled=false
</syntaxhighlight>
</syntaxhighlight>


== プレイヤーキャラクター ==
=== 新しく生成されるチャンクにバイターを発生させない ===
新しく生成されたチャンクにはバイターは存在しないが、既存のバイターは影響を受けない。マップ設定の敵の設定で敵の巣のサイズ設定をNoneに設定するのと同じことだが、ゲーム中に[[#マップ生成設定の変更|マップ生成設定の変更]]することで実現できる。
 
<syntaxhighlight lang="lua">
/c local surface = game.player.surface
local mgs = surface.map_gen_settings
mgs.autoplace_controls["enemy-base"].size = "none"
surface.map_gen_settings = mgs
</syntaxhighlight>
 
コマンドの代わりに、ゲーム中に[[map editor/ja|マップ設定]]のGUIで設定を変更することでも可能である。マップ設定は <code>/editor</code> で開くことができ、"地形"タブから"マップ生成設定の編集"をクリックする。
 
== プレイヤーキャラクターのスクリプト ==
プレイヤーに直接的に関わるコマンド。
プレイヤーに直接的に関わるコマンド。
=== プレイヤーの位置を取得 ===
=== プレイヤーの位置を取得 ===
現在座標を表示。
現在の座標を表示する。
<syntaxhighlight lang="lua">
<syntaxhighlight lang="lua">
/c game.player.print(game.player.position.x .. ", " .. game.player.position.y)
/c game.player.print(game.player.position)
</syntaxhighlight>
</syntaxhighlight>


=== テレポート ===
=== テレポート ===
プレイヤーを指定した場所に移動。前述したコマンドでプレイヤー座標を取得すれば、特定のプレイヤーにテレポートできる。
プレイヤーを指定した場所に移動する。前述したコマンドでプレイヤーの座標を取得すれば、特定のプレイヤーがいる場所にテレポートできる。
<syntaxhighlight lang="lua">
<syntaxhighlight lang="lua">
/c game.player.teleport({X, Y})
/c game.player.teleport({X, Y})
</syntaxhighlight>
</syntaxhighlight>


世界の原点にテレポートするなら座標は0,0。
世界の原点にテレポートするなら、座標に0,0を使用する。
 
=== プレイヤーの色を変更 ===
"/c"で始まらないコマンドは実績を無効化しないことに気をつけよう。 COLORを色の名前で置換せよ。利用可能な色は以下。Black, blue, brown, cyan, gray, green, orange, pink, purple, red, white, acid, yellow。 色は[[:Wikipedia:ja:色空間|RGBA値]]で設定することもできる。
<syntaxhighlight lang="lua">
/color COLOR
/color r g b a
</syntaxhighlight>


=== god modeの有効化 ===
=== 神モードの有効化 ===
God modeはプレイヤーキャラクターをなくし、障害物を飛び越えられたりダメージを受けないようにしたりできる。
神モードはプレイヤーキャラクターをなくし、障害物を飛び越えられたりダメージを受けないようにしたりできる。


操作をプレイヤーから切り離す。
操作をプレイヤーから切り離す。
Line 522: Line 852:
</syntaxhighlight>
</syntaxhighlight>


== 研究 ==
=== リーチを長くする ===
=== 研究予約を有効にする ===
リーチを長くすると、プレイヤーは遠く離れたエンティティでも操作することができる。既定値は10である。
0.16以前のセーブデータやプレイ中に変更する場合は、以下のコンソールコマンドを実行。
<syntaxhighlight lang="lua">
/c local reach = 10000
game.player.force.character_build_distance_bonus = reach
game.player.force.character_reach_distance_bonus = reach
</syntaxhighlight>
 
=== プレイヤーの死体を探す ===
プレイヤーの死体がある場所をマップに表示する。
<syntaxhighlight lang="lua">
/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 .. " --> " .. corpse.gps_tag)
end
</syntaxhighlight>
 
=== 移動を高速化 ===
<syntaxhighlight lang="lua">
<syntaxhighlight lang="lua">
/c game.player.force.research_queue_enabled = true
/c game.player.character_running_speed_modifier=3
</syntaxhighlight>
</syntaxhighlight>


== 研究のスクリプト ==
=== 高速な研究を可能にする ===
=== 高速な研究を可能にする ===
<syntaxhighlight lang="lua">
<syntaxhighlight lang="lua">
/c game.player.force.laboratory_speed_modifier=1
/c game.player.force.laboratory_speed_modifier=1
</syntaxhighlight>
</syntaxhighlight>
1は等速、2で倍速、3は通常の3倍… 100まではいけると思う。
-0.5は半分の速度、0は通常速度、1で倍速、2は3倍速。


=== 特定の技術を研究 ===
=== 特定の技術を研究 ===
技術の内部名称は各ページのinfoboxで確認できる。小さな矢印をクリックすることで見られる(訳注:古い記述?2018年3月現在確認できず)。
技術の内部名称は各ページのinfoboxで確認できる。
<syntaxhighlight lang="lua">
<syntaxhighlight lang="lua">
/c game.player.force.technologies['electric-energy-distribution-1'].researched=true
/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['steel-processing'].researched=true
</syntaxhighlight>
無限テクノロジーの高いレベルを研究するときは、そのレベルを設定する。
<syntaxhighlight lang="lua">
/c game.player.force.technologies['worker-robots-speed-6'].level = 100
/c game.player.force.technologies['mining-productivity-4'].level = 100
</syntaxhighlight>
</syntaxhighlight>


=== 特定の技術を未研究に ===
=== 特定の技術を未研究に ===
技術の内部名称は各ページのinfoboxで確認できる。小さな矢印をクリックすることで見られる(訳注:古い記述?2018年3月現在確認できず)。
技術の内部名称は各ページのinfoboxで確認できる。
<syntaxhighlight lang="lua">
<syntaxhighlight lang="lua">
/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['electric-energy-distribution-1'].researched=false; game.player.force.set_saved_technology_progress('electric-energy-distribution-1', 0)
Line 550: Line 904:


=== 特定のレシピを解禁 ===
=== 特定のレシピを解禁 ===
技術の内部名称は各ページのinfoboxで確認できる。小さな矢印をクリックすることで見られる(訳注:古い記述?2018年3月現在確認できず)。
技術の内部名称は各ページのinfoboxで確認できる。
<syntaxhighlight lang="lua">
<syntaxhighlight lang="lua">
/c game.player.force.recipes["electric-energy-interface"].enabled=true
/c game.player.force.recipes["electric-energy-interface"].enabled=true
/c game.player.force.recipes["rocket-silo"].enabled=true
/c game.player.force.recipes["rocket-silo"].enabled=true
/c game.player.force.recipes.loader.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
</syntaxhighlight>
</syntaxhighlight>


全レシピを解禁
=== 全レシピを解禁 ===
<syntaxhighlight lang="lua">
<syntaxhighlight lang="lua">
/c for name, recipe in pairs(game.player.force.recipes) do recipe.enabled = true end
/c for name, recipe in pairs(game.player.force.recipes) do recipe.enabled = true end
</syntaxhighlight>
</syntaxhighlight>


=== 研究を即座に完了 ===
=== テクノロジーの効果を既定値にリセットする ===
すべてのレシピの有効/ロック解除状態が、現在研究されている技術に純粋に基づいた状態にリセットされ、採掘速度などの他の技術効果もリセットされる。これらの効果やレシピのアンロックに対する手動修正はすべて取り消される。
<syntaxhighlight lang="lua">
<syntaxhighlight lang="lua">
/c for name,technology in pairs(game.player.force.technologies) do technology.researched=technology.enabled end
/c game.player.force.reset_technology_effects()
</syntaxhighlight>
</syntaxhighlight>
注:MODを追加・変更した後、レシピのロックを解除する技術がすでに研究されているにもかかわらず、レシピが使用できない場合の迅速な回避策として使用できる。


== コマンドラインパラメータ ==
== MOD作成ツール ==
'''バージョン0.15.13現在'''
バニラのゲームに存在するだいたいのものの内部名称のリストは[[data.raw]]で確認できる。


コマンドラインパラメータはゲーム起動前にコマンドラインから設定でき、主に高度なユーザやサーバホストに有用。
=== MODのデータにアクセスする ===
(訳注: おそらく以下は-h の実行結果。原文はCOして残す)
コマンドの最初の単語が __MODの名前__ の場合、コマンドは同名のMODのコンテキストで実行される。例えば、このコマンドは Even Distribution MODのデータを表示する。
 
<syntaxhighlight lang="lua">
一般的なオプション:
/c __even-distribution__ game.player.print(serpent.dump(global))
  -h [ --help ]                      ヘルプを表示
</syntaxhighlight>
  --version                          バージョン情報を表示
  -v [ --verbose ]                  冗長なログを有効化
  -c [ --config ] PATH              使用するコンフィグファイル
  --no-log-rotation                  ログファイルのローテーションをしない
  --mod-directory PATH              使用するModディレクトリ
  --check-unused-prototype-data      アクセスされていないPrototype値に警告を出す
 
実行オプション:
  -s [ --map2scenario ] arg          マップからシナリオへの変換
  -m [ --scenario2map ] arg          シナリオからマップへの変換
  --apply-update arg                アップデートパッケージを即座に適用
  --create FILE                      新規マップを作成
  --map-gen-settings FILE            --createで使用するマップ生成設定。 data/map-gen-settings.example.json を参照
  --map-settings FILE                --createで使用するマップ設定。 data/map-settings.lua を参照
  --preset arg                      利用するマップ生成プリセットの名前
  --generate-map-preview FILE        マップのプレビュー画像を生成
  --map-preview-size SCALE (=1,024)  マッププレビューのサイズ(pixel)
  --map-preview-scale SCALE (=1)    マッププレビューのスケール(meters per pixel)
  --map-preview-offset X,Y (=0,0)    マップ中心のオフセット、メートル単位
  --start-server FILE                マルチプレイヤーサーバを開始
  --start-server-load-scenario FILE  マルチプレイヤーサーバを開始し、指定したシナリオをロード
  --start-server-load-latest        マルチプレイヤーサーバを開始し、最後の有効なセーブをロード
  --until-tick TICK                  指定したmap tickごとにセーブする
  --mp-connect ADDRESS              factorioを起動し指定したアドレスに接続
  --load-game FILE                  factorioを起動しシングルプレイヤーでゲームをロード
  --benchmark FILE                  セーブを読み込みベンチマークする
  --benchmark-ticks N (=1,000)      ベンチマークのtick数。デフォルトは1000
  --force-opengl                    レンダリングにOpenGLを使用
  --force-d3d                        レンダリングにDirect3Dを使用
  --fullscreen BOOL                  ウィンドウモードでゲームを起動(設定にセーブされる)
  --max-texture-size N              ゲームで使用するテクスチャの最大サイズ(設定にセーブされる)。2の冪かつ2048以上でなければならない
  --graphics-quality arg            利用可能な値: normal, low, very-low
  --video-memory-usage arg          利用可能な値: all, high, medium, low
  --gfx-safe-mode                    いくつかのグラフィック設定を、ほとんどの設定では動くだろう値にリセット
  --shader arg                      シェーダポストプロセッシングの有効/無効化(設定にセーブされる)
  --disable-audio                    音声の無効化。主に開発時、高速に起動させるために用いられる
 
サーバオプション:
  --port N                          使用するポート
  --bind ADDRESS[:PORT]              バインドするIPアドレス(と、オプションでポートも)
  --rcon-port N                      RCONに使用するポート
  --rcon-password PASSWORD          RCONに使用するパスワード
  --server-settings FILE            サーバ設定ファイルのPath。data/server-settings.example.json を参照
  --server-whitelist FILE            サーバホワイトリストファイルのPath。
  --server-banlist FILE              サーバBANリストファイルのPath。
  --console-log FILE                サーバログのコピーが保存されるファイルのPath。
  --server-id FILE                  サーバIDが保存され読み出されるPath。
 
 
<!--
General options:
  -h [ --help ]                      display help
  --version                          show version information
  -v [ --verbose ]                  enable verbose logging
  -c [ --config ] PATH              config file to use
  --no-log-rotation                  don't rotate log file
  --mod-directory PATH              Mod directory to use
  --check-unused-prototype-data      Print a warning for all prototype values that were not accessed
 
Running options:
  -s [ --map2scenario ] arg          map to scenario conversion
  -m [ --scenario2map ] arg          scenario to map conversion
  --apply-update arg                immediately apply update package
  --create FILE                      create a new map
  --map-gen-settings FILE            Map generation settings for use with --create. See data/map-gen-settings.example.json
  --map-settings FILE                Map settings for use with --create. See data/base/prototypes/map-settings.lua
  --preset arg                      Name of the map generation preset to be used.
  --generate-map-preview FILE        Generate preview images of the map
  --map-preview-size SCALE (=1,024)  Size (in pixels) of map preview
  --map-preview-scale SCALE (=1)    Scale (meters per pixel) of map preview
  --map-preview-offset X,Y (=0,0)    Offset of the center of the map, in meters
  --start-server FILE                start a multiplayer server
  --start-server-load-scenario FILE  start a multiplayer server and load the specified scenario
  --start-server-load-latest        start a multiplayer server and load the latest available save
  --until-tick TICK                  run a save until given map tick
  --mp-connect ADDRESS              start factorio and connect to address
  --load-game FILE                  start Factorio and load a game in singleplayer
  --benchmark FILE                  load save and run benchmark
  --benchmark-ticks N (=1,000)      number of ticks for benchmarking. Default is 1000
  --force-opengl                    use OpenGL for rendering
  --force-d3d                        use Direct3D for rendering
  --fullscreen BOOL                  start game in windowed mode (saved to configuration)
  --max-texture-size N              maximal size of texture that the game can use (saved to configuration). Should be power of two greater than 2048
  --graphics-quality arg            accepted values: normal, low, very-low
  --video-memory-usage arg          accepted values: all, high, medium, low
  --gfx-safe-mode                    resets some graphics settings to values that should work on most configurations
  --shader arg                      enable/disable shader postprocessing (saved to configuration)
  --disable-audio                    Disable audio. Mainly for faster startup during development.
 
Server options:
  --port N                          network port to use
  --bind ADDRESS[:PORT]              IP address (and optionally port) to bind to
  --rcon-port N                      Port to use for RCON
  --rcon-password PASSWORD          Password for RCON
  --server-settings FILE            Path to file with server settings. See data/server-settings.example.json
  --server-whitelist FILE            Path to file with server whitelist.
  --server-banlist FILE              Path to file with server banlist.
  --console-log FILE                Path to file where a copy of the server's log will be stored
  --server-id FILE                  Path where server ID will be stored or read from
-->
 
=== マルチプレイヤー ===
 
  --start-server SAVE
 
で、ヘッドレス(専用)サーバが起動する。GUIはない
 
  --mp-connect ADDRESS
ADDRESSはリモートホストのIP:Port。Portはoptional。
例:
 
  ./factorio --mp-connect 192.168.1.101
  ./factorio --mp-connect 192.168.1.101:2345
 
上記のように、ポートはアドレスの後にコロンで区切って記述する。
 
  --map2scenario SAVE
セーブのゲームをユーザシナリオに変換し、ゲームの状態をマップエディタで読み込めるようにする。
セーブゲーム名が「foo.zip」だとすると、'./factorio --map2scenario s1' とすればFactorioが読み込まれ、セーブファイルが開いてシナリオがシナリオフォルダにセーブされる。
 
== Mod作成ツール ==
バニラのゲームに存在するだいたいのものの内部名称のリストは[[data.raw/ja|data.raw]]で確認できる。


=== プレイヤーがいる位置のタイルをコンソールに表示する ===
=== プレイヤーがいる位置のタイルをコンソールに表示する ===
Line 723: Line 959:
end
end
game.write_file("recipes.lua", serpent.block(list) .. "\n", true)
game.write_file("recipes.lua", serpent.block(list) .. "\n", true)
</syntaxhighlight>
=== MODの一覧をファイルに書き込む ===
現在有効な全てのMODとバージョンを、[[application directory/ja#ユーザーデータディレクトリ|ユーザーデータディレクトリ]]の script-output/mods.txt ファイルに書き込む。
<syntaxhighlight lang="lua">
/c game.write_file("mods.txt", serpent.block(game.active_mods))
</syntaxhighlight>
</syntaxhighlight>


== 関連項目 ==
== 関連項目 ==
* [[Command line parameters/ja|コマンドラインパラメータ]]
* http://lua-api.factorio.com/latest/ - 最新版のFactorio APIリファレンス(英語)


* http://lua-api.factorio.com/latest/ - 最新版のFactorio APIリファレンス(英語)
{{C|Modding}}

Revision as of 11:06, 25 August 2024

コンソールはFactorioのゲーム内コマンドラインインターフェースである。Factorio起動時のコマンドラインインターフェースについては、コマンドラインパラメータを参照すること。

ゲーム内コンソールは以下に用いられる。

  • 他プレイヤーとのチャット
  • 時々の近況報告(ゲームの状況を知らせるメッセージのこと)
  • コマンド/スクリプト/チートの実行

以下の3種のコマンドがある。

  • 通常 - ゲームに関する情報を表示し、ゲーム体験をカスタマイズする。
  • マルチプレイヤー - メッセージフィルタ、ユーザの禁止など。
  • スクリプト/チート - 小さなLuaスクリプトを実行する。(ただし、このゲームでは実績が無効化される)

コンソールの利用

コンソール窓は、GRAVE(全角/半角)キーで表示を切り替えられる。このキーは、1キーの左側か、Tabの上にある。

このキーは、設定メニュー → コントロール → チャット(Luaコンソール)の表示から変更できる。 コンソールが開いている間、スクリーン下部でカーソルが点滅する。メッセージやコマンドを入力してReturnを押すと送信する(また、コンソールも閉じる)。 メッセージやコマンドプレフィックスに関するドキュメントはこのページの更に下にある。

コンソールではリッチテキストタグが使用できる。これらのタグは、建設計画を共有したり、マップの場所に印をつけたり、マーカーや駅のアイコンをマップに追加したりするのに役立つ。Ctrl + Alt を押しながらマップや地面をクリックすると、自動的にGPSタグが挿入され、コンソールに送信される。コンソールを開いた状態で、大半のものをShiftを押しながらクリックすると、クリックしたもののタグがコンソールに挿入される。

コンソールを閉じると最後のメッセージ/コマンドだけが表示されるが、徐々に消えていく(コンソールを開き直すと即座に直近のメッセージすべてが再表示される)。 デフォルトでは、全ての実行されたコマンドは全ユーザに見える。消える時間は設定メニュー → インターフェース → 会話メッセージ表示時間から設定できる。

コンソールは/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 No
/clear /clear コンソールをクリアする。 No
/color <color> /color 20 255 255 あなたの色を変更する。事前に決まっている色か、“# # #”形式のRGB値のどちらでもよい。以下の色が利用できる。default, red, green, blue, orange, yellow, pink, purple, white, black, gray, brown, cyan, acid No
/enable-research-queue /enable-research-queue 研究の待ち行列を有効化する。 Yes
/evolution /evolution の進化因子を表示する。 No
/help [コマンド] /help 利用可能なコマンドの一覧を表示する。オプション引数のコマンド名を指定すると、詳細な説明が表示される。 No
/h [コマンド] /h /help と同じ。 No
/mute-programmable-speaker <mute/unmute> <local/everyone> /mute-programmable-speaker mute local プログラマブルスピーカーが発するグローバル音声をミュートまたはミュート解除する。"local"を使用すると、自分自身にのみ適用される。管理者は "everyone" を使用する事ができ、サーバ上の全員に対して音声をミュートできる。 No
/perf-avg-frames <number> /perf-avg-frames 100 平均的な性能を計測するために使用する、指定したティック数の間の更新回数。既定値は100である。すばやく収束させるには、5-10の値が推奨だが、数値はもっと小刻みに変動する。 No
/permissions /permissions 権限のGUIを開く。 Yes
/permissions <action> <parameters> /permissions add-player DeveloperGroup kovarex 利用可能な action は以下の通り。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 Yes
/reset-tips /reset-tips ヒントの状態を、初めてゲームを開始したかのような状態にリセットする。 No
/screenshot [x 解像度] [y 解像度] [倍率] /screenshot GUIを非表示にし、プレイヤーを中心にしてスクリーンショットを撮影する。画像は、ユーザーデータディレクトリの中の"script-output"フォルダに保存される。解像度はオプションで、既定値は現在のウィンドウサイズとなる。倍率も任意で、規定値は1である。 No
/seed /seed 開始マップのシード値を表示する。 No
/time /time このマップをプレイしている時間を表示する。 No
/toggle-action-logging /toggle-action-logging ゲームでの入力操作をすべて記録するモードを切り替える。この設定は、ゲームを再開すると消えてしまい、マルチプレイヤーでは自分自身にしか作用しない。 Yes
/toggle-heavy-mode /toggle-heavy-mode 非同期化(英語)の調査のために使用する。ゲームが低速化し、マルチプレイヤーは遊べなくなる。 Yes
/unlock-shortcut-bar /unlock-shortcut-bar 建設計画のインポート・コピー&ペースト・解体プランナー・アップグレードプランナーを含む、すべてのショートカットバーアイテムを解放する。 No
/unlock-tips /unlock-tips すべてのヒントを解放する。 No
/version /version 現在のゲームバージョンを表示する。 No

マルチプレイヤーコマンド

コマンド 説明 管理者のみ
<message> Hello team! /で始まらない入力は、チャットメッセージとして自分のチームに表示される。 No
/admin /admin プレイヤー管理GUIを開く。 Yes
/admins /admins ゲーム管理者の一覧を表示する。 No
/ban <player> <reason> /ban xTROLLx Throwing grenades in base 特定のプレイヤーをBANする。 Yes
/banlist <add/remove/get/clear> <player> /banlist get プレイヤーをBANリストに追加または削除する。/ban や /unban と同じ。 No
/config /config サーバ管理GUIを開く。 Yes
/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 afk-auto-kickとautosave-intervalオプションの単位は分である。 Yes
/delete-blueprint-library <player> /delete-blueprint-library everybody confirm 指定されたオフラインプレイヤーの建設計画のライブラリをセーブファイルから削除する。"everybody confirm" を入力すると、すべてのオフラインプレイヤーのデータが削除される。 Yes
/demote <player> /demote AzureDiamond プレイヤーを管理者から降格させる。 Yes
/ignore <player> /ignore Cthon98 プレイヤーからのメッセージ表示を抑止する。管理者のメッセージは表示される。 No
/ignores /ignores 無視された(メッセージ表示を抑止された)プレイヤーの一覧を表示する。 No
/kick <player> <reason> /kick xTROLLx Throwing grenades in base 特定のプレイヤーを追放する。 Yes
/mute <player> /mute Cthon98 プレイヤーがチャットで発言することを禁止する。 Yes
/open <player> /open AzureDiamond 他のプレイヤーのインベントリを開く。 Yes
/o <player> /o AzureDiamond /open と同じ。 Yes
/players [online/o/count/c] /players ゲーム中のプレイヤーリストを表示する。(online/o パラメータはオンラインのプレイヤーのみ、count/c は人数のみ表示する) No
/p [online/o/count/c] /p o c /players と同じ。 No
/promote <player> /promote AzureDiamond プレイヤーを管理者に昇格させる。 Yes
/purge <player> /purge Cthon98 このプレイヤーからのすべてのメッセージをチャットログから削除する。 Yes
/reply <message> /reply oh, really? 最後にあなたに囁いたプレイヤーに返信する。 No
/r <message> /r oh, really? /reply と同じ。 No
/server-save /server-save サーバ上にマルチプレイヤーゲームを保存する。 Yes
/shout <message> /shout Hello world! 他の勢力も含めて、全プレイヤーにメッセージを送信する。 No
/s <message> /s Hello world! /shout と同じ。 No
/swap-players <player> [player] /swap-players AzureDiamond あなたのキャラクターと指定したプレイヤーのキャラクターを入れ替える。プレイヤーを2つ指定した場合、2人のプレイヤーキャラクターを入れ替える。 Yes
/unban <player> /unban xTROLLx 特定のプレイヤーのBANを解除する。 Yes
/unignore <player> /unignore Cthon98 指定したプレイヤーのメッセージが表示されるようにする。 No
/unmute <player> /unmute Cthon98 プレイヤーがチャットで会話できるようにする。 Yes
/whisper <player> <message> /whisper AzureDiamond that's what I see 特定のプレイヤーにメッセージを送信する。 No
/w <player> <message> /w AzureDiamond that's what I see /whisper と同じ。 No
/whitelist <add/remove/get/clear> [player] /whitelist get ホワイトリストにプレイヤーを追加または削除する。ホワイトリストに入っているプレイヤーのみゲームに参加できる。"get"を使用するとき、"player"に何も入れないと、ホワイトリストに入っているプレイヤーの一覧を表示する。ホワイトリストが空になると、ホワイトリストの機能が無効化され、誰でも参加可能になる。 No

スクリプトとチートコマンド

コマンド 説明
/cheat <all> すべてのテクノロジーを研究し、チートモードを有効化する。'all オプションを使うと、プレイヤーに追加のアイテムを与える。
/command <command> (可能なら) Luaコマンドを実行する。
/c <command> (可能なら) Luaコマンドを実行する。
/editor マップエディタを切り替える。
/measured-command <command> (可能なら) Luaコマンドを実行し、かかった時間を計測する。
/mc <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()

次節のコマンドでUndoできる。

注:特定のテクノロジーは、マップエディタを使って、テクノロジーのGUIで「研究開始」をShift+クリックすることで研究できる。

全研究を未研究に

手動で適用されたボーナスはリセットされない。

/c for _, tech in pairs(game.player.force.technologies) do 
	tech.researched=false
end

注:特定のテクノロジーは、マップエディタを使って、テクノロジーのGUIで「未研究に」をクリックすることで未研究にできる。

強さリセット

キル数、生産統計、技術、ボーナス、マップ状況を含む強さを全リセットする。

/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の部分を欲しいアイテムの内部名称(英語)に置換して使うべし。 (内部名称を知りたい場合、Wikiでそのアイテムのページに行き、Internal name の項目を見る)

/c game.player.insert{name="iron-plate", count=100}

例えば、エネルギーシステムの神モードインタフェースは以下のようにする。

/c game.player.insert{name="electric-energy-interface"}

神モードアイテムは、以下のものがある。

  • infinity-chest
  • infinity-pipe
  • electric-energy-interface
  • heat-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"})

プレイヤーのインベントリスロットを増やす

あなたの勢力のプレイヤー全員のインベントリに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 game.forces.player.chart(game.player.surface, {{x = -2000, y = -2000}, {x = 2000, y = 2000}})

150は好きな半径に変更して構わない。大きくすればするほど時間食うけど。

表示されたマップを隠す

マップ表示の逆で、表示されたすべてのチャンクを隠す。

/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()

チャンクを削除

表示されたマップが大きくなるとセーブファイルのサイズも増える。以下のコマンドで現在キューされているチャンク生成をすべてキャンセルし 0,0 周辺の半径32チャンク以外を除去する。当該チャンク内のプレイヤーのものも除去される事に注意。

/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で倍速、など。最小は0.01。完了に長い期間待たなければならない場合など、様々なことに利用できる。大きくするとパフォーマンスが落ちるので注意せよ。

/c game.speed=X

時間停止

時間の進行を止める。"true"を"false"にすると凍結解除する。

/c game.player.surface.freeze_daytime=true

全ての汚染を消去

/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 local 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 .. " placed a speaker at " .. speaker.gps_tag)
end

友軍へのフレンドリーファイアを無効化

/c game.player.force.friendly_fire = false

新たな資源パッチを追加

プレイヤーキャラクターを中心に11×11の範囲で、水場でない地面に新たな資源パッチを生成する。 パッチは完全な正方形だが、埋蔵量は自然生成と同様にランダムで中心部は多くの資源がある。 デフォルトでは2500-3000鉱石となる。

より大きなパッチが欲しいなら、「local size = 5」をより大きな数字に変更する。 大きなパッチは指数的に多くの鉱石を含む。 30以上の数字は推奨できない。

より潤沢なパッチが欲しいなら、「local density = 10」をより大きな数字に変更する。 大きすぎる数字を入れても害はないが、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
		surface.create_entity({name="stone", amount=ore, position={game.player.position.x+x, game.player.position.y+y}})
	end
end

より柔軟にするには、マップエディタ で資源パッチの生成・変更・削除ができる。

プレイヤーの周りの資源を除去

プレイヤーの周り50 x 50の範囲の全ての資源パッチを除去する。

/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

原油パッチを追加

3x3の9原油パッチを生成する。

/c for y=0,2 do
	for x=0,2 do
		game.player.surface.create_entity({name="crude-oil", amount=5000, 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=5000, 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

エンティティを数える

local 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({})

マップ生成設定の変更

これは新しいチャンクのマップ生成設定を変更するもので、すでに生成されたチャンクは変更されません。すでに生成されたチャンクは変更されません。削除されたチャンクは、再び探索されたときに新しく生成されるため、設定変更の影響を受けます。

資源生成の設定を変更するには、以下のコマンドの "iron-ore" を変更したい資源に置き換え、"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

水生成の設定を変更するには、以下のコマンドで "very-high" を希望の MapGenSize に置き換えること。

/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

構造物を破壊不能にする

バイターなどによって、エンティティにダメージを与えたり殺したりできなくする。エンティティにカーソルを合わせて実行すること。

/c game.player.selected.destructible = false

linked beltの接続

少なくとも2つのlinked beltが存在する場合、それらの1つは"エンティティタグ"in を持ち、もう1つは"エンティティタグ" out を持っている。以下のコマンドは、それら2つのlinked beltをリンクする。

/c local i = game.get_entity_by_tag('in')
local o = game.get_entity_by_tag('out')
i.linked_belt_type = 'input'
o.linked_belt_type = 'output'
i.connect_linked_belts(o)

敵/進化のスクリプト

進化因子を設定

範囲は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

最後の「2」はデフォルト汚染因子を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タイルで、概ねFullHDで2段階ズームアウトした画面の幅である。破壊後に、破壊したオブジェクトの数を表示する。

/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=false

新しく生成されるチャンクにバイターを発生させない

新しく生成されたチャンクにはバイターは存在しないが、既存のバイターは影響を受けない。マップ設定の敵の設定で敵の巣のサイズ設定をNoneに設定するのと同じことだが、ゲーム中にマップ生成設定の変更することで実現できる。

/c local surface = game.player.surface
local mgs = surface.map_gen_settings
mgs.autoplace_controls["enemy-base"].size = "none"
surface.map_gen_settings = mgs

コマンドの代わりに、ゲーム中にマップ設定のGUIで設定を変更することでも可能である。マップ設定は /editor で開くことができ、"地形"タブから"マップ生成設定の編集"をクリックする。

プレイヤーキャラクターのスクリプト

プレイヤーに直接的に関わるコマンド。

プレイヤーの位置を取得

現在の座標を表示する。

/c game.player.print(game.player.position)

テレポート

プレイヤーを指定した場所に移動する。前述したコマンドでプレイヤーの座標を取得すれば、特定のプレイヤーがいる場所にテレポートできる。

/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 .. " --> " .. corpse.gps_tag)
end

移動を高速化

/c game.player.character_running_speed_modifier=3

研究のスクリプト

高速な研究を可能にする

/c game.player.force.laboratory_speed_modifier=1

-0.5は半分の速度、0は通常速度、1で倍速、2は3倍速。

特定の技術を研究

技術の内部名称は各ページのinfoboxで確認できる。

/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['worker-robots-speed-6'].level = 100
/c game.player.force.technologies['mining-productivity-4'].level = 100

特定の技術を未研究に

技術の内部名称は各ページのinfoboxで確認できる。

/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)

特定のレシピを解禁

技術の内部名称は各ページのinfoboxで確認できる。

/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

テクノロジーの効果を既定値にリセットする

すべてのレシピの有効/ロック解除状態が、現在研究されている技術に純粋に基づいた状態にリセットされ、採掘速度などの他の技術効果もリセットされる。これらの効果やレシピのアンロックに対する手動修正はすべて取り消される。

/c game.player.force.reset_technology_effects()

注:MODを追加・変更した後、レシピのロックを解除する技術がすでに研究されているにもかかわらず、レシピが使用できない場合の迅速な回避策として使用できる。

MOD作成ツール

バニラのゲームに存在するだいたいのものの内部名称のリストはdata.rawで確認できる。

MODのデータにアクセスする

コマンドの最初の単語が __MODの名前__ の場合、コマンドは同名のMODのコンテキストで実行される。例えば、このコマンドは Even Distribution MODのデータを表示する。

/c __even-distribution__ game.player.print(serpent.dump(global))

プレイヤーがいる位置のタイルをコンソールに表示する

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

研究済み技術一覧をファイルに書き込む

/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)

解禁済みレシピ一覧をファイルに書き込む

/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)

MODの一覧をファイルに書き込む

現在有効な全てのMODとバージョンを、ユーザーデータディレクトリの script-output/mods.txt ファイルに書き込む。

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

関連項目