In other languages: Русский 简体中文

Debug mode: Difference between revisions

From Official Factorio Wiki
Jump to navigation Jump to search
No edit summary
(1.1.1)
(38 intermediate revisions by 14 users not shown)
Line 1: Line 1:
The debug mode is perhaps mainly thought for debuging the game from developer sight, but can be used to see much more interesting information when you play the game.
{{Languages}}
[[File:debug_during_play.png|thumb|250px|right|Debug mode, with some of its features enabled.]]The ''debug mode'' is used mainly by developers and modders to analyze the running state of the game. It can be enabled to show detailed information about the game world. The default key to enable debug mode is {{keybinding|F5}}.


For example you can  
For example, one can:
* see the path, the [[Biter]]s are coming from and where the like to target
* See the path the [[Enemies#Biters|biters]] are coming from and where they plan to target,
* see an grid-overlay for the [[Tile]]s and [[Chunk]]s,
* See the position / coordinates of the cursor,
* see the blocks in your railway network,
* See a grid-overlay for the [[map structure|tile]]s and [[Map_structure#Chunk|chunks]],
* see some more information, which are not game relevant, but will quite interesting looking. :)
* See the blocks in a railway network,
* See additional non-game related information, such as Updates Per Second and FPS.


== Activate the debug mode ==
== Activate the debug mode ==


You have 4 debug-levels:
There are 4 debug-levels:


* '''always''' - this is the default mode, if you choose nothing
* '''Always''' - This is the default mode, if no mode is active. Keep very few things active here.
* '''basic''' - you are here by pressing F5
* '''Debug''' - Toggled by pressing {{keybinding|F5}}. Allows to toggle the debug overlays.
* '''detailed''' - press F6
* '''full''' - press F7
 
To switch back to "always" you need to press the previous key again. Example: Press F5 to go to "basic", then press F6 to watch "detailed" and then press F6 again to switch back to "always".


== Configuring the debug mode ==
== Configuring the debug mode ==


To configure the 4 modes you need to press '''F4'''. This open up a menu with many options. You can move this menu with the mouse, if it hides some interesting underlaying thing.
To configure the 2 modes, press {{keybinding|F4}}. This opens up a menu with many options. You can move this menu with the mouse, if it hides some interesting underlying thing. You can switch between 2 folders, which reflects the option for that debug-mode ("always", "debug"). The options are the same for each mode. Each mode can be configured to the user's liking, the different modes are only for convenience. A search function ({{Keybinding|ctrl|F}}) is available.
 
You can switch between 4 folders, which reflects the option for that debug-mode ("always", "basic", "detailed", "full"). The options are for each mode the same. You can switch now for every mode the options on or off, as you like.


== List of debug-options and their function ==
== List of debug-options and their function ==
 
{| class="wikitable"
* <code>show_fps</code>
|-
: Will show the current frames-per-second. Should be normally about 60. See [[Lua/Game#speed]].
! Option !! Description
* <code>show_detailed_info</code>
|-
: Shows the cursor position in [[Tile]]s (and subdivisions of that), [[Chunk]]s and [[Region]]
| show-fps || Will show the current frames-per-second and updates per second, short <abbr title="Frames Per Second">FPS</abbr> and <abbr title="Updates Per Second">UPS</abbr>. Should be normally about 60.
: Current resolution and zoom (see [[Lua/Game#takescreenshot]])
|-
: How much objects are on the screen (painted by the graphic card)
| show-detailed-info ||
: How much entities, chunks and paths are in the game and used.
* Shows the cursor position in [[Map_structure#Tile|tiles]] (and subdivisions of that).
* <code>show_time_used_percent</code>
* Current resolution and zoom.
: Many important internal statistics about the timing. (TODO: more details)
* How many objects are on the screen (painted by the graphic card).
* <code>show_tile_grid</code>
* How many entities, chunks and paths are in the game and used.
: Quite useful to turn it on also for the "always"-mode. It shows the borders of the [[Tile]]s and [[Chunk]]s.
|-
* <code>show_collision_rectangles</code>
| show-time-usage ||
: shows the collision boxes of each entity (red).
* Internal statistics about how long some calculations take, in milliseconds per [[Time#Ticks|tick]].
* <code>show_selection_rectangles</code>
* Time is shown as average/min/max of the last 100 ticks, interval can be changed with /perf-avg-frames.
: shows the a blue box over each entity, if you hover it, it will be selected.
* Minimum values exclude zeroes (e.g. from ticks where no mod hooks were run).
* <code>show_paths</code>
* Overall calculation delays (some are parallel) must be under 16.6 ms to maintain normal framerate at 1x speed with 60 ticks per second.
: the calculated paths for the biters in different colors.
* The Top section of metrics cover the wider game engines activities. The middle Update section relates to running the simulation for a tick. The bottom Map Generator section relates to the map generation activity.
* <code>show_next_waypoint_bb</code>
|-
: shows waypoints for biters (in green), nearly the same info as the next.
| show-entity-time-usage ||
* <code>show_target</code>
|-
: shows the current target of the biters (red).
| show-gpu-time-usage ||
* <code>show_unit_group_info</code>
|-
: biter groups, which belong together (Circles and  
| show-sprite-counts || The counts of each sprite rendered on screen.
* <code>show_unit_stuck_info</code>
|-
: should show stuck enemies (?)
| show-lua-object-statistics ||
* <code>show_last_path_detail</code>
|-
: The A*-algorithm at work, calculating new paths.
| show-heat-buffer-info ||
* <code>show_path_cache</code>
|-
: The source-positions of a path and about the length (?)
| show-multiplayer-waiting-icon || When in a multiplayer game: if the game is currently waiting for the server to process.
* <code>show_rail_paths</code>
|-
: which path a train will follow.
| show-multiplayer-statistics || The latency information when in multiplayer.
* <code>show_rolling_stock_count</code>
|-
: shows inserter positions
| show-multiplayer-selection-rectangles || Allows to view selection rectangles of other players in multiplayer.
* <code>show_rail_connections</code>
|-
: is every rail really connected?
| show-debug-info-in-tooltips || Shows additional information in the tooltips of entities, items, recipes, tiles etc.
* <code>show_rail_segments</code>
|-
: shows the segment borders and enables you to see easier the borders of the block
| show-resistances-in-tooltips-always || Show entity resitances in all entity tooltips instead of just tooltips of enemy entities and entities with [[Prototype/EntityWithHealth#hide_resistances|hide_resistances]] set to false.
* <code>show_train_stop_point</code>
|-
: when a train slows down it shows, where it should halt
| hide-mod-guis || Hides GUIs added by mods.  
* <code>show_network_connected_entities</code>
|-
: displays the network-id of the electric network, which a pole is connected to
| show-tile-grid || Shows the borders of the [[Map_structure#Tile|tiles]] and [[Map_structure#Chunk|chunks]].
* <code>show_circuit_network_numbers</code>
|-
: shows the number (and color) of circuit networks
| show-blueprint-grid ||
* <code>show_energy_sources_networks</code>
|-
: which network-id an entity is connected to.
| show-collision-rectangles || Shows the collision boxes of each entity (red).
* <code>show_blocked_by</code>
|-
: Shows items, which are blocked (see for example full belts)
| show-selection-rectangles || Shows the a blue box over each entity, if you hover over it, it will be selected.
* <code>show_active_state</code>
|-
: inserters, fishes, turrets are turned to passive, if not used
| show-render-rectangles || Shows the a pink box over each entity, if that is on your screen, the entity will be rendered.
* <code>show_active_enemies_on_chunk_counts</code>
|-
: not 100% clear: displays in the map view, how much biter nests (blue) are targetting to which are (red for the number of biters?), green: unknown?
| show-sticker-boxes ||
* <code>show_active_chunks</code>
|-
: shows in the map view, which chunks are "on", unmarked chunks are not calculated
| show-entity-positions ||
* <code>show_enemy_expansion_candidate_chunks</code>
|-
: where is space left to spread the bread?
| show-entity-velocities ||
* <code>show_tile_variations</code>
|-
: shows, which tile-variation (1, 2 or 4 tile sized) is painted for which area of the map quite confusing, zoom in to see the meaning.
| show-selected-entity-advanced-tiles || Shows on which advanced tiles (2×2 tiles) the entity is registered.
* <code>show_raw_tile_transitions</code>
|-
: turns the overlapping edges off, you see now clearly where is land and where is water
| show-selected-input-transport-belts || Shows which entities input into the selected transport line.
* <code>show_fluid_box_fluid_info</code>
|-
: how much is in a pipe/storage tank, for long pipes you see the flow, if the pipe is empty
| show-paths || The calculated paths for the biters in different colors.
* <code>show_environment_sound_info</code>
|-
: displays, which sound of which entity is played and how loud.
| show-path-requests ||
|-
| show-next-waypoint-bb || Shows waypoints for biters (in green), nearly the same info as the next.
|-
| show-target || Shows the current target of the biters (red).
|-
| show-unit-group-info || Biter groups, which belong together (circles and lines belonging together)
|-
| show-unit-behavior-info ||
|-
| show-pathfinder-fringe ||
|-
| show-path-cache || The source-positions of a path and about the length (?)
|-
| show-path-cache-paths ||
|-
| show-rail-paths || Which path a train will follow.
|-
| show-rolling-stock-count || Shows inserter positions
|-
| show-rail-connections || Shows rail connections.
|-
| show-rail-joints ||
|-
| show-rail-segment-collision-boxes ||
|-
| show-train-stop-point || When a train slows down it shows the calculated point where it should halt
|-
| show-train-braking-distance || The distance a train will take to stop at its current speed
|-
| show-train-signals ||
|-
| show-train-repathing || Display a flying "repathed" text over a train whenever it repaths.
|-
| show-network-connected-entities || Displays the network-id of the electric network that a pole is connected to
|-
| show-circuit-network-numbers || Shows the number (and color) of circuit networks
|-
| show-energy-sources-networks || Which network-id an entity is connected to.
|-
| show-active-state || Inserters, fish, turrets are turned to passive, if not used; Red = inactive, Purple = inactive when enemies aren't around (turrets etc), Green = inactive when player isn't around (fish). Passive entities consume less CPU power.
|-
| show-wakeup-lists || When an entity is sleeping in another entity it shows which entities it's sleeping in.
|-
| show-transport-lines ||
|-
| show-transport-line-gaps ||
|-
| show-pollution-values || Shows the numeric pollution amount on each chunk.
|-
| show-active-entities-on-chunk-counts ||
Shows counts of active entities per chunk. They are devided into three categories:
* Red = active (e.g. furnaces)
* Blue = active when a player is around (e.g. fish)
* Green = active when enemies are around (e.g. turrets)
|-
| show-active-chunks || Shows in the map view, which chunks are "on", unmarked chunks are not calculated.
|-
| show-polluted-chunks || Shows which chunks have pollution.
|-
| hide-chart-tags || Hides map tags.
|-
| show-enemy-expansion-candidate-chunks || Where is space left to spread the brood?. Goes from red (nearly no space) to green (space to expand).
|-
| show-enemy-expansion-candidate-chunk-values || Which chunks the enemies will try to expand into.
|-
| show-bad-attack-chunks ||
|-
| show-tile-variations || Shows, which tile-variation (1, 2 or 4 tile sized) is painted for which area of the map. Quite confusing, zoom in to see the meaning.
|-
| show-raw-tile-transitions || Turns connected textures for land and water off, so the distinction can easily be made.
|-
| show-fluid-box-fluid-info || How much fluid is in a pipe/storage tank, shows flow of liquid in pipes.
|-
| show-environment-sound-info || Displays which sound of which entity is played and how loud.
|-
| show-environment-sound-area ||
|-
| show-selected-entity-audible-range ||
|-
| show-recently-played-sound-info ||
|-
| show-logistic-robot-targets ||
|-
| show-spidertron-movement ||
|-
| show-player-robots ||
|-
| show-fire-info ||
|-
| show-sticker-info ||
|-
| show-decorative-names ||
|-
| show-decorative-collision-rectangles ||
|-
| allow-increased-zoom ||
|-
| show-chunk-components ||
|-
|}

Revision as of 14:25, 25 November 2020

Debug mode, with some of its features enabled.

The debug mode is used mainly by developers and modders to analyze the running state of the game. It can be enabled to show detailed information about the game world. The default key to enable debug mode is F5.

For example, one can:

  • See the path the biters are coming from and where they plan to target,
  • See the position / coordinates of the cursor,
  • See a grid-overlay for the tiles and chunks,
  • See the blocks in a railway network,
  • See additional non-game related information, such as Updates Per Second and FPS.

Activate the debug mode

There are 4 debug-levels:

  • Always - This is the default mode, if no mode is active. Keep very few things active here.
  • Debug - Toggled by pressing F5. Allows to toggle the debug overlays.

Configuring the debug mode

To configure the 2 modes, press F4. This opens up a menu with many options. You can move this menu with the mouse, if it hides some interesting underlying thing. You can switch between 2 folders, which reflects the option for that debug-mode ("always", "debug"). The options are the same for each mode. Each mode can be configured to the user's liking, the different modes are only for convenience. A search function (CTRL + F) is available.

List of debug-options and their function

Option Description
show-fps Will show the current frames-per-second and updates per second, short FPS and UPS. Should be normally about 60.
show-detailed-info
  • Shows the cursor position in tiles (and subdivisions of that).
  • Current resolution and zoom.
  • How many objects are on the screen (painted by the graphic card).
  • How many entities, chunks and paths are in the game and used.
show-time-usage
  • Internal statistics about how long some calculations take, in milliseconds per tick.
  • Time is shown as average/min/max of the last 100 ticks, interval can be changed with /perf-avg-frames.
  • Minimum values exclude zeroes (e.g. from ticks where no mod hooks were run).
  • Overall calculation delays (some are parallel) must be under 16.6 ms to maintain normal framerate at 1x speed with 60 ticks per second.
  • The Top section of metrics cover the wider game engines activities. The middle Update section relates to running the simulation for a tick. The bottom Map Generator section relates to the map generation activity.
show-entity-time-usage
show-gpu-time-usage
show-sprite-counts The counts of each sprite rendered on screen.
show-lua-object-statistics
show-heat-buffer-info
show-multiplayer-waiting-icon When in a multiplayer game: if the game is currently waiting for the server to process.
show-multiplayer-statistics The latency information when in multiplayer.
show-multiplayer-selection-rectangles Allows to view selection rectangles of other players in multiplayer.
show-debug-info-in-tooltips Shows additional information in the tooltips of entities, items, recipes, tiles etc.
show-resistances-in-tooltips-always Show entity resitances in all entity tooltips instead of just tooltips of enemy entities and entities with hide_resistances set to false.
hide-mod-guis Hides GUIs added by mods.
show-tile-grid Shows the borders of the tiles and chunks.
show-blueprint-grid
show-collision-rectangles Shows the collision boxes of each entity (red).
show-selection-rectangles Shows the a blue box over each entity, if you hover over it, it will be selected.
show-render-rectangles Shows the a pink box over each entity, if that is on your screen, the entity will be rendered.
show-sticker-boxes
show-entity-positions
show-entity-velocities
show-selected-entity-advanced-tiles Shows on which advanced tiles (2×2 tiles) the entity is registered.
show-selected-input-transport-belts Shows which entities input into the selected transport line.
show-paths The calculated paths for the biters in different colors.
show-path-requests
show-next-waypoint-bb Shows waypoints for biters (in green), nearly the same info as the next.
show-target Shows the current target of the biters (red).
show-unit-group-info Biter groups, which belong together (circles and lines belonging together)
show-unit-behavior-info
show-pathfinder-fringe
show-path-cache The source-positions of a path and about the length (?)
show-path-cache-paths
show-rail-paths Which path a train will follow.
show-rolling-stock-count Shows inserter positions
show-rail-connections Shows rail connections.
show-rail-joints
show-rail-segment-collision-boxes
show-train-stop-point When a train slows down it shows the calculated point where it should halt
show-train-braking-distance The distance a train will take to stop at its current speed
show-train-signals
show-train-repathing Display a flying "repathed" text over a train whenever it repaths.
show-network-connected-entities Displays the network-id of the electric network that a pole is connected to
show-circuit-network-numbers Shows the number (and color) of circuit networks
show-energy-sources-networks Which network-id an entity is connected to.
show-active-state Inserters, fish, turrets are turned to passive, if not used; Red = inactive, Purple = inactive when enemies aren't around (turrets etc), Green = inactive when player isn't around (fish). Passive entities consume less CPU power.
show-wakeup-lists When an entity is sleeping in another entity it shows which entities it's sleeping in.
show-transport-lines
show-transport-line-gaps
show-pollution-values Shows the numeric pollution amount on each chunk.
show-active-entities-on-chunk-counts

Shows counts of active entities per chunk. They are devided into three categories:

  • Red = active (e.g. furnaces)
  • Blue = active when a player is around (e.g. fish)
  • Green = active when enemies are around (e.g. turrets)
show-active-chunks Shows in the map view, which chunks are "on", unmarked chunks are not calculated.
show-polluted-chunks Shows which chunks have pollution.
hide-chart-tags Hides map tags.
show-enemy-expansion-candidate-chunks Where is space left to spread the brood?. Goes from red (nearly no space) to green (space to expand).
show-enemy-expansion-candidate-chunk-values Which chunks the enemies will try to expand into.
show-bad-attack-chunks
show-tile-variations Shows, which tile-variation (1, 2 or 4 tile sized) is painted for which area of the map. Quite confusing, zoom in to see the meaning.
show-raw-tile-transitions Turns connected textures for land and water off, so the distinction can easily be made.
show-fluid-box-fluid-info How much fluid is in a pipe/storage tank, shows flow of liquid in pipes.
show-environment-sound-info Displays which sound of which entity is played and how loud.
show-environment-sound-area
show-selected-entity-audible-range
show-recently-played-sound-info
show-logistic-robot-targets
show-spidertron-movement
show-player-robots
show-fire-info
show-sticker-info
show-decorative-names
show-decorative-collision-rectangles
allow-increased-zoom
show-chunk-components