Screenshot Toolkit


* Snipping: Screenshots a selected area, similar to programs like the Windows Snipping Tool or Flameshot. * Timelapse: Automatically does screenshots of the whole base in set minute intervals. Written to be performance friendly. Aims to be your do-it-all toolkit for screenshots.

Utilities
1 year, 3 months ago
0.18 - 1.1
3.14K
Owner:
Anders142536
Source:
https://github.com/Anders142536/FacAu...
Homepage:
N/A
License:
GNU GPLv3
Created:
3 years ago
Latest Version:
2.4.8 (1 year, 3 months ago)
Factorio version:
0.18 - 1.1
Downloaded by:
3.14K users


Screenshot any area perfectly snapped to the tile edges! Simply press the Area Select button and define an area with LMB and RMB. The screenshots will have the exact resolution of the game tiles, and are not impacted by how far you scroll out with your player camera.

The resolution is currently limited to 16385x16385 pixels, as this is the hardcoded limit by the game.

The given filesize estimate is a rough upper limit based on personal experiments.

Shortcuts

  • SHIFT + ALT + S (Select, Screenshot)
    Gives you the selection tool. If you already have the selection tool, then a screenshot of the selected area is taken. If you instead just want to get rid of the selection tool press the vanilla keybind Q
  • SHIFT + ALT + D (Delete)
    Delete the current area selection

This allows for a very nice workflow:
SHIFT + ALT + S: you receive the selection tool
LEFT/RIGHT MBT : you select the area to your hearts content
SHIFT + ALT + S: you do the screenshot. the selection tool is taken from you.
SHIFT + ALT + D: you delete the area you just selected if you want to remove it again.

The whole base is screenshotted until an unreasonably big base size is reached (see FAQ). This feature is tailored for timelapse-videos. To minimize the performance impact the whole screenshot is dynamically split into several smaller screenshots, each taken one after the other, one per tick. This results in a time difference between the first fragment and the last fragment that can be many seconds, but in a timelapse this will not be noticeable. I offer my stitcher program to stitch those fragments back together, which is a part of this mod.

You can, of course, avoid the splitting by simply selecting the "Single tick Screenshots" checkbox. This will take a single screenshot of the whole base instead, but the performance will be impacted a lot more, possibly even causing several second long freeze frames or breaking multiplayer.

Currently, only the vanilla surface "nauvis" is supported.

The GUI shows the current status of the auto screenshots, the currently screenshotted surface as well all the necessary controls. You will see either a progress bar displaying the progress of the current screenshot or a timer until the next screenshot will be taken.

Settings

  • Enable debug?
    Will make the logging more verbose. If you run into issues I will have an easier time understanding the issue with logs having this enabled.

Merging the fragmented images

If you are separating your screenshots over several ticks by disabling the Single Screenshot option (which I heavily recommend) the mod will take hundreds, if not thousands of fragmented screenshots instead of just one big screenshot. Stitching those back together manually is unthinkable. Fortunatly, others and I wrote programs to automate this process for you! Please pick the program you prefer below.

imageStitcher

Download: https://github.com/Anders142536/imageStitcher
UI: no
Language: Java
Author: Anders142536

This is my command-line only Java program with heavy focus on performance. Also, there is a higher change Java is already installed on Windows devices than Python.

FactorioImageStitcher

Download: https://github.com/NathanaelMangold/FactorioImageStitcher
UI: no
Language: Python
Author: NathanaelMangold

Kindly provided by NathanelMangold, this is an alternative written in python. Python should be preinstalled on most Linux devices.

You can find the screenshots in the factorio folder under factorio/script-output/screenshots/(your save seed)/

There are subfolders the different kinds of screenshots you might have made.

You can find your factorio folder here:
Windows: %APPDATA%/Roaming/Factorio (If you don't know what that means please google "AppData Folder windows", there are good guides)
Linux: ~/.factorio (You have to activate hidden folders to see it)

Factorios engine does not allow for asynchronous screenshotting, meaning the game engine is either calculating your game or doing a screenshots. Furthermore it is not possible to do screenshots for two players at the same time, so screenshots for different players need to be queued. This causes quite some isues for the simple task of screenshotting your whole base. Factorios engine runs at 60 update ticks per second or 60 UPS. This means everything that happens in 1/60th of a second has to be calculated before a new image can be rendered for your screen. When you are playing the game the engine only touches the very necessary entities in the map that are required to render the next state of the game to render an image in, so a huge amount of entities can be ignored during that calculation. Basically, all entities whose state is about to change (visual state, logical state, etc.) or that are displayed on your screen are touched. When doing a screenshot of your whole base, however, everything is "on your screen", so the game has to touch every single one of them. This takes time, a lot actually.

While you will discover further below that you can set the mod to do a single tick screenshot, I strongly recommend not to. By default the mod takes way more, smaller screenshots by splitting the whole, resulting image into tiny fragments. This reduces the performance impact massively with the downside of thousands of small screenshots being produced instead of one. This splitting is dynamically adjusted to the total base size, so you do not have to worry about it. As a rough approximation this is based on total vertical and horizontal span of your base rather than entity count.

This brings us to the two, unfortunatly unsolvable, problems of this feature.

  1. If the splitting is too strong there will be quite a time difference between the first and the last screenshot. The (probably not used) limit by the settings I give you is 18 mins and 16 s, based on your Increased Splitting value.

  2. If there are three players taking screenshots, all three of them have to take the screenshots one after another. If the settings are set so that every player takes a screenshot every 10 minutes and every screenshots takes roughly 4 minutes, the game will not be done with taking screenshots when the next round of screenshots is tried to be taken.

I should mention that screenshotting times in the minutes are not meant to be achieved with settings required on a mid to high end machine running factorio. This is purely allowed to give you the choice to do so. In my personal experience the point where using such a high splitting setting would be tempting is when the save is anyways so bloated that a stable UPS count can no longer be achieved. But still, the choice is yours.

Mods that work great with the Screenshot Toolkit

Credits

Icons partly used from Font Awesome (Licence)