コンソールコマンド
2026-05-22
Factorioのインゲームコンソールコマンド解説。チャット、管理、スクリプト実行(実績無効化あり)などに使用します。
コンソールとは
コンソールは Factorio のゲーム内コマンドラインインターフェースです。
Factorio 実行ファイルのコマンドラインインターフェースについては command line parameters を別途参照してください。
ゲーム内コンソールは次の用途に使えます。
- 他のプレイヤーとのチャット
- 時折のステータス更新
- コマンド・スクリプト・チートの実行
コマンドは大きく 3 種類あります。
- 通常コマンド: ゲーム情報の表示や体験のカスタマイズ
- マルチプレイヤーコマンド: メッセージフィルタリング、 ユーザーの BAN など
- スクリプト/チート: 小さな Lua スクリプトを実行、 ただしセーブでの実績が無効化される
実プレイで一般プレイヤーが使うのは前 2 つだけで、 スクリプト系は実績を諦めるか、 検証用セーブで遊ぶ時に限定するのが無難です。
コンソールの使い方
コンソール表示は GRAVE キー () で切り替えられます。 これは 1キーの左、Tab` の上にあるキーですが、 JIS 配列の日本語キーボードだと位置が違うことがあるので、 「半角/全角」 キーや 「@」 キーが当たっていることもあって、 動かない場合は別キーを試したり Controls 設定で割り当てを確認するのが解決の早道です。
キーは Settings menu → Controls → Toggle chat (and Lua console) でカスタマイズできます。
コンソールが開いていると画面下部に点滅するカーソルが表示されます。
メッセージやコマンドを入力して Return を押すと送信されます (これでコンソールも閉じます)。
メッセージとコマンドのプレフィックスに関する説明はこのページの後半にあります。
リッチテキストと履歴
コンソールはリッチテキストタグをサポートしています。
設計図の共有、 チャット内でのマップ位置のマーク、 マップマーカーや列車駅へのアイコン追加に便利です。
Ctrl + Alt を押しながらマップまたは地面をクリックすると自動で GPS タグが挿入されコンソールに投稿されます。
コンソールを開いた状態でほとんどのものを Shift-クリックすると、 その対象のタグがコンソールに挿入されるので、 「ここに何がある」 を共有する時にこれが地味に便利です。
コンソールが閉じていると、 最新のメッセージ・コマンドだけが表示されますが、 徐々にフェードアウトします (コンソールを開くとすぐに最近のすべてのメッセージが再表示)。
デフォルトでは実行されたすべてのコマンドが全ユーザーに表示されます。
フェードアウト時間は Settings menu → Interface → Chat message delay で変更できます。
コンソールは /clear コマンドでクリア可能。
↑ と ↓ キーでコンソール履歴をスクロールでき、 Tab キーはコマンド・オプション・プレイヤー名でインテリジェントな補完を提供します。
Normal commands (通常コマンド)
表示・情報系
| コマンド | 例 | 説明 | Admin |
|---|---|---|---|
| SBR52SBR | SBR53SBR | 現在のゲームバージョンを表示 | No |
| SBR54SBR | SBR55SBR | スタートマップのシードを表示 | No |
| SBR56SBR | SBR57SBR | マップがどれだけ古いかの情報を表示 | No |
| SBR58SBR | SBR59SBR | エイリアン進化係数の情報を表示 | No |
| SBR60SBR | SBR61SBR | 利用可能コマンド一覧、 オプションで詳細表示 | No |
| SBR62SBR | SBR63SBR | SBR64SBR の短縮形 | No |
| SBR65SBR | SBR66SBR | コンソールをクリア | No |
/evolution は実プレイで意外と頻繁に使います。
ビター進化が想定外に進んでいないか確認する用途で、 序盤の安全確認に便利で、 進化値 0.5 を超えてくると大型ワームやベヒーモススピッターが出現し始めるラインなので、 防衛設備のアップグレード優先度を判断する時の指標として /evolution の数字は意外と意思決定に効きます。
カスタマイズ系
| コマンド | 例 | 説明 | Admin |
|---|---|---|---|
| SBR69SBR | SBR70SBR | チャット色を変更、 事前定義色か RGB | No |
| SBR71SBR | SBR72SBR | 指定アラートを有効化・無効化・ミュート | No |
| SBR73SBR | SBR74SBR | プログラマブルスピーカー のミュート |
No |
| SBR75SBR | SBR76SBR | パフォーマンスカウンター平均化のティック数 | No |
| SBR77SBR | SBR78SBR | ヒントとコツの状態をリセット | No |
| SBR79SBR | SBR80SBR | すべてのヒントとコツをアンロック | No |
| SBR81SBR | SBR82SBR | ショートカットバー全アイテムをアンロック | No |
| SBR83SBR | SBR84SBR | GUI を隠してプレイヤー中心でスクリーンショット | No |
利用可能な /color の事前定義は default, red, green, blue, orange, yellow, pink, purple, white, black, gray, brown, cyan, acid の 14 種類です。
マルチでチームを目立たせる時に役立つ。
管理系 (Admin)
| コマンド | 例 | 説明 |
|---|---|---|
| SBR86SBR | SBR87SBR | パーミッション GUI を開く |
| SBR88SBR | SBR89SBR | 個別のパーミッション操作 |
| SBR90SBR | SBR91SBR | 入力アクションの全ログを切り替え |
| SBR92SBR | SBR93SBR | デシンク調査用、 ゲームを遅くする |
利用可能な /permissions アクションは下記の 8 個です。
add-player、 create-group、 delete-group、 edit-group、 get-player-group、 remove-player、 rename-group、 reset。
大型マルチサーバーの運営者にとっては必須機能です。
Multiplayer commands
基本的なチャット
/ で始まらないコンソール入力はチームへのチャットメッセージとして表示されます。
全フォースに送りたい時は /shout (/s) を使います。
| コマンド | 例 | 説明 | Admin |
|---|---|---|---|
| SBR98SBR | SBR99SBR | チームへチャット送信 | No |
| SBR100SBR | SBR101SBR | 全プレイヤー (全フォース含む) にメッセージ送信 | No |
| SBR102SBR | SBR103SBR | SBR104SBR の短縮形 | No |
| SBR105SBR | SBR106SBR | 指定プレイヤーに私的メッセージ | No |
| SBR107SBR | SBR108SBR | SBR109SBR の短縮形 | No |
| SBR110SBR | SBR111SBR | 最後に囁いてきたプレイヤーに返信 | No |
| SBR112SBR | SBR113SBR | SBR114SBR の短縮形 | No |
プレイヤー管理
| コマンド | 例 | 説明 | Admin |
|---|---|---|---|
| SBR115SBR | SBR116SBR | プレイヤー管理 GUI を開く | Yes |
| SBR117SBR | SBR118SBR | ゲーム管理者リストを表示 | No |
| SBR119SBR | SBR120SBR | ゲーム内プレイヤー一覧表示 | No |
| SBR121SBR | SBR122SBR | SBR123SBR の短縮形 | No |
| SBR124SBR | SBR125SBR | プレイヤーを管理者に昇格 | Yes |
| SBR126SBR | SBR127SBR | プレイヤーの管理者権限を剥奪 | Yes |
| SBR128SBR | SBR129SBR | 他プレイヤーのインベントリを開く | Yes |
| SBR130SBR | SBR131SBR | SBR132SBR の短縮形 | Yes |
| SBR133SBR | SBR134SBR | 自分と相手 (または 2 人) のキャラを入れ替え | Yes |
BAN・キック系
| コマンド | 例 | 説明 | Admin |
|---|---|---|---|
| SBR135SBR | SBR136SBR | プレイヤーを BAN | Yes |
| SBR137SBR | SBR138SBR | BAN リスト表示 | No |
| SBR139SBR | SBR140SBR | BAN リスト操作 | No |
| SBR141SBR | SBR142SBR | BAN 解除 | Yes |
| SBR143SBR | SBR144SBR | プレイヤーをキック | Yes |
| SBR145SBR | SBR146SBR | プレイヤーをチャット禁止 | Yes |
| SBR147SBR | SBR148SBR | ミュート中プレイヤー一覧 | No |
| SBR149SBR | SBR150SBR | チャット禁止解除 | Yes |
| SBR151SBR | SBR152SBR | プレイヤーからのメッセージを非表示 | No |
| SBR153SBR | SBR154SBR | 無視中プレイヤー一覧 | No |
| SBR155SBR | SBR156SBR | 無視解除 | No |
| SBR157SBR | SBR158SBR | そのプレイヤーの全メッセージをログから削除 | Yes |
| SBR159SBR | SBR160SBR | ホワイトリスト操作 | No |
サーバー設定
| コマンド | 例 | 説明 | Admin |
|---|---|---|---|
| SBR161SBR | SBR162SBR | サーバー設定 GUI を開く | Yes |
| SBR163SBR | SBR164SBR | 各種マルチ設定の取得・設定 | Yes |
| SBR165SBR | SBR166SBR | サーバー側でゲームをセーブ | Yes |
| SBR167SBR | SBR168SBR | 大型ブループリント閾値の調整 | Yes |
| SBR169SBR | SBR170SBR | オフライン player の BP ライブラリ削除 | Yes |
利用可能な /config 設定の一覧。
afk-auto-kick(単位: 分)allow-commandsallow-debug-settingsautosave-interval(単位: 分)autosave-only-on-serverignore-player-limit-for-returning-playersmax-playersmax-upload-speedonly-admins-can-pausepasswordrequire-user-verificationvisibility-lanvisibility-public
Scripting and cheat commands
スクリプト系コマンドは Lua を直接実行できます。
強力ですが、 使うとそのセーブでの実績が 恒久的に無効化 されるので、 実績を狙っている最中のセーブで間違って実行すると、 その後どんな進め方をしてもクリア証跡が残らないことになり、 やり直すには別セーブを最初から作るしかなくなります。
検証や練習用、 あるいは 「もう諦めて遊ぶ」 セーブで使うのが基本。
Lua 実行系
| コマンド | 説明 |
|---|---|
| SBR185SBR | 全技術研究済み + チートモード有効化 (任意アイテム無料作成可)。 all で追加アイテム付与、 planet/platform 指定でその起点に移動、 off で解除 |
| SBR186SBR | Lua 実行 (許可されている場合) |
| SBR187SBR | SBR188SBR の短縮形 |
| SBR189SBR | マップエディタを切り替え |
| SBR190SBR | Lua 実行 + 実行時間測定 |
| SBR191SBR | SBR192SBR の短縮形 |
| SBR193SBR | Lua 実行 (コンソール非表示) |
| SBR194SBR | SBR195SBR の短縮形 |
これは非常に強力な機能でありチートも可能です。
そのためスクリプトコマンドを使うと、 そのセーブでの実績は恒久的に無効化されます。
「ちょっと試したいだけ」 のつもりが実績全消し、 という事故を防ぐためにテスト用セーブを別途用意するのが定石で、 ファイル名に _test のような接尾辞を付けて運用と混同しないように管理しておくと、 数か月後の自分が誤って本セーブで Lua を叩く悲劇を回避できます。
基本サンプルスクリプト
計算・ズーム・速度
電卓として使う形。
/c game.player.print(1234*5678)
通常の境界を超えてズームします。
あまりに遠くにズームしすぎるとパフォーマンスに悪影響を与えることがあるので注意。
/c game.player.zoom=0.1
フリープレイでは最大ズームアウトは 0.3、 マップエディタでは 0.1 まで指定可能で、 それより小さい値はクランプされます。
1 GW 級のメガベース工場全体を一画面に収めたい時に重宝するコマンドですが、 ズーム値を 0.1 まで下げると 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
end
注: 特定のテクノロジーは、 技術 GUI の 「研究開始」 「研究取り消し」 ボタンをマップエディタで Shift クリックすることでも操作できます。
フォースリセットと列車自動化
フォースをリセット。
キル、 生産統計、 テクノロジー、 ボーナス、 チャーティング状態を含むすべてのデータが対象です。
/c game.player.force.reset()
線路ブロック可視化を常時表示する。
/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
インベントリ操作スクリプト
チートモードと資源補充
無限の無料作成を許可します。
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}
ゴッドモードの energy system interface を与えるとこうなります。
/c game.player.insert{name="electric-energy-interface"}
利用可能なゴッドモード用アイテムの一部。
infinity-chestinfinity-pipeelectric-energy-interfaceheat-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 = "fission-reactor-equipment"})
p_armor.put({name = "fission-reactor-equipment"})
p_armor.put({name = "fission-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}
高品質アイテムの追加。
/c game.player.insert{name="iron-plate", quality="legendary", count=100}
インベントリスロット増加 (フォース全体に 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}})
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 は 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)
Speaker 検索とフレンドリーファイア。
プログラマブルスピーカー の所在確認。
/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
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
より柔軟にしたければ、 マップエディタも資源パッチの作成・変更・削除に使用できます。
プレイヤー周辺 50 × 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
3×3 の正方形に 9 つの原油パッチを作成。
/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
4x2 の小さな池を作成。
/c
local waterTiles = {}
for y=2,4 do
for x=-2,2 do
table.insert(waterTiles, {name="water",
position={game.player.position.x+x, game.player.position.y+y}})
end
game.player.surface.set_tiles(waterTiles)
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(
prototypes.get_entity_filtered{{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({})
マップ生成設定の変更
新しいチャンクに対するマップ生成設定を変更します (すでに生成されたチャンクには影響しません)。
削除されたチャンクは再探索時に新しく生成されるため設定変更の影響を受け、 巨大な再生成スクリプトを動かさなくても、 既存チャンクを削除して再生成する手順を組み合わせれば、 地形全体を新しい設定で書き換えることも可能です。
資源生成設定。
/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"
mgs.terrain_segmentation = "very-high"
surface.map_gen_settings = mgs
破壊不可・ベルト・車両管理
構造物を破壊不可にする (対象にカーソルを合わせてから実行)。
/c game.player.selected.destructible = false
連結ベルトの接続 (in と out タグ付きのベルトを接続)。
/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)
車・戦車の非アクティブ化
車と戦車は大きめの 2x3 チェストのように使えますが、 大量に使うとパフォーマンスに悪影響があります。
非アクティブ化するとパフォーマンス影響を減らせますが、 運転やベルトでの移動ができなくなります。
選択した車・戦車を非アクティブ化。
/c game.player.selected.active = false
サーフェス上のすべての車・戦車を非アクティブ化。
/c for _, v in pairs(game.player.surface.find_entities_filtered{type="car"}) do
v.active = false
end
敵・進化系
Evolution・敵・進化無効化
敵の進化係数を直接設定できます。
0.0 から 1.0 の範囲で、 1.0 が最大進化。
/c game.forces["enemy"].evolution_factor = 0.5
実プレイで「進化が上がりすぎた」 と感じたら、 これで一時的に下げて緩い世界で遊ぶ、 という使い方もあります。
ただし実績は無効化されるので、 検証用セーブで。
敵を全消去。
/c local surface = game.player.surface
for _, e in pairs(surface.find_entities_filtered{force = "enemy"}) do
e.destroy()
end
進化の無効化 (進化が一切進まないように設定、 平和的に工場を作りたい時に)。
/c game.map_settings.enemy_evolution.enabled = false
安全に使うためのコツ
スクリプト系コマンドは強力ですが、 セーブを壊す可能性もあります。
実プレイでの安全運用のために、 いくつかコツを残します。
バックアップと実績の扱い
スクリプトを実行する前に、 必ずセーブのバックアップを取っておくこと。
Esc → Save game で別名保存しておけば、 万が一スクリプトで世界が壊れても戻れます。
大型スクリプトを試す時は特に。
/c、 /command、 /silent-command、 /measured-command を一度でも実行すると、 そのセーブでは実績が永久に取得できなくなります。
実績を狙っているプレイの最中には絶対に使わないこと。
検証用に別セーブを作るのが定石。
マルチプレイと履歴管理。
マルチプレイでスクリプトを実行すると、 全プレイヤーに影響が及び、 「自分だけ強くなる」 のではなく 「全フォースが強くなる」 という意図しない結果になることが多いため、 サーバー管理者と相談してから使うのが礼儀で、 大規模公開サーバーでは Lua 実行自体を --allow-commands 設定で禁止しているところも多く、 そういう場所では事前確認が必須です。
↑ ↓ で過去のコマンド履歴をスクロールできます。
長い Lua スクリプトをメモ代わりに保持しておくのに便利。
ただし履歴はセッション内のみで、 ゲーム終了で消えます。
よく使うスクリプトは外部のテキストファイルにまとめておくと、 必要な時にコピペで使えるので、 自分専用の 「Factorio スクリプト集」 を 1 ファイル維持しておくのが結局いちばん楽で、 検証で発見した便利なスニペットを記録していくとそのうちレシピ集が育っていきます。