A savegame visualizer for Paradox Interactive's Europa Universalis IV that renders the political map mode over time as a configurable video using ffmpeg.
config/default.jsto match your game path and output preferences. See configuration for details.
node app.js [path to your uncompressed save file]
Make sure EU4 is installed in the specified directory and ffmpeg is in your path. You can use ffmpeg to produce a gif:
ffmpeg -ss 00:00:00.000 -i out/video1.mp4 -pix_fmt rgb24 -r 1 -t 00:00:10.000 output.gif
- Use a recent version of Node.js. Tested with 6.5.0, but should work in older versions.
- Should work with every version of EU4 (last tested with 1.19.)
- Make sure that the save file and the installed EU4 version match (otherwise provinces are not colored correctly)
- Mods that change the map are supported: change the appropriate paths in the configuration.
config/default.js to match your game path and preferences.
|EU4_PATH||Absolute path to EU4 directory||Default is Windows x64 Steam directory|
|map.width||Width in pixels of output frames||Integer|
|map.climate, map.countries, map.definition, map.history, map.provinces||Relative path from base directory to data files.||Do not change in unmodded environment!|
|map.colors.sea, map.colors.wasteland||Colors used for oceans and wastelands respectively||Any RGB value in the format
|map.colors.overrides||Colors by tag that should be used instead of default colors.||Format:
|video.framesPerPart||Split video in parts of X frames. By default, save2vid will split the output video into parts of fixed size to prevent a limitation of ffmpeg on Windows.||Integer. Default is 250.|
|video.parallelize||If multiple parts are produced, parallelize their creation. This will use significantly more resources, but reduce the processing time on more powerful systems.||
|video.outputPath||Function that will be invoked to generate the name of video parts.||Will be invoked with the part's index as single argument.|
|video.options||Function that will be invoked to determine the options supplied to ffmpeg via videoshow.||Will be invoked with the map width as single argument. This allows to scale the video accordingly. See videoshow documentation for more options.|