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

コンソール

From Official Factorio Wiki
Jump to navigation Jump to search

コンソールは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))

関連項目